Tech:Adding a new extension
Any user can create a pull request to install and enable an extension, but it has to be merged by a sysadmin. If you want to add a new extension, request it here.
All of this stuff needs to be done before the steps above:
- Open a ticket for a Security Review
- Wait. We will review the extension following the MediaWiki extension developers' security checklist, among other things. If we notice a bug or a security vulnerability, we'll try to fix it or wait for the extension developers to fix it.
- On passing review, the extension needs to be added to the
mediawiki
repository:git submodule add -f -b <extension-branch> <extension-repo-url> extensions/<extension-name>
. We generally use the branch for the current wiki version (e.g. REL1_38) if available, but if not you should use the master branch. Use the actual like to <extension-repo-url>, do NOT use the .git clone link as it will not work! - edit .gitmodules to add
ignore = dirty
. - If the extension does not use the REL1_X branch, you must add it to .branches.json
The above steps are for the mediawiki
repository. The following are for the mw-config
repository.
- Add a line like the following to
extension-list
:$IP/extensions/Foo/extension.json
- ManageWikiExtensions.php gets a setting added as well. (Make sure to check if it requires another extension or if it should be restricted)
- If the extension has database tables, make sure to add them to the ManageWikiExtensions.php config!
- It is not required, but preferable that you also load it on test131 in order to make sure that everything works as intended
- Setup any other extension globals here.
- Then run the following script on mwtask141 and/or test131: deploy-mediawiki --world --config --l10n --extension-list --servers=all
It should be noted that it is a good idea to add any configuration variable the extension adds to ManageWiki to save the effort of doing that at a later date and be user-friendly.