Skip to content

Commit 4b2bc43

Browse files
authored
Merge pull request #5850 from wp-cli/update/release-template
Update release checklist template
2 parents 782c3b1 + c532c80 commit 4b2bc43

File tree

1 file changed

+93
-49
lines changed

1 file changed

+93
-49
lines changed

.github/ISSUE_TEMPLATE/4-REGULAR_RELEASE_CHECKLIST.md

Lines changed: 93 additions & 49 deletions
Original file line numberDiff line numberDiff line change
@@ -3,14 +3,19 @@ name: "\U0001F680 Regular Release Checklist"
33
about: "\U0001F512 Maintainers only: create a checklist for a regular release process"
44
title: 'Release checklist for v2.x.x'
55
labels: 'i: scope:distribution'
6-
assignees: 'schlessera'
6+
assignees: ''
77

88
---
99
# Regular Release Checklist - v2.x.x
1010

1111
### Preparation
1212

13-
- [ ] Draft release post on the [make.wordpress.org CLI blog](https://make.wordpress.org/cli/wp-admin/post-new.php)
13+
- [ ] Mention on Slack that a release is being prepared
14+
15+
People should wait with updating until the announcement. Before that, things are still in motion.
16+
17+
- [ ] Verify all tests pass in the [automated test suite](https://github.com/wp-cli/automated-tests)
18+
1419
- [ ] Regenerate command and internal API docs
1520

1621
Command and internal API docs need to be regenerated before every major release, because they're meant to correlate with the release.
@@ -21,56 +26,82 @@ assignees: 'schlessera'
2126
WP_CLI_PACKAGES_DIR=bin/packages ../wp-cli-bundle/vendor/bin/wp handbook gen-all
2227
```
2328
24-
- [ ] Verify results of [automated test suite](https://github.com/wp-cli/automated-tests)
29+
- [ ] Fetch the list of contributors (from within the [`wp-cli/wp-cli-dev`](https://githubcom/wp-cli/wp-cli-dev/) project repo)
30+
31+
From within the `wp-cli/wp-cli-dev` project repo, use `wp maintenance contrib-list` to generate a list of release contributors:
32+
33+
```
34+
GITHUB_TOKEN=<token> wp maintenance contrib-list --format=markdown
35+
```
36+
37+
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`).
38+
39+
For `wp-cli/wp-cli-bundle`, `wp-cli/wp-cli` and `wp-cli/handbook`, the script uses the currently open release milestone.
40+
41+
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.
42+
43+
The script will also produce a total contributor and pull request count you can use in the release post.
44+
45+
- [ ] Generate release notes for all packages (from within the [`wp-cli/wp-cli-dev`](https://githubcom/wp-cli/wp-cli-dev/) project repo)
46+
47+
From within the `wp-cli/wp-cli-dev` project repo, use `wp maintenance release-notes` to generate the release notes:
48+
49+
```
50+
GITHUB_TOKEN=<token> wp maintenance release-notes
51+
```
52+
53+
- [ ] Draft release post on the [make.wordpress.org CLI blog](https://make.wordpress.org/cli/wp-admin/post-new.php)
54+
55+
Use previous release blog posts as inspiration.
56+
57+
Use the contributor list and changelog from the previous steps in the blog post.
58+
59+
Note down the permalink already now, as it will be needed in later steps.
2560
2661
### Updating WP-CLI
2762
28-
- [ ] Create a branch called `release-x-x-x` on `wp-cli/wp-cli-bundle` to prepare the release PR.
63+
#### In [`wp-cli/wp-cli`](https://github.com/wp-cli/wp-cli/)
2964
30-
- [ ] Ensure that the contents of [VERSION](https://github.com/wp-cli/wp-cli/blob/master/VERSION) in `wp-cli/wp-cli` are changed to latest.
65+
- [ ] Create a branch called `prepare-x-x-x` to prepare the version bump.
3166
3267
- [ ] Update the WP-CLI version mention in `wp-cli/wp-cli`'s `README.md` ([ref](https://github.com/wp-cli/wp-cli/issues/3647)).
3368
3469
- [ ] Lock `php-cli-tools` version (if needed)
70+
`php-cli-tools` is sometimes set to `dev-main` 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.
71+
72+
- [ ] Ensure that the contents of [VERSION](https://github.com/wp-cli/wp-cli/blob/master/VERSION) in `wp-cli/wp-cli` are changed to latest.
3573
36-
`php-cli-tools` is sometimes set to `dev-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.
74+
- [ ] Submit the PR and merge it once all checks are green.
3775
38-
- [ ] Lock the framework version in the ([bundle repository](https://github.com/wp-cli/wp-cli-bundle/))
76+
- [ ] Create a Git tag for the new version. **Do not create a GitHub _release_ just yet**.
3977
40-
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.
78+
#### In [`wp-cli/wp-cli-bundle`](https://github.com/wp-cli/wp-cli-bundle/)
4179
42-
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"`.
80+
- [ ] Create a branch called `release-x-x-x` to prepare the release PR. **Branch name is very important here!**
4381
44-
### Updating the contributor list
82+
- [ ] Lock the framework version in `composer.json`
4583
46-
- [ ] Fetch the list of contributors (from within the [`wp-cli/wp-cli-dev`](https://githubcom/wp-cli/wp-cli-dev/) project repo)
84+
The version constraint of the `wp-cli/wp-cli` framework requirement is usually set to `"dev-main"`. Set it to the stable tagged release that represents the version to be published.
4785
48-
From within the `wp-cli/wp-cli-dev` project repo, use `wp maintenance contrib-list` to generate a list of release contributors:
86+
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"`.
4987
5088
```
51-
GITHUB_TOKEN=<token> wp maintenance contrib-list --format=markdown
89+
composer require wp-cli/wp-cli:^2.1.0
5290
```
5391
54-
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`).
55-
56-
For `wp-cli/wp-cli-bundle`, `wp-cli/wp-cli` and `wp-cli/handbook`, the script uses the currently open release milestone.
57-
58-
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.
59-
60-
The script will also produce a total contributor and pull request count you can use in the release post.
61-
6292
### Updating the Phar build
6393
6494
- [ ] Create a PR from the `release-x-x-x` branch in `wp-cli/wp-cli-bundle` and merge it. This will trigger the `wp-cli-release.*` builds.
6595
66-
- [ ] Create a git tag and push it.
96+
- [ ] Create a Git tag and push it. **Do not create a GitHub _release_ just yet**.
6797
6898
- [ ] Create a stable [Phar build](https://github.com/wp-cli/builds/tree/gh-pages/phar):
6999
70100
```
71101
cd wp-cli/builds/phar
72102
cp wp-cli-release.phar wp-cli.phar
73103
md5 -q wp-cli.phar > wp-cli.phar.md5
104+
shasum -a 256 wp-cli.phar | cut -d ' ' -f 1 > wp-cli.phar.sha256
74105
shasum -a 512 wp-cli.phar | cut -d ' ' -f 1 > wp-cli.phar.sha512
75106
```
76107
@@ -83,30 +114,35 @@ assignees: 'schlessera'
83114
84115
Note: The GPG key for `releases@wp-cli.org` has to be shared amongst maintainers.
85116
117+
- [ ] Verify the signature with `gpg --verify wp-cli.phar.asc wp-cli.phar`
118+
86119
- [ ] Perform one last sanity check on the Phar by ensuring it displays its information
87120
88121
```
89122
php wp-cli.phar --info
90123
```
91124
92-
- [ ] Commit the Phar and its hashes to the builds repo
125+
- [ ] Commit the Phar and its hashes to the `builds` repo
93126
94127
```
95128
git status
96129
git add .
97-
git commit -m "Update stable to v1.x.0"
130+
git commit -m "Update stable to v2.x.0"
98131
```
99132
100-
- [ ] Create a release on Github: <https://github.com/wp-cli/wp-cli/releases>. Make sure to upload the Phar from the builds directory.
133+
- [ ] Create actual releases on GitHub: Make sure to upload the previously generated Phar from the `builds` repo.
101134
102135
```
103-
cp wp-cli.phar wp-cli-1.x.0.phar
104-
cp wp-cli.phar.gpg wp-cli-1.x.0.phar.gpg
105-
cp wp-cli.phar.asc wp-cli-1.x.0.phar.asc
106-
cp wp-cli.phar.md5 wp-cli-1.x.0.phar.md5
107-
cp wp-cli.phar.sha512 wp-cli-1.x.0.phar.sha512
136+
cp wp-cli.phar wp-cli-2.x.0.phar
137+
cp wp-cli.phar.gpg wp-cli-2.x.0.phar.gpg
138+
cp wp-cli.phar.asc wp-cli-2.x.0.phar.asc
139+
cp wp-cli.phar.md5 wp-cli-2.x.0.phar.md5
140+
cp wp-cli.phar.sha512 wp-cli-2.x.0.phar.sha256
141+
cp wp-cli.phar.sha512 wp-cli-2.x.0.phar.sha512
108142
```
109143
144+
Do this for both [`wp-cli/wp-cli`](https://github.com/wp-cli/wp-cli/) and [`wp-cli/wp-cli-bundle`](https://github.com/wp-cli/wp-cli-bundle/)
145+
110146
- [ ] Verify Phar release artifact
111147
112148
```
@@ -116,50 +152,58 @@ assignees: 'schlessera'
116152
md5 hash verified: 179fc8dacbfe3ebc2d00ba57a333c982
117153
New version works. Proceeding to replace.
118154
Success: Updated WP-CLI to 1.4.0.
119-
$ wp @daniel option get home
120-
https://danielbachhuber.com
155+
$ wp cli version
156+
WP-CLI 2.8.1
157+
$wp eval 'echo \WP_CLI\Utils\http_request( "GET", "https://api.wordpress.org/core/version-check/1.6/" )->body;' --skip-wordpress
158+
<PHP serialized string with version numbers>
121159
```
122160
123-
### Updating the Debian and RPM builds
161+
### Verify the Debian and RPM builds
124162
125-
- [ ] Trigger Travis CI build on [wp-cli/deb-build](https://github.com/wp-cli/deb-build)
126-
- [ ] Trigger Travis CI build on [wp-cli/rpm-build](https://github.com/wp-cli/rpm-build)
163+
- [ ] In the [`wp-cli/builds`](https://github.com/wp-cli/builds) repository, verify that the Debian and RPM builds exist
127164
128-
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.
165+
**Note:** Right now, they are actually already generated automatically before all the tagging happened.
129166
130-
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.
167+
- [ ] Change symlink of `deb/php-wpcli_latest_all.deb` to point to the new stable version.
131168
132169
### Updating the Homebrew formula (should happen automatically)
133170
134-
- [ ] Update the url and sha256 here: https://github.com/Homebrew/homebrew-core/blob/master/Formula/wp-cli.rb#L4-L5
135-
136-
The easiest way to do so is by using the following command:
137-
138-
```
139-
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)
140-
```
171+
- [ ] Follow this [example PR](https://github.com/Homebrew/homebrew-core/pull/152339) to update version numbers and sha256 for both `wp-cli` and `wp-cli-completion`
141172
142173
### Updating the website
143174
144175
- [ ] Verify <https://github.com/wp-cli/wp-cli.github.com#readme> is up-to-date
145176
146-
- [ ] Update the [roadmap](https://make.wordpress.org/cli/handbook/roadmap/)
147-
148177
- [ ] Update all version references on the homepage (and localized homepages).
149178
179+
Can be mostly done by using search and replace for the version number and the blog post URL.
180+
181+
- [ ] Update the [roadmap](https://make.wordpress.org/cli/handbook/roadmap/) to mention the current stable version
182+
150183
- [ ] Tag a release of the website
151184
152185
### Announcing
153186
187+
- [ ] Publish the blog post
188+
154189
- [ ] Announce release on the [WP-CLI Twitter account](https://twitter.com/wpcli)
155-
- [ ] Announce using the `/announce` slash command in the [`#cli`](https://wordpress.slack.com/messages/C02RP4T41) Slack room.
190+
191+
- [ ] Optional: Announce using the `/announce` slash command in the [`#cli`](https://wordpress.slack.com/messages/C02RP4T41) Slack room.
192+
193+
This pings a lot of people, so it's not always desired. Plus, the blog post will pop up on Slack anyway.
156194
157195
### Bumping WP-CLI version again
158196
159197
- [ ] Bump [VERSION](https://github.com/wp-cli/wp-cli/blob/master/VERSION) in [`wp-cli/wp-cli`](https://github.com/wp-cli/wp-cli) again.
160198
161-
For instance, if the release version was `0.24.0`, the version should be bumped to `0.25.0-alpha`. Doing so ensure `wp cli update --nightly` works as expected.
199+
For instance, if the release version was `2.8.0`, the version should be bumped to `2.9.0-alpha`.
200+
201+
Doing so ensures `wp cli update --nightly` works as expected.
162202
163-
- [ ] Change the version constraint on `"wp-cli/wp-cli"` in `wp-cli/wp-cli-bundle`'s [`composer.json`](https://github.com/wp-cli/wp-cli-bundle/blob/master/composer.json) file back to `"dev-master"`.
203+
- [ ] Change the version constraint on `"wp-cli/wp-cli"` in `wp-cli/wp-cli-bundle`'s [`composer.json`](https://github.com/wp-cli/wp-cli-bundle/blob/master/composer.json) file back to `"dev-main"`.
204+
205+
```
206+
composer require wp-cli/wp-cli:dev-main
207+
```
164208
165209
- [ ] Adapt the branch alias in `wp-cli/wp-cli`'s [`composer.json`](https://github.com/wp-cli/wp-cli/blob/master/composer.json) file to match the new alpha version.

0 commit comments

Comments
 (0)