Page MenuHomePhabricator

Get the extension ready for release
Closed, DeclinedPublic


This likely needs to broken down into smaller tasks and is also likely incomplete. Documenting here so we can be sure we start on things that might take more time.

Specifically, we'll be following the instructions in this Review Queue page. A short version looks like:

Code hosting:
Request a new Git/Gerrit repository to store the source code for your extension. Gerrit is where all code review will happen.

Issue tracking:
Request a project in Phabricator to track bugs and feature requests for your extension. Get notified of new tasks reported in your project.
Localization: Your extension will need to be translated on before it can be deployed anywhere. This requires your code to have proper i18n files etc.

Gating deployment and feature flags:
The Wikimedia Foundation runs nearly a thousand wikis in hundreds of languages. When we deploy code on our cluster, we enable extensions on a wiki-by-wiki basis and often configure them differently for each one. Extensions should have feature flags (e.g., wgMaxGeoSearchRadius) for turning particular behavior on and off or configuring some part of the extension, where that makes sense. When extensions are deployed, they will be gated behind a Wikimedia-specific global configuration variable such as wmgUseEventLogging. This allows the extension to be deployed on a subset of wikis (for example, test and test2) without affecting all wikis. You can search through the existing very large CommonSettings.php and InitialiseSettings.php for reference.

Unit testing:
Be nice, prepare for sufficient automated testing. Various parts of the code needs different types of testing. In particular check out Manual:PHP unit testing and Manual:JavaScript unit testing.

Your extension must be compatible with all extensions deployed on the Wikimedia cluster. See #Compatibility with other deployed extensions below for specific issues.

Hosting a test version:
Cloud VPS projects can be used to host test wikis with your extension installed for testing and demonstrations. See the Cloud Services Getting Started guide for more information.

Add your extension to Developers/Maintainers and indicate who the maintainers are.

Get initial code reviews:
Tag developers outside the team to help review our work.

Related Objects