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>Special:MyLanguage/System administrators|sysadmin. If you want to add a new extension, request it rf>Special:MyLanguage/Request features|here.

All of this stuff needs to be done before the steps above:

The above steps are for the  repository. The following are for the  repository.
 * 1) Open a ticket for a Security Review
 * 2) Wait. We will review the extension following security>mw:Security for developers|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.
 * 3) On passing review, the extension needs to be added to the   repository:  . We generally use the branch for the current wiki version (e.g. REL1_35) if available, but if not you should use the master branch. Use the actual like to , do NOT use the .git clone link as it will not work!
 * 4) edit .gitmodules to add  .
 * 1) LocalExtensions.php gets a $wmgUseFoo variable added.
 * 2) LocalSettings.php gets this setup:
 * 3) Add a line like the following to  :
 * 4) ManageWikiExtensions.php gets a setting added as well. (Make sure to check if it requires another extension or if it should be restricted)
 * 5) If the extension has database tables, make sure to add them to the ManageWikiExtensions.php config!
 * 6) It is not required, but preferable that you also load it on test2wiki in order to make sure that everything works as intended
 * Setup any other extension globals here.
 * 1) Then run the following script as www-data   on all mw servers and jobrunner*.
 * 2) Rebuild Localization Cache as www-data on all mw servers and jobrunner*.
 * 1) Then run the following script as www-data   on all mw servers and jobrunner*.
 * 2) Rebuild Localization Cache as www-data on all mw servers and jobrunner*.

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.