-
Notifications
You must be signed in to change notification settings - Fork 998
Description
Regular Release Checklist - v2.9.0
Preparation
-
Draft release post on the make.wordpress.org CLI blog
-
Regenerate command and internal API docs
Command and internal API docs need to be regenerated before every major release, because they're meant to correlate with the release.
git clone git@github.com:wp-cli/handbook.git cd handbook WP_CLI_PACKAGES_DIR=bin/packages ../wp-cli-bundle/vendor/bin/wp handbook gen-all
-
Verify results of automated test suite
Updating WP-CLI
-
Create a branch called
release-x-x-x
onwp-cli/wp-cli-bundle
to prepare the release PR. -
Ensure that the contents of VERSION in
wp-cli/wp-cli
are changed to latest. -
Update the WP-CLI version mention in
wp-cli/wp-cli
'sREADME.md
(ref). -
Lock
php-cli-tools
version (if needed)php-cli-tools
is sometimes set todev-master
during the development cycle. During the WP-CLI release process,composer.json
should be locked to a specific version.php-cli-tools
may need a new version tagged as well. -
Lock the framework version in the (bundle repository)
The version constraint of the
wp-cli/wp-cli
framework requirement is usually set to"dev-master"
. Set it to the stable tagged release that represents the version to be published.As an example, if releasing version 2.1.0 of WP-CLI, the
wp-cli/wp-cli-bundle
should require"wp-cli/wp-cli": "^2.1.0"
.
Updating the contributor list
-
Fetch the list of contributors (from within the
wp-cli/wp-cli-dev
project repo)From within the
wp-cli/wp-cli-dev
project repo, usewp maintenance contrib-list
to generate a list of release contributors:GITHUB_TOKEN=<token> wp maintenance contrib-list --format=markdown
This script identifies pull request creators from
wp-cli/wp-cli-bundle
,wp-cli/wp-cli
,wp-cli/handbook
, and all bundled WP-CLI commands (e.g.wp-cli/*-command
).For
wp-cli/wp-cli-bundle
,wp-cli/wp-cli
andwp-cli/handbook
, the script uses the currently open release milestone.For all bundled WP-CLI commands, the script uses all closed milestones since the last WP-CLI release (as identified by the version present in the
composer.lock
file). If a command was newly bundled since last release, contributors to that command will need to be manually added to the list.The script will also produce a total contributor and pull request count you can use in the release post.
Updating the Phar build
-
Create a PR from the
release-x-x-x
branch inwp-cli/wp-cli-bundle
and merge it. This will trigger thewp-cli-release.*
builds. -
Create a git tag and push it.
-
Create a stable Phar build:
cd wp-cli/builds/phar cp wp-cli-release.phar wp-cli.phar md5 -q wp-cli.phar > wp-cli.phar.md5 shasum -a 512 wp-cli.phar | cut -d ' ' -f 1 > wp-cli.phar.sha512
-
Sign the release with GPG (see Sign releases via GPG #2121):
gpg --output wp-cli.phar.gpg --default-key releases@wp-cli.org --sign wp-cli.phar gpg --output wp-cli.phar.asc --default-key releases@wp-cli.org --detach-sig --armor wp-cli.phar
Note: The GPG key for
releases@wp-cli.org
has to be shared amongst maintainers. -
Perform one last sanity check on the Phar by ensuring it displays its information
php wp-cli.phar --info
-
Commit the Phar and its hashes to the builds repo
git status git add . git commit -m "Update stable to v1.x.0"
-
Create a release on Github: https://github.com/wp-cli/wp-cli/releases. Make sure to upload the Phar from the builds directory.
cp wp-cli.phar wp-cli-1.x.0.phar cp wp-cli.phar.gpg wp-cli-1.x.0.phar.gpg cp wp-cli.phar.asc wp-cli-1.x.0.phar.asc cp wp-cli.phar.md5 wp-cli-1.x.0.phar.md5 cp wp-cli.phar.sha512 wp-cli-1.x.0.phar.sha512
-
Verify Phar release artifact
$ wp cli update You have version 1.4.0-alpha-88450b8. Would you like to update to 1.4.0? [y/n] y Downloading from https://github.com/wp-cli/wp-cli/releases/download/v1.4.0/wp-cli-1.4.0.phar... md5 hash verified: 179fc8dacbfe3ebc2d00ba57a333c982 New version works. Proceeding to replace. Success: Updated WP-CLI to 1.4.0. $ wp @daniel option get home https://danielbachhuber.com
Updating the Debian and RPM builds
-
Trigger Travis CI build on wp-cli/deb-build
-
Trigger Travis CI build on wp-cli/rpm-build
The two builds shouldn't be triggered at the same time, as one of them will then fail to push its build artifact due to the remote not being in the same state anymore.
Due to aggressive caching by the GitHub servers, the scripts might pull in cached version of the previous release instead of the new one. This seems to resolve automatically in a period of 24 hours.
Updating the Homebrew formula (should happen automatically)
-
Update the url and sha256 here: https://github.com/Homebrew/homebrew-core/blob/master/Formula/wp-cli.rb#L4-L5
The easiest way to do so is by using the following command:
brew bump-formula-pr --strict wp-cli --url=https://github.com/wp-cli/wp-cli/releases/download/v2.x.0/wp-cli-2.x.0.phar --sha256=$(wget -qO- https://github.com/wp-cli/wp-cli/releases/download/v2.x.0/wp-cli-2.x.0.phar - | sha256sum | cut -d " " -f 1)
Updating the website
-
Verify https://github.com/wp-cli/wp-cli.github.com#readme is up-to-date
-
Update the roadmap
-
Update all version references on the homepage (and localized homepages).
-
Tag a release of the website
Announcing
- Announce release on the WP-CLI Twitter account
- Announce using the
/announce
slash command in the#cli
Slack room.
Bumping WP-CLI version again
-
Bump VERSION in
wp-cli/wp-cli
again.For instance, if the release version was
0.24.0
, the version should be bumped to0.25.0-alpha
. Doing so ensurewp cli update --nightly
works as expected. -
Change the version constraint on
"wp-cli/wp-cli"
inwp-cli/wp-cli-bundle
'scomposer.json
file back to"dev-master"
. -
Adapt the branch alias in
wp-cli/wp-cli
'scomposer.json
file to match the new alpha version.