docs: elaborate on some git cmds for releasing
Gus Eggert committed
Jun 8, 2022 at 18:04 UTC
81112c3d6e3416020f5aef79a32e7696b124df17
1 file changed
+16
-6
docs/RELEASE_ISSUE_TEMPLATE.md
+16
-6
@@ -23,6 +23,7 @@ As usual, this release includes important fixes, some of which may be critical f
23
For each RC published in each stage:
24
25
- version string in `version.go` has been updated (in the `release-vX.Y.Z` branch).
26
+- new commits should be added to the `release-vX.Y.Z` branch from `master` using `git cherry-pick -x ...`
27
- tag commit with `vX.Y.Z-rcN`
28
- upload to dist.ipfs.io
29
1. Build: https://github.com/ipfs/distributions#usage.
@@ -76,25 +77,34 @@ Checklist:
77
- [ ] **Stage 3 - Release**
78
- [ ] Final preparation
79
- [ ] Verify that version string in [`version.go`](https://github.com/ipfs/go-ipfs/tree/master/version.go) has been updated.
79
- - [ ] Merge `release-vX.Y.Z` into the `release` branch.
80
- - [ ] Tag this merge commit (on the `release` branch) with `vX.Y.Z`.
80
+ - [ ] Open a PR merging `release-vX.Y.Z` into the `release` branch.
81
+ - This should be reviewed by the person who most recently released a version of `go-ipfs`.
82
+ - Use a merge commit (no rebase, no squash)
83
+ - [ ] Prepare the command to use for tagging the merge commit (on the `release` branch) with `vX.Y.Z`.
84
+ - Use `git tag -s` to ensure the tag is signed
85
+ - [ ] Have the tagging command reviewed by the person who most recently released a version of `go-ipfs`
86
+ - This is a dangerous operation, as it is difficult to reverse due to Go modules and automated Docker image publishing
87
+ - [ ] Push the tag
88
+ - Use `git push origin <tag>`
89
+ - DO NOT USE `git push --tags`, as it will push ALL of your local tags
90
+ - This should initiate a Docker build in GitHub Actions that publishes a `vX.Y.Z` tagged Docker image to DockerHub
91
- [ ] Release published
92
- [ ] to [dist.ipfs.io](https://dist.ipfs.io)
93
- [ ] to [npm-go-ipfs](https://github.com/ipfs/npm-go-ipfs)
94
- [ ] to [chocolatey](https://chocolatey.org/packages/go-ipfs)
95
- [ ] Manually run [the release workflow](https://github.com/ipfs/choco-go-ipfs/actions/workflows/main.yml)
96
+ - [ ] Wait for Chocolatey to approve the release (usually takes a few hours)
97
- [ ] to [snap](https://snapcraft.io/ipfs)
98
- [ ] to [github](https://github.com/ipfs/go-ipfs/releases)
88
- - [ ] use the artifacts built in CI for dist.ipfs.io: `wget "https://ipfs.io/api/v0/get?arg=/ipns/dist.ipfs.io/go-ipfs/$(curl -s https://dist.ipfs.io/go-ipfs/versions | tail -n 1)"`
99
+ - [ ] 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
100
- [ ] to [arch](https://www.archlinux.org/packages/community/x86_64/go-ipfs/) (flag it out of date)
101
- [ ] Cut a new ipfs-desktop release
102
- [ ] Submit [this form](https://airtable.com/shrNH8YWole1xc70I) to publish a blog post, linking to the GitHub release notes
92
- - [ ] Broadcasting (link to blog post)
103
+ - [ ] Broadcasting
104
- [ ] Twitter (request in Slack channel #pl-marketing-requests)
94
- - [ ] Matrix
105
- [ ] [Reddit](https://reddit.com/r/ipfs)
106
- [ ] [discuss.ipfs.io](https://discuss.ipfs.io/c/announcements)
97
- - [ ] Announce it on the [IPFS Users Mailing List](https://groups.google.com/forum/#!forum/ipfs-users)
107
+ - A bot auto-posts this to Discord and Matrix
108
- [ ] **Post-Release**
109
- [ ] Merge the `release` branch back into `master`, ignoring the changes to `version.go` (keep the `-dev` version from master).
110
- [ ] Create an issue using this release issue template for the _next_ release.