Deployments/Blocking tasks
Deployments |
---|
|
Each version of MediaWiki that is deployed to Wikimedia's production clusters should have a corresponding task in Phabricator. When a release-critical issue is discovered and reported in Phabricator, it should be added as a subtask under the blocker task for the most current or any other affected versions. Release engineers monitor all sub-tasks for the deployment branch they are assigned to and all serious issues must be resolved before resuming routine code deployments.
The current train blocker task may be found via: https://train-blockers.toolforge.org
Maintaining the blocking tasks
Periodically, the release manager will create batches of new tasks in Phabricator for planned upcoming MediaWiki version.
SCAP "blockers" plugin
The Release Tools Repository contains a scap plugin named 'blockers' that can be used to automate the creation of a series of tasks in Phabricator.
Usage: scap blockers create [--count NUM] --date START VERSION
You must provide the date and version corresponding to the first task that you will create in the series.
- The
--count
argument should be followed by an integer specifying how many new tasks should be created. If--count
is omitted then you will only create 1 task. - The
--date
argument should be followed by a date inYYYY-MM-DD
format. - The last argument on the command line is the wmf version corresponding to the provided date, in
#.##.#-wmf.#
format.
For Example: With your shell's working directory set to the root of the release tools repo, run the following command to create a series of 2 tasks beginning with 1.31.0-wmf.14 on 2017-12-25
you@yourhost:~/src/release$ scap blockers create --count 2 --date 2017-12-25 1.31.0-wmf.14
Limitations
The blockers plugin doesn't know when one version series ends and the next begins. You have to create (for example) the 1.31.0-wmf.* series separately from the 1.32.0-wmf.* series.
Installation
Scap things
- Scap, which is obtainable from https://apt.wikimedia.org/wikimedia/pool/main/s/scap/
- You need a local copy of The MediaWiki Release Tools git repository
git clone https://phabricator.wikimedia.org/diffusion/MREL/mediawiki-release-tools.git
cd mediawiki-release-tools
Phabricator API things
- The
phabricator
python modulepip install phabricator
- Conduit credentials for the Phabricator API
- You need to have a .arcrc in your home directory with valid conduit credentials for phabricator.wikimedia.org
- See mediawiki.org/Phabricator/Arcanist for detailed setup instructions.
- You don't actually need arcanist installed but the easiest way to get the conduit credentials is to follow the arcanist setup instructions.