Deployments/Blocking tasks

From Wikitech
Jump to navigation Jump to search
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 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 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

Phabricator API things

  • 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