@cryptotaxi247 / kubo / commits / 335d961d1

docs: update release issue template with learnings from v0.16.0-rc1 release

galargh committed Sep 27, 2022 at 16:26 UTC 335d961d15864470f3373b4108efcdd3665b56f4
1 file changed +69 -36
docs/RELEASE_ISSUE_TEMPLATE.md
+69 -36
@@ -39,6 +39,11 @@ Checklist:
39 - [ ] **Stage 0 - Prerequisites**
40 - [ ] Ensure that the `What's left for release` section has all the checkboxes checked. If that's not the case, discuss the open items with Kubo maintainers and update the release schedule accordingly.
41 - [ ] Create `docs-release-vX.Y.Z` branch, open a draft PR and keep updating `docs/RELEASE_ISSUE_TEMPLATE.md` on that branch as you go.
42 + - [ ] Ensure you have [GPG key generated]() and [added to your GitHub account](https://docs.github.com/en/authentication/managing-commit-signature-verification/adding-a-gpg-key-to-your-github-account). This will enable you to created signed tags.
43 + - [ ] Ensure you have [admin access](https://discuss.ipfs.tech/g/admins) to [IPFS Discourse](https://discuss.ipfs.tech/). Admin access is required to globally pin posts and create banners. @2color might be able to assist you.
44 + - [ ] Access to [#bifrost](https://filecoinproject.slack.com/archives/C03MMMF606T) channel in FIL Slack might come in handy. Ask the release reviewer to invite you over.
45 + - [ ] After the release is deployed to our internal infrastructure, you're going to need read access to [IPFS network metrics](https://github.com/protocol/pldw/blob/624f47cf4ec14ad2cec6adf601a9f7b203ef770d/docs/sources/ipfs.md#ipfs-network-metrics) dashboards. Open an access request in https://github.com/protocol/pldw/issues/new/choose if you don't have it yet ([example](https://github.com/protocol/pldw/issues/158)).
46 + - [ ] You're also going to need NPM installed on your system. See [here](https://docs.npmjs.com/downloading-and-installing-node-js-and-npm) for instructions.
47 - [ ] **Stage 1 - Initial Preparations**
48 - [ ] Upgrade to the latest patch release of Go that CircleCI has published (currently used version: `1.19.1`)
49 - [ ] See the list here: https://hub.docker.com/r/cimg/go/tags
@@ -50,58 +55,86 @@ Checklist:
55 - [ ] Bump the version in `version.go` in the `release-vX.Y.Z` branch to `vX.Y.Z-rcN`.
56 - [ ] If applicable, add new commits to the `release-vX.Y.Z` branch from `master` using `git cherry-pick -x ...`
57 - Note: `release-*` branches are protected. You can do all needed updates on a separated branch (e.g. `wip-release-vX.Y.Z`) and when everything is settled push to `release-vX.Y.Z`
53 - - [ ] Tag HEAD `release-vX.Y.Z` commit with `vX.Y.Z-rcN` (`git tag -s vX.Y.Z-rcN"`)
54 - - [ ] Push the `release-vX.Y.Z` branch to GitHub (`git push origin release-vX.Y.Z`).
58 + - [ ] Push the `release-vX.Y.Z` branch to GitHub (`git push origin release-vX.Y.Z`) and create a draft PR from that branch if it doesn't exist yet ([example](https://github.com/ipfs/kubo/pull/9306)).
59 + - [ ] Wait for CI to run and complete PR checks. All checks should pass.
60 + - [ ] Tag HEAD `release-vX.Y.Z` commit with `vX.Y.Z-rcN` (`git tag -s vX.Y.Z-rcN`, use "Pre-release 0.15.0-rc1" as the tag message)
61 - [ ] Push the `vX.Y.Z-rcN` tag to GitHub (`git push origin vX.Y.Z-rcN`; DO NOT USE `git push --tags` because it pushes all your local tags).
56 - - [ ] Add artifacts to https://dist.ipfs.tech by making a PR against [ipfs/distributions](https://github.com/ipfs/distributions) with local changes produced by `add-version` (see [usage](https://github.com/ipfs/distributions#usage))
62 + - [ ] Add artifacts to https://dist.ipfs.tech by making a PR against [ipfs/distributions](https://github.com/ipfs/distributions)
63 + - [ ] Clone the `ipfs/distributions` repo locally.
64 + - [ ] Create a new branch (`kubo-release-vX.Y.Z-rcn`) from `master`.
65 + - [ ] Run `./dist.sh add-version kubo vX.Y.Z-rcN` to add the new version to the `versions` file ([instructions](https://github.com/ipfs/distributions#usage)).
66 + - If you're adding a new RC, `dist.sh` will print _WARNING: not marking pre-release kubo vX.Y.Z-rc1n as the current version._.
67 + - [ ] Push the `kubo-release-vX.Y.Z-rcn` branch to GitHub and create a PR from that branch ([example](https://github.com/ipfs/distributions/pull/760)).
68 - [ ] Wait for PR to build artifacts and generate diff (~30min)
69 - [ ] Inspect results, merge if CI is green and the diff looks ok
59 - - [ ] Wait for `master` branch to build and update DNSLink at https://dist.ipfs.tech (~30min)
60 - - [ ] Cut a pre-release on [GitHub](https://github.com/ipfs/kubo/releases) and reuse signed artifacts from https://dist.ipfs.tech/kubo (upload the result of the `ipfs/distributions` build from the previous step).
70 + - [ ] Wait for `master` branch to build. It will automatically update DNSLink at https://dist.ipfs.tech (~30min)
71 + - [ ] Cut a pre-release on [GitHub](https://github.com/ipfs/kubo/releases) ([instructions](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release), [example](https://github.com/ipfs/kubo/releases/tag/v0.16.0-rc1))
72 + - Use `vX.Y.Z-rcN` as the tag.
73 + - Link to the release issue in the description.
74 + - Link to the relevant [changelog](https://github.com/ipfs/kubo/blob/master/docs/changelogs/) in the description.
75 + - Check `This is a pre-release`.
76 + - [ ] Synchronize release artifacts by running [sync-release-assets](https://github.com/ipfs/kubo/actions/workflows/sync-release-assets.yml) workflow.
77 - [ ] Announce the RC
62 - - [ ] Create a new post on [IPFS Discourse](https://discuss.ipfs.tech). This will automatically post to IPFS Discord #ipfs-chatter. Examples from the past: [0.14.0](https://discuss.ipfs.io/t/kubo-formerly-go-ipfs-v0-14-0-release-is-out/14794)
63 - - [ ] Pin the topic. You need to be part of the [admin group](https://discuss.ipfs.tech/g/admins) for that.
64 - - [ ] To the _early testers_ listed in [docs/EARLY_TESTERS.md](https://github.com/ipfs/go-ipfs/tree/master/docs/EARLY_TESTERS.md). Do this by copy/pasting their GitHub usernames and checkboxes as a comment to the release issue so they get a GitHub notification. ([example](https://github.com/ipfs/go-ipfs/issues/8176#issuecomment-909356394))
65 -- [ ] **Stage 3 - Automated Testing**
66 - - [ ] Automated Testing (already tested in CI) - Ensure that all tests are passing, this includes:
67 - - [ ] unit, sharness, cross-build, etc (`make test`)
68 - - [ ] lint (`make test_go_lint`)
69 - - [ ] [interop](https://github.com/ipfs/interop#test-with-a-non-yet-released-version-of-go-ipfs)
70 - - [ ] [go-ipfs-api](https://github.com/ipfs/go-ipfs-api)
71 - - [ ] [go-ipfs-http-client](https://github.com/ipfs/go-ipfs-http-client)
72 - - [ ] [WebUI](https://github.com/ipfs-shipyard/ipfs-webui)
73 -- [ ] **Stage 4 - Internal Testing**
74 - - [ ] CHANGELOG.md has been updated
75 - - use [`./bin/mkreleaselog`](https://github.com/ipfs/go-ipfs/tree/master/bin/mkreleaselog) to generate a nice starter list
76 - - you need to install `zsh`.
78 + - [ ] Create a new post on [IPFS Discourse](https://discuss.ipfs.tech). ([example](https://discuss.ipfs.tech/t/kubo-v0-16-0-rc1-release-candidate-is-out/15248))
79 + - Use `Kubo vX.Y.Z-rcn Release Candidate is out!` as the title.
80 + - Use `kubo` and `go-ipfs` as topics.
81 + - Repeat the title as a heading (`##`) in the description.
82 + - Link to the release issue in the description.
83 + - [ ] Pin the topic globally so that it stays at the top of the category.
84 + - [ ] If there is no more important banner currently set on Discourse (e.g. IPFS Camp announcement), make the topic into a banner.
85 + - [ ] Check if Discourse post was automatically copied to:
86 + - [ ] IPFS Discord #ipfs-chatter
87 + - [ ] FIL Slack #ipfs-chatter
88 + - [ ] Matrix
89 + - [ ] Mention [early testers](https://github.com/ipfs/go-ipfs/tree/master/docs/EARLY_TESTERS.md) in the comment under the release issue ([example](https://github.com/ipfs/kubo/issues/9237#issuecomment-1258072509)).
90 +- [ ] **Stage 3 - Internal Testing**
91 - [ ] Infrastructure Testing.
78 - - [ ] Open an issue against https://github.com/protocol/bifrost-infra and spell out all that we want (e.g.,mgateways, bootstrapper, and cluster). [example](https://github.com/protocol/bifrost-infra/issues/2046)
79 - - [ ] Deploy new version to a subset of Bootstrappers
80 - - [ ] Deploy new version to a subset of Gateways
81 - - [ ] Deploy new version to a subset of Preload nodes
82 - - [ ] Collect [metrics](https://protocollabs.grafana.net/d/8zlhkKTZk/gateway-slis-precomputed?orgId=1) every day. Work with the Infrastructure team to learn of any hiccup
83 - - [ ] IPFS Application Testing - Run the tests of the following applications:
92 + - [ ] Open an issue against [bifrost-infra](https://github.com/protocol/bifrost-infra) ([example](https://github.com/protocol/bifrost-infra/issues/2109)).
93 + - Spell out all that we want updated - gateways, the bootstraper and the cluster/preload nodes
94 + - Mention @protocol/bifrost-team in the issue if you opened it prior to the release
95 + - [Optional] Reply under a message about the issue in the #bifrost channel on FIL Slack once the RC is out. Send the message to the channel.
96 + - [ ] Check [metrics](https://protocollabs.grafana.net/d/8zlhkKTZk/gateway-slis-precomputed?orgId=1) every day.
97 + - Compare the metrics trends week over week.
98 + - If there is an unexpected variation in the trend, message the #bifrost channel on FIL Slack and ask for help investigation the cause.
99 + - [ ] IPFS Application Testing.
100 - [ ] [IPFS Desktop](https://github.com/ipfs-shipyard/ipfs-desktop)
85 - - [ ] Ensure the RC is published to [the NPM package](https://www.npmjs.com/package/go-ipfs?activeTab=versions) ([happens automatically, just wait for CI](https://github.com/ipfs/npm-go-ipfs/actions))
86 - - [ ] Upgrade to the RC in [ipfs-desktop](https://github.com/ipfs-shipyard/ipfs-desktop) and push to a branch ([example](https://github.com/ipfs/ipfs-desktop/pull/1826/commits/b0a23db31ce942b46d95965ee6fe770fb24d6bde)), and open a draft PR to track through the final release ([example](https://github.com/ipfs/ipfs-desktop/pull/1826))
101 + - [ ] Ensure the RC is published to [the NPM package](https://www.npmjs.com/package/go-ipfs?activeTab=versions) ([happens automatically, just wait for CI](https://github.com/ipfs/npm-go-ipfs/actions)), you can run https://github.com/ipfs/npm-go-ipfs/actions/workflows/main.yml to force release new version
102 + - [ ] Upgrade to the RC in [ipfs-desktop](https://github.com/ipfs-shipyard/ipfs-desktop) and push to a branch ([example](https://github.com/ipfs/ipfs-desktop/pull/1826/commits/b0a23db31ce942b46d95965ee6fe770fb24d6bde)), and open a draft PR to track through the final release ([example](https://github.com/ipfs/ipfs-desktop/pull/1826)), you have to check out the repo to update package-lock.json
103 - [ ] Ensure CI tests pass, repeat for new RCs
104 - [ ] [IPFS Companion](https://github.com/ipfs-shipyard/ipfs-companion)
105 - Start kubo daemon of the version to release.
90 - - Start a fresh chromium or chrome instance using `chromium --user-data-dir=$(mktemp -d)`
91 - - Start a fresh firefox instance using `firefox --profile $(mktemp -d)`
106 + - Start a fresh chromium or chrome instance using `chromium --user-data-dir=$(mktemp -d)` (macos `/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --user-data-dir=$(mktemp -d)`)
107 + - Start a fresh firefox instance using `firefox --profile $(mktemp -d)` (macos `/Applications/Firefox.app/Contents/MacOS/firefox --profile $(mktemp -d)`)
108 - Install IPFS Companion from [vendor-specific store](https://github.com/ipfs/ipfs-companion/#readme).
109 - Check that the comunication between Kubo daemon and IPFS companion is working properly checking if the number of connected peers changes.
94 -- [ ] **Stage 5 - Community Prod Testing**
110 + - [ ] [interop](https://github.com/ipfs/interop)
111 + - [ ] Clone the `ipfs/interop` repo locally.
112 + - [ ] Create a new branch (`kubo-release-vX.Y.Z-rcn`) from `master`.
113 + - [ ] Update `go-ipfs` version to `vX.Y.Z-rcN` in [package.json](https://github.com/ipfs/interop/blob/master/package.json).
114 + - [ ] Run `npm install` locally
115 + - [ ] Push the `kubo-release-vX.Y.Z-rcn` branch to GitHub and create a draft PR from that branch ([example](https://github.com/ipfs/interop/pull/511)).
116 + - [ ] [go-ipfs-api](https://github.com/ipfs/go-ipfs-api)
117 + - [ ] Create a branch with kubo version pinned in the [test setup action](https://github.com/ipfs/go-ipfs-api/blob/master/.github/actions/go-test-setup/action.yml) ([example](https://github.com/ipfs/go-ipfs-api/commit/26aeb9075240e595d4a095a4e803767171eec06c)).
118 + - [ ] Ensure that CI is green.
119 + - [ ] Delete the branch.
120 + - [ ] [go-ipfs-http-client](https://github.com/ipfs/go-ipfs-http-client)
121 + - [ ] Create a branch with kubo version pinned in the [test setup action](https://github.com/ipfs/go-ipfs-http-client/blob/master/.github/actions/go-test-setup/action.yml) ([example](https://github.com/ipfs/go-ipfs-http-client/commit/940886ca500e567c42660122f405432579ecad90)).
122 + - [ ] Ensure that CI is green.
123 + - [ ] Delete the branch.
124 + - [ ] [WebUI](https://github.com/ipfs-shipyard/ipfs-webui)
125 + - [ ] Run [CI workflow](https://github.com/ipfs/ipfs-webui/actions/workflows/ci.yml) with `vX.Y.Z-rcN` for the `kubo-version` input.
126 + - [ ] Ensure that CI is green.
127 +- [ ] **Stage 4 - Community Prod Testing** - _ONLY FOR FINAL RELEASE_
128 - [ ] Documentation
129 - [ ] Ensure that [CHANGELOG.md](https://github.com/ipfs/go-ipfs/tree/master/CHANGELOG.md) is up to date
130 + - [ ] CHANGELOG.md has been updated // This is only relevant for final release
131 + - use [`./bin/mkreleaselog`](https://github.com/ipfs/go-ipfs/tree/master/bin/mkreleaselog) to generate a nice starter list
132 + - you need to install `zsh`.
133 - [ ] Add a link from release notes to Discuss post (like we did here: https://github.com/ipfs/kubo/releases/tag/v0.15.0 )
134 - [ ] Keep the release notes as trim as possible (removing some of the top headers, like we did here: https://github.com/ipfs/kubo/releases/tag/v0.15.0 )
135 - [ ] Ensure that [README.md](https://github.com/ipfs/go-ipfs/tree/master/README.md) is up to date
136 - [ ] Update docs by merging the auto-created PR in https://github.com/ipfs/ipfs-docs/pulls (they are auto-created every 12 hours) (only for final releases, not RCs)
101 - - [ ] Invite the wider community through (link to the release issue):
102 - - [ ] [discuss.ipfs.io](https://discuss.ipfs.io/c/announcements)
103 - - [ ] Matrix
104 -- [ ] **Stage 6 - Release**
137 +- [ ] **Stage 5 - Release** - _ONLY FOR FINAL RELEASE_
138 - [ ] Final preparation
139 - [ ] Verify that version string in [`version.go`](https://github.com/ipfs/go-ipfs/tree/master/version.go) has been updated.
140 - [ ] Open a PR merging `release-vX.Y.Z` into the `release` branch.
@@ -135,7 +168,7 @@ Checklist:
168 - [ ] [Reddit](https://reddit.com/r/ipfs)
169 - [ ] [discuss.ipfs.io](https://discuss.ipfs.io/c/announcements)
170 - A bot auto-posts this to Discord and Matrix
138 -- [ ] **Stage 7 - Post-Release**
171 +- [ ] **Stage 6 - Post-Release**
172 - [ ] Merge the `release` branch back into `master`, ignoring the changes to `version.go` (keep the `-dev` version from master).
173 - [ ] Create an issue using this release issue template for the _next_ release.
174 - [ ] Make sure any last-minute changelog updates from the blog post make it back into the CHANGELOG.