Skip to content

Commit

Permalink
docs: update RELEASE_CHECKLIST.md (#10496)
Browse files Browse the repository at this point in the history
  • Loading branch information
lidel authored Sep 11, 2024
1 parent 3799c32 commit 4842d6e
Show file tree
Hide file tree
Showing 4 changed files with 40 additions and 43 deletions.
2 changes: 1 addition & 1 deletion docs/EARLY_TESTERS.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ We will ask early testers to participate at two points in the process:
- [ ] Infura (@MichaelMure)
- [ ] OrbitDB (@haydenyoung)
- [ ] Pinata (@obo20)
- [ ] PL EngRes bifrost (@cewood ns4plabs)
- [ ] Shipyard (@cewood, @ns4plabs)
- [ ] Siderus (@koalalorenzo)
- [ ] Textile (@sanderpick)
- [ ] @RubenKelevra
Expand Down
76 changes: 37 additions & 39 deletions docs/RELEASE_CHECKLIST.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- Last updated during [v0.26.0 release](https://github.com/ipfs/kubo/issues/10259) -->
<!-- Last updated during [v0.30.0 release](https://github.com/ipfs/kubo/pull/10496) -->

# ✅ Release Checklist (vX.Y.Z[-rcN])

Expand Down Expand Up @@ -62,7 +62,7 @@ This section covers tasks to be done during each release.
- [example](https://github.com/ipfs/kubo/pull/9306)
- [ ] Cherry-pick commits from `master` to the `release-vX.Y.Z` using `git cherry-pick -x <commit>`
- [ ] ![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) Add full changelog and contributors to the [changelog](docs/changelogs/vX.Y.md)
- [ ] ![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) Replace the `Changelog` and `Contributors` sections of the [changelog](docs/changelogs/vX.Y.md) with the stdout of `./bin/mkreleaselog`
- [ ] ![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) Replace the `Changelog` and `Contributors` sections of the [changelog](docs/changelogs/vX.Y.md) with the stdout of `./bin/mkreleaselog`. Note that the command expects your `$GOPATH/src/github.com/ipfs/kubo` to include latest commits from `release-vX.Y`
- do **NOT** copy the stderr
- [ ] verify all CI checks on the PR from `release-vX.Y` to `release` are passing
- [ ] ![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) Merge the PR from `release-vX.Y` to `release` using the `Create a merge commit`
Expand All @@ -77,40 +77,42 @@ This section covers tasks to be done during each release.
- [ ] ⚠️ push the tag to GitHub using `git push origin vX.Y.Z(-RCN)`
- do **NOT** use `git push --tags` because it pushes all your local tags
</details>
- [ ] Publish the release to [DockerHub](https://hub.docker.com/r/ipfs/kubo/) <details><summary>using `./kuboreleaser --skip-check-before --skip-run release --version vX.Y.Z(-rcN) publish-to-dockerhub` or ...</summary>
- [ ] Wait for [Publish docker image](https://github.com/ipfs/kubo/actions/workflows/docker-image.yml) workflow run initiated by the tag push to finish
- [ ] verify the image is available on [Docker Hub](https://hub.docker.com/r/ipfs/kubo/tags)
- [ ] Verify [ipfs/distributions](https://github.com/ipfs/distributions)'s `.tool-versions`'s `golang` entry is set to the [latest go release](https://go.dev/doc/devel/release) on the major go branch [Kubo is being tested on](https://github.com/ipfs/kubo/blob/master/.github/workflows/gotest.yml) (see `go-version:`).
- [ ] Publish the release to [dist.ipfs.tech](https://dist.ipfs.tech) <details><summary>using `./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-distributions` or ...</summary>
- [ ] check out [ipfs/distributions](https://github.com/ipfs/distributions)
- [ ] run `./dist.sh add-version kubo vX.Y.Z(-RCN)` to add the new version to the `versions` file
- [usage](https://github.com/ipfs/distributions#usage)
- [ ] create and merge the PR which updates `dists/kubo/versions` and `dists/go-ipfs/versions` (![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) and `dists/kubo/current_version` and `dists/go-ipfs/current_version`)
- [example](https://github.com/ipfs/distributions/pull/760)
- [ ] wait for the [CI](https://github.com/ipfs/distributions/actions/workflows/main.yml) workflow run initiated by the merge to master to finish
- [ ] verify the release is available on [dist.ipfs.tech](https://dist.ipfs.tech/#kubo)
</details>
- [ ] Publish the release to [NPM](https://www.npmjs.com/package/go-ipfs?activeTab=versions) <details><summary>using `./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-npm` (⚠️ you might need to run the command a couple of times because GHA might not be able to see the new distribution straight away due to caching) or ...</summary>
- [ ] run the [Release to npm](https://github.com/ipfs/npm-go-ipfs/actions/workflows/main.yml) workflow
- [ ] check [Release to npm](https://github.com/ipfs/npm-go-ipfs/actions/workflows/main.yml) workflow run logs to verify it discovered the new release
- [ ] verify the release is available on [NPM](https://www.npmjs.com/package/go-ipfs?activeTab=versions)
</details>
- [ ] Publish the release to [GitHub](https://github.com/ipfs/kubo/releases) <details><summary>using `./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-github` or ...</summary>
- [ ] create a new release on [GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release)
- [RC example](https://github.com/ipfs/kubo/releases/tag/v0.17.0-rc1)
- [FINAL example](https://github.com/ipfs/kubo/releases/tag/v0.17.0)
- [ ] use the `vX.Y.Z(-RCN)` tag
- [ ] link to the release issue
- [ ] ![](https://img.shields.io/badge/only-RC-blue?style=flat-square) link to the changelog in the description
- [ ] ![](https://img.shields.io/badge/only-RC-blue?style=flat-square) check the `This is a pre-release` checkbox
- [ ] ![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) copy the changelog (without the header) in the description
- [ ] ![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) do **NOT** check the `This is a pre-release` checkbox
- [ ] run the [sync-release-assets](https://github.com/ipfs/kubo/actions/workflows/sync-release-assets.yml) workflow
- [ ] wait for the [sync-release-assets](https://github.com/ipfs/kubo/actions/workflows/sync-release-assets.yml) workflow run to finish
- [ ] verify the release assets are present in the [GitHub release](https://github.com/ipfs/kubo/releases/tag/vX.Y.Z(-RCN))
</details>
- [ ] Run Thunderdome testing, see the [Thunderdome release docs](./releases_thunderdome.md) for details
- [ ] create a PR and merge the experiment config into Thunderdome
- [ ] Publish to Dockerhub, NPM, and dist.ipfs.tech and GitHub using `./kuboreleaser --skip-check-before --skip-run release --version vX.Y.Z(-rcN) publish-to-all` or follow each step below:
- [ ] Publish the release to [DockerHub](https://hub.docker.com/r/ipfs/kubo/) <details><summary>using `./kuboreleaser --skip-check-before --skip-run release --version vX.Y.Z(-rcN) publish-to-dockerhub` or ...</summary>
- [ ] Wait for [Publish docker image](https://github.com/ipfs/kubo/actions/workflows/docker-image.yml) workflow run initiated by the tag push to finish
- [ ] verify the image is available on [Docker Hub](https://hub.docker.com/r/ipfs/kubo/tags)
- [ ] Publish the release to [dist.ipfs.tech](https://dist.ipfs.tech) <details><summary>using `./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-distributions` or ...</summary>
- [ ] check out [ipfs/distributions](https://github.com/ipfs/distributions)
- [ ] run `./dist.sh add-version kubo vX.Y.Z(-RCN)` to add the new version to the `versions` file
- [usage](https://github.com/ipfs/distributions#usage)
- [ ] create and merge the PR which updates `dists/kubo/versions` and `dists/go-ipfs/versions` (![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) and `dists/kubo/current_version` and `dists/go-ipfs/current_version`)
- [example](https://github.com/ipfs/distributions/pull/760)
- [ ] wait for the [CI](https://github.com/ipfs/distributions/actions/workflows/main.yml) workflow run initiated by the merge to master to finish
- [ ] verify the release is available on [dist.ipfs.tech](https://dist.ipfs.tech/#kubo)
</details>
- [ ] Publish the release to [NPM](https://www.npmjs.com/package/go-ipfs?activeTab=versions) <details><summary>using `./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-npm` (⚠️ you might need to run the command a couple of times because GHA might not be able to see the new distribution straight away due to caching) or ...</summary>
- [ ] run the [Release to npm](https://github.com/ipfs/npm-go-ipfs/actions/workflows/main.yml) workflow
- [ ] check [Release to npm](https://github.com/ipfs/npm-go-ipfs/actions/workflows/main.yml) workflow run logs to verify it discovered the new release
- [ ] verify the release is available on [NPM](https://www.npmjs.com/package/go-ipfs?activeTab=versions)
</details>
- [ ] Publish the release to [GitHub](https://github.com/ipfs/kubo/releases) <details><summary>using `./kuboreleaser release --version vX.Y.Z(-rcN) publish-to-github` or ...</summary>
- [ ] create a new release on [GitHub](https://docs.github.com/en/repositories/releasing-projects-on-github/managing-releases-in-a-repository#creating-a-release)
- [RC example](https://github.com/ipfs/kubo/releases/tag/v0.17.0-rc1)
- [FINAL example](https://github.com/ipfs/kubo/releases/tag/v0.17.0)
- [ ] use the `vX.Y.Z(-RCN)` tag
- [ ] link to the release issue
- [ ] ![](https://img.shields.io/badge/only-RC-blue?style=flat-square) link to the changelog in the description
- [ ] ![](https://img.shields.io/badge/only-RC-blue?style=flat-square) check the `This is a pre-release` checkbox
- [ ] ![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) copy the changelog (without the header) in the description
- [ ] ![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) do **NOT** check the `This is a pre-release` checkbox
- [ ] run the [sync-release-assets](https://github.com/ipfs/kubo/actions/workflows/sync-release-assets.yml) workflow
- [ ] wait for the [sync-release-assets](https://github.com/ipfs/kubo/actions/workflows/sync-release-assets.yml) workflow run to finish
- [ ] verify the release assets are present in the [GitHub release](https://github.com/ipfs/kubo/releases/tag/vX.Y.Z(-RCN))
</details>
- [ ] Update Kubo staging environment, see the [Running Kubo tests on staging](https://www.notion.so/Running-Kubo-tests-on-staging-488578bb46154f9bad982e4205621af8) for details.
- [ ] ![](https://img.shields.io/badge/only-RC-blue?style=flat-square) Test last release against the current RC
- [ ] ![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) Test last release against the current one
- [ ] Promote the release <details><summary>using `./kuboreleaser release --version vX.Y.Z(-rcN) promote` or ...</summary>
- [ ] create an [IPFS Discourse](https://discuss.ipfs.tech) topic
- [prerelease example](https://discuss.ipfs.tech/t/kubo-v0-16-0-rc1-release-candidate-is-out/15248)
Expand Down Expand Up @@ -151,10 +153,6 @@ This section covers tasks to be done during each release.
- [ ] ![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) run the [update-on-new-ipfs-tag.yml](https://github.com/ipfs/ipfs-docs/actions/workflows/update-on-new-ipfs-tag.yml) workflow
- [ ] ![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) 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
</details>
- [ ] ![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) Ask Brave to update Kubo in Brave Desktop
- [ ] ![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) use [this link](https://github.com/brave/brave-browser/issues/new?assignees=&labels=OS%2FDesktop&projects=&template=desktop.md&title=) to create an issue for the new Kubo version
- [basic example](https://github.com/brave/brave-browser/issues/31453), [example with additional notes](https://github.com/brave/brave-browser/issues/27965)
- [ ] ![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) post link to the issue in `#shared-pl-brave` for visibility
- [ ] ![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) Create a blog entry on [blog.ipfs.tech](https://blog.ipfs.tech) <details><summary>using `./kuboreleaser release --version vX.Y.Z(-rcN) update-ipfs-blog --date YYYY-MM-DD` or ...</summary>
- [ ] ![](https://img.shields.io/badge/only-FINAL-green?style=flat-square) create a PR which adds a release note for the new Kubo version
- [example](https://github.com/ipfs/ipfs-blog/pull/529)
Expand Down
3 changes: 1 addition & 2 deletions docs/RELEASE_ISSUE_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
<!-- Last updated during [v0.27.0 release](https://github.com/ipfs/kubo/issues/10306) -->
<!-- Last updated during [v0.30.0 release](https://github.com/ipfs/kubo/pull/10496) -->

# Items to do upon creating the release issue

Expand All @@ -22,7 +22,6 @@
* Expected RC date: week of YYYY-MM-DD
* 🚢 Expected final release date: YYYY-MM-DD
* Release PR: <add link once release PR is created>
* Thunderdome PR: <add link once thunderdome PR is created>
* Accompanying PR for improving the release process: ([example](https://github.com/ipfs/kubo/pull/9391))
* Changelog: https://github.com/ipfs/kubo/blob/master/docs/changelogs/vX.Y.md

Expand Down
2 changes: 1 addition & 1 deletion docs/releases_thunderdome.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ This will build the Docker images, upload them to ECR, and then launch the exper

## Analyze Results

Add a log entry in https://www.notion.so/pl-strflt/ce2d1bd56f3541028d960d3711465659 and link to it from the release issue, so that experiment results are publicly visible.
Add a log entry in https://www.notion.so/ceb2047e79f2498494077a2739a6c493 and link to it from the release issue, so that experiment results are publicly visible.

The `deploy` command will output a link to the Grafana dashboard for the experiment. We don't currently have rigorous acceptance criteria, so you should look for anomalies or changes in the metrics and make sure they are tolerable and explainable. Unexplainable anomalies should be noted in the log with a screenshot, and then root caused.

Expand Down

0 comments on commit 4842d6e

Please sign in to comment.