Review queue

Compatibility with other deployed extensions
As written above, your extension must be compatible with all extensions deployed on the Wikimedia cluster. Specific issues follow.


 * Renameuser and UserMerge
 * If your extension has a database table that stores usernames, it needs to respond to the  hook to add its tables. If your extension is storing user IDs or usernames, it needs to respond to one or both of the , and   hooks to update its tables accordingly. See hooks.txt.


 * Flow
 * If your extension makes edits to pages, you need to consider whether it should do this on Flow boards and Flow topics, and handle them specially. For example, the MassMessage extension can post a message on a Flow-enabled user talk page.

Deploy to Beta Cluster
Before enabling a new extension in production, it can be tested on the Beta Cluster. To do this:
 * 1) Add the new extension submodule to the git mediawiki/extensions repo if it's not already in it. Alternately, you can plan ahead and add your extension to make-wmf-branch/config.json and it will automatically pick up the submodule (when the train cycle begins) without you having to add it manually.
 * 2) Require and configure the new extension. Beta Cluster uses the same wmf-config directory in the  repository as production, but in addition Beta Cluster servers load   and   files so you can have settings that only apply to Beta Cluster. Read more about these config files). When testing on Beta Cluster before production, these can override , setting it to true on one or more Beta Cluster wikis. (Once your extension is in use in the production wiki(s) corresponding to Beta Cluster, you can probably remove the   overrides.)
 * 3) Here's the steps required to deploy a typical new extension to production (if your extension has more steps/dependencies, say Wikibase, make sure to check with someone before you deploy):
 * 4) Add your extension to  . See example.
 * 5) Add your extension config variable to   and set it to be default false. See example.
 * 6) Add your extension config variable (same as in previous step) to   and set it to be true on beta cluster wikis you want it to be on. You may want to turn it off for loginwiki (which doesn't have most extensions). See example.
 * 7) Load your extension in  . See example.

It is possible to deploy extensions that do not exist in production to the Beta Cluster. However, the Beta Cluster runs code only from the master branch in Git. You should merge code into the master branch early and often in order to exercise that code as fully as possible on the Beta Cluster before it goes out to the general public. If you have specific questions about using the Beta Cluster, you can e-mail the Quality Assurance mailing list or ask in on IRC.

Skins follow the same process (but in ) repository.