chore: label release checklist items
galargh committed
Jan 26, 2023 at 16:29 UTC
a3f7e84d6267a445654ad4ba4234b8485fd8f657
1 file changed
+66
-44
docs/RELEASE_ISSUE_TEMPLATE.md
+66
-44
@@ -39,6 +39,23 @@ As usual, this release includes important fixes, some of which may be critical f
39
40
## ✅ Release Checklist
41
42
+### Labels
43
+
44
+If an item should be executed for a specific release type, it should be labeled with one of the following labels:
45
+
46
+-  execute **ONLY** when releasing a Release Candidate
47
+-  execute **ONLY** when releasing a Final Release
48
+
49
+Otherwise, it means it should be executed for **ALL** release types.
50
+
51
+Patch releases should follow the same process as `.0` releases. If some item should **NOT** be executed for a Patch Release, it should be labeled with:
52
+
53
+-  do **NOT** execute when releasing a Patch Release
54
+
55
+### Before the release
56
+
57
+This section covers tasks to be done ahead of the release.
58
+
59
- [ ] Verify you have access to all the services and tools required for the release
60
- [ ] [GPG signature](https://docs.github.com/en/authentication/managing-commit-signature-verification) configured in local git and in GitHub
61
- [ ] [admin access to IPFS Discourse](https://discuss.ipfs.tech/g/admins)
@@ -68,24 +85,31 @@ As usual, this release includes important fixes, some of which may be critical f
85
- [ ] Create a release process improvement PR
86
- [ ] update the [release issue template](docs/RELEASE_ISSUE_TEMPLATE.md) as you go
87
- [ ] link it in the [Meta](#meta) section
88
+
89
+### The release
90
+
91
+This section covers tasks to be done during each release.
92
+
93
- [ ] Cut the release branch and update version numbers accordingly using `kuboreleaser release --version vX.Y.Z(-RCN) cut-branch`
72
- - [ ] create a new branch `release-vX.Y` from `master`
73
- - [ ] update the `CurrentVersionNumber` in [version.go](version.go) in the `master` branch to `vX.(Y+1).0-dev`
94
+ - [ ] create a new branch `release-vX.Y.Z`
95
+ - use `master` as base if `Z == 0`
96
+ - use `release` as base if `Z > 0`
97
+ - [ ]  update the `CurrentVersionNumber` in [version.go](version.go) in the `master` branch to `vX.(Y+1).0-dev`
98
- [example](https://github.com/ipfs/kubo/pull/9305)
99
- [ ] update the `CurrentVersionNumber` in [version.go](version.go) in the `release-vX.Y` branch to `vX.Y.Z(-RCN)`
100
- [example](https://github.com/ipfs/kubo/pull/9394)
101
- [ ] create a draft PR from `release-vX.Y` to `release`
102
- [example](https://github.com/ipfs/kubo/pull/9306)
103
- [ ] verify all CI checks on the PR from `release-vX.Y` to `release` are passing
80
-- [ ] Cherry-pick commits from `master` to the `release-vX.Y` using `git cherry-pick -x <commit>`
81
-- [ ] Add full changelog and contributors to the [changelog](docs/changelogs/vX.Y.md)
82
-- [ ] Merge the PR from `release-vX.Y` to `release` using the `Create a merge commit`
104
+- [ ] Cherry-pick commits from `master` to the `release-vX.Y.Z` using `git cherry-pick -x <commit>`
105
+- [ ]  Add full changelog and contributors to the [changelog](docs/changelogs/vX.Y.md)
106
+- [ ]  Merge the PR from `release-vX.Y` to `release` using the `Create a merge commit`
107
- do **NOT** use `Squash and merge` nor `Rebase and merge` because we need to be able to sign the merge commit
108
- do **NOT** delete the `release-vX.Y` branch
109
- [ ] Create the release tag using `kuboreleaser release --version vX.Y.Z(-RCN) tag`
110
- This is a dangerous operation! Go and Docker publishing are difficult to reverse! Have the release reviewer verify all the commands marked with ⚠️!
87
- - [ ] ⚠️ tag the HEAD commit of the `release-vX.Y` branch using `git tag -s vX.Y.Z(-RCN) -m 'Prerelease X.Y.Z(-RCN)'`
88
- - [ ] ⚠️ tag the HEAD commit of the `release` branch using `git tag -s vX.Y.Z(-RCN) -m 'Release X.Y.Z(-RCN)'`
111
+ - [ ]  ⚠️ tag the HEAD commit using `git tag -s vX.Y.Z(-RCN) -m 'Prerelease X.Y.Z(-RCN)'`
112
+ - [ ]  ⚠️ tag the HEAD commit of the `release` branch using `git tag -s vX.Y.Z(-RCN) -m 'Release X.Y.Z(-RCN)'`
113
- [ ] ⚠️ verify the tag is signed and tied to the correct commit using `git show vX.Y.Z(-RCN)`
114
- [ ] ⚠️ push the tag to GitHub using `git push origin vX.Y.Z(-RCN)`
115
- do **NOT** use `git push --tags` because it pushes all your local tags
@@ -105,16 +129,14 @@ As usual, this release includes important fixes, some of which may be critical f
129
- [ ] verify the release is available on [NPM](https://www.npmjs.com/package/go-ipfs?activeTab=versions)
130
- [ ] Publish the release to [GitHub](https://github.com/ipfs/kubo/releases) using `kuboreleaser release --version vX.Y.Z(-RCN) publish-to-github`
131
- [ ] create a new release on [GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release)
108
- - [prerelease example](https://github.com/ipfs/kubo/releases/tag/v0.17.0-rc1)
109
- - use the `vX.Y.Z(-RCN)` tag
110
- - link to the release issue
111
- - link to the changelog in the description
112
- - check the `This is a pre-release` checkbox
113
- - [release example](https://github.com/ipfs/kubo/releases/tag/v0.17.0)
114
- - use the `vX.Y.Z(-RCN)` tag
115
- - link to the release issue
116
- - copy the changelog (without the header) in the description
117
- - do **NOT** check the `This is a pre-release` checkbox
132
+ - [RC example](https://github.com/ipfs/kubo/releases/tag/v0.17.0-rc1)
133
+ - [FINAL example](https://github.com/ipfs/kubo/releases/tag/v0.17.0)
134
+ - [ ] use the `vX.Y.Z(-RCN)` tag
135
+ - [ ] link to the release issue
136
+ - [ ]  link to the changelog in the description
137
+ - [ ]  check the `This is a pre-release` checkbox
138
+ - [ ]  copy the changelog (without the header) in the description
139
+ - [ ]  do **NOT** check the `This is a pre-release` checkbox
140
- [ ] run the [sync-release-assets](https://github.com/ipfs/kubo/actions/workflows/sync-release-assets.yml) workflow
141
- [ ] wait for the [sync-release-assets](https://github.com/ipfs/kubo/actions/workflows/sync-release-assets.yml) workflow run to finish
142
- [ ] verify the release assets are present in the [GitHub release](https://github.com/ipfs/kubo/releases/tag/vX.Y.Z(-RCN))
@@ -124,57 +146,57 @@ As usual, this release includes important fixes, some of which may be critical f
146
- [ ] create an [IPFS Discourse](https://discuss.ipfs.tech) topic
147
- [prerelease example](https://discuss.ipfs.tech/t/kubo-v0-16-0-rc1-release-candidate-is-out/15248)
148
- [release example](https://discuss.ipfs.tech/t/kubo-v0-16-0-release-is-out/15249)
127
- - use `Kubo vX.Y.Z(-RCN) is out!` as the title
128
- - use `kubo` and `go-ipfs` as topics
129
- - repeat the title as a heading (`##`) in the description
130
- - link to the GitHub Release, binaries on IPNS, docker pull command and release notes in the description
149
+ - [ ] use `Kubo vX.Y.Z(-RCN) is out!` as the title
150
+ - [ ] use `kubo` and `go-ipfs` as topics
151
+ - [ ] repeat the title as a heading (`##`) in the description
152
+ - [ ] link to the GitHub Release, binaries on IPNS, docker pull command and release notes in the description
153
- [ ] pin the [IPFS Discourse](https://discuss.ipfs.tech) topic globally
154
- you can make the topic a banner if there is no banner already
155
- verify the [IPFS Discourse](https://discuss.ipfs.tech) topic was copied to:
156
- [ ] [#ipfs-chatter](https://discord.com/channels/669268347736686612/669268347736686615) in IPFS Discord
157
- [ ] [#ipfs-chatter](https://filecoinproject.slack.com/archives/C018EJ8LWH1) in FIL Slack
158
- [ ] [#ipfs-chatter:ipfs.io](https://matrix.to/#/#ipfs-chatter:ipfs.io) in Matrix
137
- - [ ] create an issue comment mentioning early testers on the release issue
159
+ - [ ]  create an issue comment mentioning early testers on the release issue
160
- [example](https://github.com/ipfs/kubo/issues/9319#issuecomment-1311002478)
139
- - [ ] create an issue comment linking to the release on the release issue
161
+ - [ ]  create an issue comment linking to the release on the release issue
162
- [example](https://github.com/ipfs/kubo/issues/9417#issuecomment-1400740975)
141
- - [ ] ask the marketing team to tweet about the release in [#shared-pl-marketing-requests](https://filecoinproject.slack.com/archives/C018EJ8LWH1) in FIL Slack
163
+ - [ ]  ask the marketing team to tweet about the release in [#shared-pl-marketing-requests](https://filecoinproject.slack.com/archives/C018EJ8LWH1) in FIL Slack
164
- [example](https://filecoinproject.slack.com/archives/C018EJ8LWH1/p1664885305374900)
143
- - [ ] post the link to the [GitHub Release](https://github.com/ipfs/kubo/releases/tag/vX.Y.Z(-RCN)) to [Reddit](https://reddit.com/r/ipfs)
165
+ - [ ]  post the link to the [GitHub Release](https://github.com/ipfs/kubo/releases/tag/vX.Y.Z(-RCN)) to [Reddit](https://reddit.com/r/ipfs)
166
- [example](https://www.reddit.com/r/ipfs/comments/9x0q0k/kubo_v0160_release_is_out/)
145
-- [ ] Add the link to the [IPFS Discourse](https://discuss.ipfs.tech) topic to the [GitHub Release](https://github.com/ipfs/kubo/releases/tag/vX.Y.Z(-RCN)) description
167
+- [ ]  Add the link to the [IPFS Discourse](https://discuss.ipfs.tech) topic to the [GitHub Release](https://github.com/ipfs/kubo/releases/tag/vX.Y.Z(-RCN)) description
168
- [example](https://github.com/ipfs/kubo/releases/tag/v0.17.0)
147
-- [ ] `kuboreleaser release --version vX.Y.Z(-RCN) test-ipfs-companion`
169
+- [ ] Test the new version with `ipfs-companion` using `kuboreleaser release --version vX.Y.Z(-RCN) test-ipfs-companion`
170
- [ ] run the [e2e](https://github.com/ipfs/ipfs-companion/actions/workflows/e2e.yml)
171
- use `vX.Y.Z(-RCN)` as the Kubo image version
172
- [ ] wait for the [e2e](https://github.com/ipfs/ipfs-companion/actions/workflows/e2e.yml) workflow run to finish
151
-- [ ] Update Kubo in [interop](https://github.com/ipfs/interop) using `kuboreleaser release --version vX.Y.Z(-RCN) update-interop`
152
- - [ ] check out [ipfs/interop](https://github.com/ipfs/interop)
153
- - [ ] run `npm install`
154
- - [ ] create a PR which updates `package.json` and `package-lock.json`
155
- - [ ] merge the PR
173
+- [ ]  Update Kubo in [interop](https://github.com/ipfs/interop) using `kuboreleaser release --version vX.Y.Z(-RCN) update-interop`
174
+ - [ ]  check out [ipfs/interop](https://github.com/ipfs/interop)
175
+ - [ ]  run `npm install`
176
+ - [ ]  create a PR which updates `package.json` and `package-lock.json`
177
+ - [ ]  merge the PR
178
- [ ] Update Kubo in [ipfs-desktop](https://github.com/ipfs/ipfs-desktop) using `kuboreleaser release --version vX.Y.Z(-RCN) update-ipfs-desktop`
179
- [ ] check out [ipfs/ipfs-desktop](https://github.com/ipfs/ipfs-desktop)
180
- [ ] run `npm install`
181
- [ ] create a PR which updates `package.json` and `package-lock.json`
160
- - [ ] merge the PR
161
-- [ ] Update Kubo docs using `kuboreleaser release --version vX.Y.Z(-RCN) update-ipfs-docs`
162
- - [ ] run the [update-on-new-ipfs-tag.yml](https://github.com/ipfs/ipfs-docs/actions/workflows/update-on-new-ipfs-tag.yml) workflow
163
- - [ ] merge the PR created by the [update-on-new-ipfs-tag.yml](https://github.com/ipfs/ipfs-docs/actions/workflows/update-on-new-ipfs-tag.yml) workflow run
164
-- [ ] Create a blog entry on [ipfs.tech](https://blog.ipfs.tech) `kuboreleaser release --version vX.Y.Z(-RCN) update-ipfs-blog --date YYYY-MM-DD`
165
- - [ ] create a PR which adds a release note for the new Kubo version
182
+ - [ ]  merge the PR
183
+- [ ]  Update Kubo docs using `kuboreleaser release --version vX.Y.Z(-RCN) update-ipfs-docs`
184
+ - [ ]  run the [update-on-new-ipfs-tag.yml](https://github.com/ipfs/ipfs-docs/actions/workflows/update-on-new-ipfs-tag.yml) workflow
185
+ - [ ]  merge the PR created by the [update-on-new-ipfs-tag.yml](https://github.com/ipfs/ipfs-docs/actions/workflows/update-on-new-ipfs-tag.yml) workflow run
186
+- [ ]  Create a blog entry on [ipfs.tech](https://blog.ipfs.tech) `kuboreleaser release --version vX.Y.Z(-RCN) update-ipfs-blog --date YYYY-MM-DD`
187
+ - [ ]  create a PR which adds a release note for the new Kubo version
188
- [example](https://github.com/ipfs/ipfs-blog/pull/529)
167
- - [ ] merge the PR
168
- - [ ] verify the blog entry was published
189
+ - [ ]  merge the PR
190
+ - [ ]  verify the blog entry was published
191
- [ ] Keep checking the [metrics](https://protocollabs.grafana.net/d/8zlhkKTZk/gateway-slis-precomputed?orgId=1) until the release issue is closed
192
- [release notes](https://www.notion.so/pl-strflt/Kubo-Gateway-Release-Notes-6e0efff28ee540be9ccb8f2b85104c42)
193
- post in the [#bifrost](https://filecoinproject.slack.com/archives/C018EJ8LWH1) channel in FIL Slack if there is a problem
172
-- [ ] Merge the [release](https://github.com/ipfs/kubo/tree/release) back into [master](https://github.com/ipfs/kubo/tree/master) using `kuboreleaser release --version vX.Y.Z(-RCN) merge-branch`
194
+- [ ]  Merge the [release](https://github.com/ipfs/kubo/tree/release) back into [master](https://github.com/ipfs/kubo/tree/master) using `kuboreleaser release --version vX.Y.Z(-RCN) merge-branch`
195
- ignore the changes to [version.go](version.go) (keep the `-dev` version)
174
-- [ ] Create the next [changelog](https://github.com/ipfs/kubo/blob/master/docs/changelogs/vX.(Y+1).md)
196
+- [ ]   Create the next [changelog](https://github.com/ipfs/kubo/blob/master/docs/changelogs/vX.(Y+1).md)
197
- link to the new changelog in the [CHANGELOG.md](CHANGELOG.md) file
176
-- [ ] Create the next release issue
177
-- [ ] Close the release issue
198
+- [ ]   Create the next release issue
199
+- [ ]  Close the release issue
200
201
## How to contribute?
202