Release checklist

From MediaWiki.org
Jump to navigation Jump to search

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.

Glossary[edit]

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

Release process kickoff[edit]

Status Timeline Major Patch Security Who Process step Outcome Comments

Decision[edit]

To do To do To do RMT, WMF Set release date Release date. Process starts For major releases: coordinate with WMF
To do To do To do RMT Set up release checklist See Boilerplate
R-1 week To do 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

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

Setup and announcements[edit]

R-6 week To do RMT Announce creation of release branch on wikitech-l one week prior to branching
R-6 week To do 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 To do RMT Create release branch (REL1_XX) for core
R-5 week To do RMT Create release branch (REL1_XX) for extensions make-extension-branches script
R-5 week To do RMT Update MediaWiki: Branch_points, Template:MWReleases, current release pages, e.g. MediaWiki 1.23
R-1 week To do To do To do RMT Announce upcoming release on wikitech-l See announcement template
R-1 week To do RMT Announce end of lifetime for legacy and LTS releases
R-1 week

To do

To do

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

Pre release checks and announcements[edit]

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

To do

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 release[edit]

Status Timeline Major Patch Security Who Process step Outcome Comments

Publish Release Candidates[edit]

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

Fix bugs and review changes[edit]

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

Release[edit]

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 system[edit]

To do RMT Prepare security backports
To do 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.
To do To do To do 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.
To do To do To do RMT Update version number includes/DefaultSettings.php -> $wgVersion
To do To do To do RMT Prepare announcement

Produce tarball[edit]

(time critical when security fix is involved)
To do To do To do RMT Merge all outstanding commits to the release branch Wait for commits to pass through Jenkins.
To do To do To do RMT Tag versions in branches
git tag -sa 1.19.20 -m "Security release 1.19.20"
git push --tags
To do To do To do 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
To do To do To do 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.
To do To do To do RMT Upload to DL server bromine:/srv/org/wikimedia/releases/mediawiki/X.XX
To do To do To do RMT Send out announcement (template) mediawiki-announce, wikitech-l, mediawiki-l, mediawiki-enterprise-l
(no longer time critical from here on)

Post release[edit]

Status Timeline Major Patch Security Who Process step How / Where Comments
To do 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.org[edit]

To do To do To do RMT Announce new version

Template:MediaWiki News

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

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

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

Update other platforms[edit]

To do To do To do RMT Update versions on Wikidata update wikidata:Q83
To do To do To do ?? Update IRC irc://irc.freenode.net/mediawiki
To do ?? 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 distributor[edit]

To do ?? 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

Marketing[edit]

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

Ongoing development and planning[edit]

(after the release is before the release)

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

Status unclear / self-assigned

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

Popularity, e.g. WikiApiary

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

Required rights and access[edit]

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