kubo/docs/PATCH_RELEASE_TEMPLATE.md

31 lines
2.5 KiB
Markdown

# Patch Release Checklist
This process handles patch releases from version `vX.Y.Z` to `vX.Y.Z+1` assuming that `vX.Y.Z` is the latest released version of Kubo.
- [ ] Get temporary permissions to force-push to `release-*` branches
- [ ] Fork a new branch (`release-vX.Y.Z`) from `release` and cherry-pick the relevant commits from master (or custom fixes) onto this branch
- [ ] Use `git cherry-pick -x` so that the commit message says `(cherry picked from commit ...)`
- [ ] Make a minimal changelog update tracking the relevant fixes to CHANGELOG, as its own commit e.g. `docs: update changelog vX.Y.Z+1`
- [ ] version string in `version.go` has been updated (in the `release-vX.Y.Z+1` branch), as its own commit.
- [ ] Make a PR merging `release-vX.Y.Z+1` into the release branch
- This may be unnecessary, e.g. for backports
- [ ] Tag the merge commit in the `release` branch with `vX.Y.Z+1` (ensure the tag is signed)
- [ ] Add artifacts to https://dist.ipfs.tech/kubo
1. Make 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))
2. Wait for PR to build artifacts and generate diff
3. Inspect results, merge if CI is green and the diff looks ok
4. Wait for `master` branch to build and update DNSLink at https://dist.ipfs.tech
- [ ] Cut a release on [github](https://github.com/ipfs/kubo/releases) and reuse signed artifacts from https://dist.ipfs.tech/kubo (run [sync-release-assets.yml workflow](https://github.com/ipfs/kubo/actions/workflows/sync-release-assets.yml)).
- [ ] Announce the Release:
- [ ] On [discuss.ipfs.tech](https://discuss.ipfs.tech)
- This will automatically post to Matrix (`#lobby:ipfs.io`) and IPFS Discord (`#ipfs-chatter`)
- Examples from the past: [0.13.1](https://discuss.ipfs.tech/t/go-ipfs-v0-13-1-has-been-released/14599)
- [ ] Pin the discuss topic
- [ ] Release published
- [ ] to [dist.ipfs.tech](https://dist.ipfs.tech)
- [ ] to [npm-go-ipfs](https://www.npmjs.com/package/go-ipfs) (should be done by [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)
- [ ] to [github](https://github.com/ipfs/kubo/releases)
- [ ] to [arch](https://www.archlinux.org/packages/community/x86_64/go-ipfs/) (flag it out of date)
- [ ] Cut a new ipfs-desktop release
- [ ] Merge the `release` branch back into `master`, ignoring the changes to `version.go` (keep the `-dev` version from master).