Open main menu

Release checklist

This page provides a unified view of the release process. To determine if a step is needed, check the column of corresponding column for the sort of release you're making. The release script is make-release.py in the mediawiki/tools/release repository.

Contents

GlossaryEdit

WMF
Wikimedia Foundation
RMT
Release Management Team
Devs
Developers
R-X
Release date minus X weeks

Release process kickoffEdit

Status Timeline Major Patch Security Who Process step Outcome Comments

DecisionEdit

      RMT, WMF Set release date Release date. Process starts For major releases: coordinate with WMF
      RMT Set up release checklist See Boilerplate
R-1 week   RMT Check if release is necessary Decision Are there any merged commits since the last release? This will be automated.

Example sources

R-1 week

  RMT Check if there are any security fixes Decision Check in Phabricator and ask Security team

Setup and announcementsEdit

R-6 week   RMT Announce creation of release branch on wikitech-l one week prior to branching
R-6 week   RMT Run maintenance/updateCredits.php on master branch and upload changes to CREDITS for review. Easiest to deal with if patch is merged before branching.
R-5 week   RMT Create release branch (REL1_XX) for core
R-5 week   RMT Create release branch (REL1_XX) for extensions make-extension-branches script
R-5 week   RMT Update MediaWiki: Branch_points, Template:MWReleases, current release pages, e.g. MediaWiki 1.23
R-1 week       RMT Announce upcoming release on wikitech-l See announcement template
R-1 week   RMT Announce end of lifetime for legacy and LTS releases
R-1 week

 

 

RMT Announce upcoming end of lifetime of this is the last maintenance version

Pre release checks and announcementsEdit

R-1 day   WMF Cluster has been patched for every security fix that will be made public
R-1 day       RMT send pre-release announcement to mediawiki-announce See announcement template
R-1 day

 

RMT give early access to security fixes add them in cc in Phabricator (cf. phab:T518) List is tbd. currently wikia, debian and gamepedia wiki

Prepare releaseEdit

Status Timeline Major Patch Security Who Process step Outcome Comments

Publish Release CandidatesEdit

  RMT release initial RC
  RMT release RC1
  RMT release RC2
  RMT release RC-final

Fix bugs and review changesEdit

  RMT, Bug wrangler File blocking bugs in Phabricator with “MW-1.XX-release“ project associated
  Devs Fix blocking bugs Make sure all commits also include updates to RELEASE-NOTES-1.XX
    Reviewers Review all changes tagged for that release
    Reviewers Merge changes in master, submit to REL 1_XX branch
  RMT Backport security fixes from Phabricator
  RMT Upload backports to Phabricator and seek confirmation

ReleaseEdit

N.B. it's best to have one checkout for each release branch.

Status Timeline Major Patch Security Who Process step Outcome Comments

Prepare local systemEdit

  RMT Prepare security backports
  RMT Update HISTORY and CREDITS With the release of a new major version, move all CHANGELOG entries that refer to the previous version to the HISTORY file.
      RMT Prepare release notes Remember to remove the THIS IS NOT A RELEASE YET! text on releases, and to add it back to the tracking branch for future commits.
      RMT Update version number includes/DefaultSettings.php -> $wgVersion
      RMT Prepare announcement

Produce tarballEdit

(time critical when security fix is involved)
      RMT Merge all outstanding commits to the release branch Wait for commits to pass through Jenkins.
      RMT Tag versions in branches
git tag -sa 1.19.20 -m "Security release 1.19.20"
git push --tags
      RMT Produce tarballs using make-release
# clone the release repo:
git clone ssh://gerrit.wikimedia.org:29418/mediawiki/tools/release  

# clone mediawiki/core:
git clone ssh://gerrit.wikimedia.org:29418/mediawiki/core

# These version numbers need to exactly match the existing, signed git tags
# in mediawiki/core

PREV_VERSION=1.31.1
THIS_VERSION=1.32.0
OUTPUT_DIR=../../build # the tarballs get created here
MEDIAWIKI_DIR=../../core/ # the path to where you cloned mediawiki/core

# now run makerelease2.py (eventually this will replace make-release.py)
cd release/make-release
./makerelease2.py --sign --previous $PREV_VERSION --output_dir $OUTPUT_DIR $MEDIAWIKI_DIR $THIS_VERSION
      RMT Final manual checks
  • Extract all archives.
  • Install MW locally.
  • Test patch files to make sure the apply to a freshly extracted tarball of the old version.
      RMT Upload to DL server bromine:/srv/org/wikimedia/releases/mediawiki/X.XX
      RMT Send out announcement (template) mediawiki-announce, wikitech-l, mediawiki-l, mediawiki-enterprise-l
(no longer time critical from here on)

Post releaseEdit

Status Timeline Major Patch Security Who Process step How / Where Comments
  RMT Make security tasks public Edit tasks to change security dropdown to none, change visibility policy to public, change edit policy to all users

Update MediaWiki.orgEdit

      RMT Announce new version

Template:MediaWiki News

      RMT Update versions as appropriate Module:Version
  RMT Update branches Module:Version, Template:DownloadMediaWiki ("To users of MediaWiki versions" part)
  RMT Check automatically generated content
Template:MWReleases, Template:MW_release_status, Template:MW_version/status
      RMT Update release notes Update Release notes of all affected versions Need to be wikified, e.g.
bug 234 becomes {{bug|234}}
  RMT Remove outdated future tags

Remove all {{Future}} from pages that are in Category:Due in v1.XX and delete that category.

  RMT Update versions of requirements as appropriate Template:MW stable php requirement, Template:MW stable mysql requirement, Template:MW stable postgresql requirement

Update other platformsEdit

      RMT Update versions on Wikidata update wikidata:Q83
      ?? Update IRC irc://irc.freenode.net/mediawiki
  ?? Archive Phab project tag for MediaWiki version now unsupported (if applicable) https://phabricator.wikimedia.org/tag/MW-x.yy-release (edit "x.yy" accordingly)

Extension distributorEdit

  ?? Update extension distributor
  • Update $wgExtDistSnapshotRefs in CommonSettings.php
  • Update relevant 'extdist-branch-' keys in WikimediaMessages.i18n.php
  • Create branches in each extensions for the new release (this should already be done)
Process unclear

MarketingEdit

  RMT Release a Tech Blog entry https://wikimediafoundation.org/news/

Ongoing development and planningEdit

(after the release is before the release)

Status Timeline Major Patch Security Who Process step Outcome Comments
      Anyone Bugs are targeted for the next release. Bugfixes are provided List of bugfixes, proposed fixes Anyone can do so. Who decides?
  WMF Devs Continuous development Feature milestones, architectural changes Targeting deployment
  Extension Devs Continuous development Extensions working with current dev MW version. Mostly volunteers, don’t stick to timelines

Status unclear / self-assigned

  Release Devs Continuous development integration support, focus on 3rd party issues Needs financing
  WMF (?) Roadmap monthly list of milestones is currently under discussion
  Anyone Extensions to be integrated list of extensions to be integrated Who decides?

Popularity, e.g. WikiApiary

  RMT Release page High level description of changes
      Devs Release notes Detailed description of changes

Required rights and accessEdit

Where What Step Why
Mediawiki.org Admin Preparation, Post-release Update articles on planning, status and the release. Needs to be able to change templates
Phabricator Read and edit Security Preparation (Security Release) Needed in order to do backports for security releases
Git Push tags Preparation Need to be able to mark a certain revision
Jenkins Build release job Preparation Build job (https://integration.wikimedia.org/ci/view/MediaWiki/job/mediawiki-core-release/). This is neccessary in order to automatically create and test the tarball from git tag
Gerrit Merge on REL branch Release Update and merge DefaultSettings.php
WMF legal NDA Release Is prerequisite in order to get access to RT and to the #WMF-NDA group in Phabricator. Ask legal team (legal@wikimedia.org). They send the agreement, you sign, scan and email. They countersign and send back. Took 2 working days.
mediawiki-announce Emergency moderation Post-release Otherwise, email will be bounced. Ask someone with list admin privileges to turn off emergency moderation and approve of message
mediawiki-l, wikitech-l, mediawiki-enterprise-l Post Post-release
Wikimatrix
IRC