Deployments/Blocking Tasks

From Wikitech
Jump to: navigation, search

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.

Maintaining the blocking tasks

Periodically, the release manager will create batches of new tasks in Phabricator for planned upcoming MediaWiki version.

SCAP "task-series" plugin

The Release Tools Repository contains a scap plugin named 'task-series' that can be used to automate the creation of a series of tasks in Phabricator.

Usage: scap task-series blockers [--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 in YYYY-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 task-series blockers --count 2 --date 2017-12-25 1.31.0-wmf.14

Limitations

The task-series 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.

Dependencies
  • 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
  • Scap, which is obtainable from https://apt.wikimedia.org/wikimedia/pool/main/s/scap/
    • Python 2.7.x is needed to run scap
  • The phabricator python module
    • pip 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.

See Also