-
Notifications
You must be signed in to change notification settings - Fork 1k
Description
Regular Release Checklist - v2.4.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-xonwp-cli/wp-cli-bundleto prepare the release PR. -
Ensure that the contents of VERSION in
wp-cli/wp-cliare changed to latest. -
Update the WP-CLI version mention in
wp-cli/wp-cli'sREADME.md(ref). -
Lock
php-cli-toolsversion (if needed)php-cli-toolsis sometimes set todev-masterduring the development cycle. During the WP-CLI release process,composer.jsonshould be locked to a specific version.php-cli-toolsmay need a new version tagged as well. -
Lock the framework version in the (bundle repository)
The version constraint of the
wp-cli/wp-cliframework 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-bundleshould require"wp-cli/wp-cli": "^2.1.0".
Updating the contributor list
-
Fetch the list of contributors (from within the
wp-cli/wp-cli-devproject repo)From within the
wp-cli/wp-cli-devproject repo, usewp maintenance contrib-listto generate a list of release contributors:GITHUB_TOKEN=<token> wp maintenance contrib-list --format=markdownThis 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-cliandwp-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.lockfile). 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-xbranch inwp-cli/wp-cli-bundleand 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.pharNote: The GPG key for
releases@wp-cli.orghas 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
Updating the Homebrew formula (should happen automatically)
-
Update the url and sha256 here: https://github.com/Homebrew/homebrew-php/blob/master/Formula/wp-cli.rb#L8-L9
WP-CLI's Homebrew formula is automatically updated with the Homebrew updater application. See Homebrew/homebrew-php/pull/4195#issuecomment-305442172.
If the updater application doesn't work for some reason, a pull request must be submitted to the Homebrew repo.
To generate the sha256 (replace
xwith the minor version):wget https://github.com/wp-cli/wp-cli/archive/v1.x.0.tar.gz shasum -a 256 v1.x.0.tar.gzSee https://github.com/Homebrew/homebrew-php/pull/1687#issuecomment-98408399 and https://github.com/Homebrew/homebrew-php/pull/3398#issuecomment-235896016 for background.
-
Make a commit with format "wp-cli 2.x.0"
Updating the website
-
Verify https://github.com/wp-cli/wp-cli.github.com#readme is up-to-date
-
Update the roadmap
-
Tag a release of the website
Announcing
- Announce release on the WP-CLI Twitter account
- Announce using the
/announceslash command in the#cliSlack room.
Bumping WP-CLI version again
-
Bump VERSION in
wp-cli/wp-cliagain.For instance, if the release version was
0.24.0, the version should be bumped to0.25.0-alpha. Doing so ensurewp cli update --nightlyworks as expected. -
Change the version constraint on
"wp-cli/wp-cli"inwp-cli/wp-cli-bundle'scomposer.jsonfile back to"dev-master". -
Adapt the branch alias in
wp-cli/wp-cli'scomposer.jsonfile to match the new alpha version.