Wikimedia Labs/Specifications

Quick intro to wiki farms
A wiki farm can be accomplished in many different ways. The way it is done in the WMF production cluster and the way it is done on labs is as follows: There is a central checkout of the mediawiki core repository with additional checkouts for one or more extensions. The LocalSettings.php file uses a  object  to configure settings for individual wikis (this is in the form of a big array, usually included from a separate file (e.g. InitializeSettings)). All (sub)domains point to the same webserver (or rather one of many web servers that are kept in sync) where it is detected based on hostname and path which for which wiki the settings are to be initialized. Then to provide universal login, CentralAuth is used.

Plan

 * Maintain two virtual wiki farm projects on WMFLabs: mw-alpha and mw-beta
 * mw-alpha: A small wiki farm running on the  branch of   at  . It is deployed to through Jenkins. Whenever Jenkins completes a unit test run of the   branch where all tests pass (job "MediaWiki-unittest-master" @ Continuous integration) it will access the central server for the mw-alpha project on Wikimedia Labs, perform a repository pull, run the updater, and then sync it to the web servers.
 * mw-beta: Similar to the above, except it runs on the latest release branch, at . Updated by Jenkins based on the results of job "MediaWiki-unittest-REL1_19" (or whatever the latest release branch is at the time).

Dependencies

 * Finishing puppetization of the production cluster to make beta.wmflabs complete