@cryptotaxi247 / kubo / commits / 6c6708af3

docs: guess what's going to be required for the final release

galargh committed Sep 27, 2022 at 18:17 UTC 6c6708af329843c8a05f8925a5e9b324e18d63bf
1 file changed +45 -42
docs/RELEASE_ISSUE_TEMPLATE.md
+45 -42
@@ -49,6 +49,7 @@ Checklist:
49 - [ ] Install ZSH ([instructions](https://github.com/ohmyzsh/ohmyzsh/wiki/Installing-ZSH#install-and-set-up-zsh-as-default)). It is needed by the changelog creation script.
50 - [ ] Ensure you have `kubo` checked out under `$(go env GOPATH)/src/github.com/ipfs/kubo`. This is required by the changelog creation script.
51 - If you want your clone to live in a different location, you can symlink it to the expected location by running `mkdir -p $(go env GOPATH)/src/github.com/ipfs && ln -s $(pwd) $(go env GOPATH)/src/github.com/ipfs/kubo`.
52 + - [ ] Ensure that [README.md](https://github.com/ipfs/go-ipfs/tree/master/README.md) is up to date.
53 - [ ] **Stage 1 - Initial Preparations**
54 - [ ] Upgrade to the latest patch release of Go that CircleCI has published (currently used version: `1.19.1`)
55 - [ ] See the list here: https://hub.docker.com/r/cimg/go/tags
@@ -65,10 +66,10 @@ Checklist:
66 - The first run of the script might be poluted with `git clone` output.
67 - [ ] Paste the output into the `### Changelog` section of the changelog file inside the `<details><summary></summary></details>` block.
68 - [ ] Commit the changelog changes.
68 - - [ ] 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)).
69 + - [ ] Push the `release-vX.Y.Z` branch to GitHub (`git push origin release-vX.Y.Z`) and create a draft PR targetting `release` branch if it doesn't exist yet ([example](https://github.com/ipfs/kubo/pull/9306)).
70 - [ ] Wait for CI to run and complete PR checks. All checks should pass.
70 - - [ ] 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)
71 - - [ ] 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).
71 + - [ ] Tag HEAD `release-vX.Y.Z` commit with `vX.Y.Z-rcN` (`git tag -s vX.Y.Z-rcN -m 'Pre-release X.Y.Z-rcn'`)
72 + - [ ] 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).- - _START: steps that are also relevant for the final release_
73 - [ ] Add artifacts to https://dist.ipfs.tech by making a PR against [ipfs/distributions](https://github.com/ipfs/distributions)
74 - [ ] Clone the `ipfs/distributions` repo locally.
75 - [ ] Create a new branch (`kubo-release-vX.Y.Z-rcn`) from `master`.
@@ -79,10 +80,12 @@ Checklist:
80 - [ ] Inspect results, merge if CI is green and the diff looks ok
81 - [ ] Wait for `master` branch to build. It will automatically update DNSLink at https://dist.ipfs.tech (~30min)
82 - [ ] Publish the RC to [the NPM package](https://www.npmjs.com/package/go-ipfs?activeTab=versions) by running https://github.com/ipfs/npm-go-ipfs/actions/workflows/main.yml (it happens automatically but it is safe to speed up the process and kick of a run manually)
83 + - _insert additional steps that are relevant only for the final release here_
84 - [ ] 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))
85 - Use `vX.Y.Z-rcN` as the tag.
86 - Link to the release issue in the description.
87 - Link to the relevant [changelog](https://github.com/ipfs/kubo/blob/master/docs/changelogs/) in the description.
88 + - For the final release, 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)
89 - Check `This is a pre-release`.
90 - [ ] Synchronize release artifacts by running [sync-release-assets](https://github.com/ipfs/kubo/actions/workflows/sync-release-assets.yml) workflow.
91 - [ ] Announce the RC
@@ -98,6 +101,7 @@ Checklist:
101 - [ ] FIL Slack #ipfs-chatter
102 - [ ] Matrix
103 - [ ] 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)).
104 + - _STOP: steps that are also relevant for the final release_
105 - [ ] **Stage 3 - Internal Testing**
106 - [ ] Library Testing.
107 - [ ] [interop](https://github.com/ipfs/interop)
@@ -127,7 +131,10 @@ Checklist:
131 - If there is an unexpected variation in the trend, message the #bifrost channel on FIL Slack and ask for help investigation the cause.
132 - [ ] IPFS Application Testing.
133 - [ ] [IPFS Desktop](https://github.com/ipfs-shipyard/ipfs-desktop)
130 - - [ ] 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
134 + - [ ] Upgrade to the RC in [ipfs-desktop](https://github.com/ipfs-shipyard/ipfs-desktop)
135 + - [ ] Run `npm install` to update `package-lock.json`.
136 + - [ ] Push to a branch ([example](https://github.com/ipfs/ipfs-desktop/pull/1826/commits/b0a23db31ce942b46d95965ee6fe770fb24d6bde))
137 + - [ ] Open a draft PR to track through the final release ([example](https://github.com/ipfs/ipfs-desktop/pull/1826))
138 - [ ] Ensure CI tests pass
139 - [ ] [IPFS Companion](https://github.com/ipfs-shipyard/ipfs-companion)
140 - Start kubo daemon of the version to release.
@@ -135,45 +142,41 @@ Checklist:
142 - Start a fresh firefox instance using `firefox --profile $(mktemp -d)` (macos `/Applications/Firefox.app/Contents/MacOS/firefox --profile $(mktemp -d)`)
143 - Install IPFS Companion from [vendor-specific store](https://github.com/ipfs/ipfs-companion/#readme).
144 - Check that the comunication between Kubo daemon and IPFS companion is working properly checking if the number of connected peers changes.
138 -- [ ] **Stage 4 - Community Prod Testing** - _ONLY FOR FINAL RELEASE_
139 - - [ ] Add a link from release notes to Discuss post (like we did here: https://github.com/ipfs/kubo/releases/tag/v0.15.0 )
140 - - [ ] 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 )
141 - - [ ] Ensure that [README.md](https://github.com/ipfs/go-ipfs/tree/master/README.md) is up to date
142 - - [ ] 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)
145 - [ ] **Stage 5 - Release** - _ONLY FOR FINAL RELEASE_
144 - - [ ] Final preparation
145 - - [ ] Verify that version string in [`version.go`](https://github.com/ipfs/go-ipfs/tree/master/version.go) has been updated.
146 - - [ ] Open a PR merging `release-vX.Y.Z` into the `release` branch.
147 - - This should be reviewed by the person who most recently released a version of `go-ipfs`.
148 - - Use a merge commit (no rebase, no squash)
149 - - [ ] Prepare the command to use for tagging the merge commit (on the `release` branch) with `vX.Y.Z`.
150 - - Use `git tag -s` to ensure the tag is signed
151 - - [ ] Have the tagging command reviewed by the person who most recently released a version of `go-ipfs`
152 - - This is a dangerous operation, as it is difficult to reverse due to Go modules and automated Docker image publishing
153 - - [ ] Push the tag
154 - - Use `git push origin <tag>`
155 - - DO NOT USE `git push --tags`, as it will push ALL of your local tags
156 - - This should initiate a Docker build in GitHub Actions that publishes a `vX.Y.Z` tagged Docker image to DockerHub
157 - - [ ] Release published
158 - - [ ] to [dist.ipfs.tech](https://dist.ipfs.tech)
159 - - [ ] to [npm-go-ipfs](https://www.npmjs.com/package/go-ipfs) (done by CI at [ipfs/npm-go-ipfs](https://github.com/ipfs/npm-go-ipfs), but ok to dispatch [this job](https://github.com/ipfs/npm-go-ipfs/actions/workflows/main.yml) manually)
160 - - [ ] to [chocolatey](https://chocolatey.org/packages/go-ipfs) (done by CI at [ipfs/choco-go-ipfs](https://github.com/ipfs/choco-go-ipfs/), but ok to dispatch [this job](https://github.com/ipfs/choco-go-ipfs/actions/workflows/main.yml) manually)
161 - - [ ] Manually run [the release workflow](https://github.com/ipfs/choco-go-ipfs/actions/workflows/main.yml)
162 - - [ ] Wait for Chocolatey to approve the release (usually takes a few hours)
163 - - [ ] to [snap](https://snapcraft.io/ipfs) (done CI at [snap/snapcraft.yaml](https://github.com/ipfs/kubo/blob/master/snap/snapcraft.yaml))
164 - - [ ] to [github](https://github.com/ipfs/go-ipfs/releases)
165 - - [ ] After publishing the GitHub release, run the workflow to attach the release assets: https://github.com/ipfs/go-ipfs/actions/workflows/sync-release-assets.yml
166 - - [ ] to [arch](https://www.archlinux.org/packages/community/x86_64/go-ipfs/) (flag it out of date)
167 - - [ ] Cut a new ipfs-desktop release
168 - - [ ] Get a blog post created
169 - - [Submit a request using this form](https://airtable.com/shrNH8YWole1xc70I).
170 - - Notify marketing in #shared-pl-marketing-requests about the blog entry request (since the form gets spam).
171 - - Don't mark this as done until the blog entry is live.
172 - - [ ] Broadcasting (link to blog post)
173 - - [ ] Twitter (request in Filecoin Slack channel #shared-pl-marketing-requests)
174 - - [ ] [Reddit](https://reddit.com/r/ipfs)
175 - - [ ] [discuss.ipfs.io](https://discuss.ipfs.io/c/announcements)
176 - - A bot auto-posts this to Discord and Matrix
146 + - [ ] Prepare the `release` branch.
147 + - [ ] Bump the version in `version.go` in the `release-vX.Y.Z` branch to `vX.Y.0`.
148 + - [ ] Push the `release-vX.Y.Z` branch to GitHub (`git push origin release-vX.Y.Z`)
149 + - [ ] Mark the PR created from `release-vX.Y.Z` as ready for review.
150 + - [ ] Ensure the PR is targetting `release` branch.
151 + - [ ] Ensure that CI is green.
152 + - [ ] Have release reviewer review the PR.
153 + - [ ] Merge the PR into `release` branch using the `Create a merge commit` (do **NOT** use `Squash and merge` nor `Rebase and merge` because we need to be able to sign the merge commit).
154 + - [ ] Checkout the `release` branch locally.
155 + - Remember to pull the latest changes.
156 + - [ ] Create a signed tag for the release.
157 + - [ ] Have release reviewer review the subsequent tagging commits you intend to run.
158 + - This is a dangerous operation, as it is difficult to reverse due to Go modules and automated Docker image publishing
159 + - [ ] Tag HEAD `release` commit with `vX.Y.0` (`git tag -s vX.Y.0 -m 'Release X.Y.0'`)
160 + - [ ] Push the `vX.Y.0` tag to GitHub (`git push origin vX.Y.0`; DO NOT USE `git push --tags` because it pushes all your local tags).
161 + - [ ] Wait for [Publish docker image](https://github.com/ipfs/kubo/actions/workflows/docker-image.yml) workflow run initiated by the tag push to finish.
162 + - [ ] Repeat _RC steps that are also relevant for the final release_ with these additional steps:
163 + - [ ] Publish the release to [chocolatey](https://chocolatey.org/packages/go-ipfs) by running https://github.com/ipfs/choco-go-ipfs/actions/workflows/main.yml (it happens automatically but it is safe to speed up the process and kick of a run manually)
164 + - [ ] Wait for Chocolatey to approve the release (usually takes a few hours)
165 + - [ ] Ensure the release is published to [snap](https://snapcraft.io/ipfs)
166 + - [ ] Ensure the release is published to [arch](https://www.archlinux.org/packages/community/x86_64/go-ipfs/) (flag it out of date)
167 + - [ ] Add a link from release notes to Discuss post (like we did here: https://github.com/ipfs/kubo/releases/tag/v0.15.0)
168 + - [ ] Update the draft PR created for [interop](https://github.com/ipfs/interop) to use the new release and mark it as ready for review.
169 + - [ ] Update the draft PR created for [IPFS Desktop](https://github.com/ipfs-shipyard/ipfs-desktop) to use the new release and mark it as ready for review.
170 + - [ ] Update docs by merging the auto-created PR in https://github.com/ipfs/ipfs-docs/pulls ([example](https://github.com/ipfs/ipfs-docs/pull/1263)) (they are created automatically every 12 hours)
171 + - [ ] Get the blog post created and shared
172 + - [ ] Submit a request for blog post creation using [the form](https://airtable.com/shrNH8YWole1xc70I).
173 + - Notify marketing in #shared-pl-marketing-requests about the blog entry request (since the form tends to go to spam).
174 + - Don't mark this as done until the blog entry is live.
175 + - [ ] Share the blog post
176 + - [ ] Twitter (request in Filecoin Slack channel #shared-pl-marketing-requests)
177 + - [ ] [Reddit](https://reddit.com/r/ipfs)
178 + - [ ] [discuss.ipfs.io](https://discuss.ipfs.io/c/announcements)
179 + - A bot auto-posts this to Discord and Matrix
180 - [ ] **Stage 6 - Post-Release**
181 - [ ] Merge the `release` branch back into `master`, ignoring the changes to `version.go` (keep the `-dev` version from master).
182 - [ ] Create an issue using this release issue template for the _next_ release.