-
-
Notifications
You must be signed in to change notification settings - Fork 3k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Moar release docs #9153
Moar release docs #9153
Changes from 2 commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,33 @@ | ||
# Expected git graph | ||
|
||
![Release git graph](https://ipfs.io/ipfs/bafkreidcmmgmfjoasjimw66mgbl7vnyvjf4ag4y67urj7ejnkkhm7nxx5m) | ||
|
||
## Continued branches | ||
|
||
- *master* this is development branch | ||
- *release* this branch list all the release commits | ||
It's important that `git show release~$X` shows version releases first. | ||
|
||
## Creating this graph: | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. What's the relationship of this document to docs/RELEASE_ISSUE_TEMPLATE.md ? I don't see any crosslinking. Why isn't this info inlined into the release issue template? I think it would be helpful to state what the purpose of this document is with a "Purpose" section. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. I haven't compared in detail but at least some of the steps here are also in #9024 |
||
|
||
1. Making the RC. From the ref you want to make release do: | ||
1. `git checkout -b release-vX.Y.Z` (create the branch this release is gonna be worked on) | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Look at the doc in rendered form. It isn't indented. I assume you need to add an extra space. |
||
1. Make changelogs if you havn't done so yet. | ||
Changelogs are free flowing and can be done earlier on master if you want. | ||
It is smart to add changelogs when you create a new big feature while or just after merging this feature instead of 2 weeks later when doing the release. | ||
1. Update the `version.go` file (must be it's own commit with nothing else). | ||
1. `git tag -s vX.Y.Z-rcAAA` create signed tags | ||
1. `git push origin vX.Y.Z-rcAAA` push the tag (never use `git push --tags`) | ||
1. Making the final release (/ an other RC) | ||
1. Doing Back-Ports. | ||
- If you want to pull anything from `$(git merge-base release-vX.Y.Z $REF)..$REF` do a merge commit from `$REF` into `release-vX.Y.Z`. | ||
It's important to use merge for the merge algorithm to not see this as conflicts later. | ||
If you don't understand that sentence just skip this step and go to the next one. | ||
- For other commits do `git cherry-pick -x $COMMIT`. | ||
Using `-x` will add `(cherry picked from commit ...)`, this make the merge algorithm to not see this as conflicts later. | ||
1. Finalize changelogs. | ||
1. Update the `version.go` file (must be it's own commit with nothing else). | ||
1. Merge `release-vX.Y.Z` into `release` branch (USE A MERGE COMMIT). | ||
1. `git tag -s vX.Y.Z` create a signed tag on that merge commit | ||
1. On a new temporary branch update `version.go` for the next release `-dev`. | ||
1. Using a merge commit (to avoid conflicts one last time) merge back that temporary thing into `master`. |
Original file line number | Diff line number | Diff line change | ||||
---|---|---|---|---|---|---|
|
@@ -45,12 +45,12 @@ For each RC published in each stage: | |||||
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.io | ||||||
- Announce the RC: | ||||||
- [ ] | ||||||
- [ ] Announce the RC | ||||||
- 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) | ||||||
- [ ] Pin the topic | ||||||
- [ ] 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 so they get a GitHub notification. ([example](https://github.com/ipfs/go-ipfs/issues/8176#issuecomment-909356394)) | ||||||
- [ ] Notify the gateway team on Slack. | ||||||
|
||||||
Checklist: | ||||||
|
||||||
|
@@ -96,15 +96,22 @@ Checklist: | |||||
- [ ] Verify that version string in [`version.go`](https://github.com/ipfs/go-ipfs/tree/master/version.go) has been updated. | ||||||
- [ ] Merge `release-vX.Y.Z` into the `release` branch. | ||||||
- [ ] Tag this merge commit (on the `release` branch) with `vX.Y.Z`. | ||||||
- [ ] Release published | ||||||
- [ ] to [dist.ipfs.io](https://dist.ipfs.io) | ||||||
- [ ] Publish to `dist.ipfs.io` (mostly automated stuff, you just have to push two slocs changes for dist's CI to do magic) | ||||||
- [ ] Open a PR with `./dist.sh add-version kubo vX.Y.Z` update on [ipfs/distributions](https://github.com/ipfs/distributions). | ||||||
- [ ] Merge that PR (ONCE CI IS GREEN). | ||||||
- [ ] Wait for CI to be green on master. | ||||||
- [ ] **Important release to do** | ||||||
- [ ] to [dist.ipfs.io](https://dist.ipfs.io) *cross check CI* | ||||||
- [ ] to [github](https://github.com/ipfs/go-ipfs/releases) ***manual action to do*** | ||||||
- [ ] Publish a new github release, target the tag made previously. Include changelog highlights, just lookup previous major releases for inspiration. | ||||||
- [ ] Run the [synchronisation workflow](https://github.com/ipfs/kubo/actions/workflows/sync-release-assets.yml) (it also runs once a day on a cron job) | ||||||
- [ ] Send a message to notify the gateway team. | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
- [ ] Send a message to notify the GUI team (need to do a new IPFS-desktop release). | ||||||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more.
Suggested change
|
||||||
- [ ] Less important releases *check async* | ||||||
- [ ] to [npm](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) | ||||||
- [ ] 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) | ||||||
- [ ] to [snap](https://snapcraft.io/ipfs) (done CI at [snap/snapcraft.yaml](https://github.com/ipfs/kubo/blob/master/snap/snapcraft.yaml)) | ||||||
- [ ] to [github](https://github.com/ipfs/go-ipfs/releases) | ||||||
- [ ] use the artifacts built in CI for dist.ipfs.io: `wget "https://ipfs.io/api/v0/get?arg=/ipns/dist.ipfs.io/kubo/$(curl -s https://dist.ipfs.io/kubo/versions | tail -n 1)"` | ||||||
- [ ] to [arch](https://www.archlinux.org/packages/community/x86_64/go-ipfs/) (flag it out of date) | ||||||
- [ ] Cut a new ipfs-desktop release | ||||||
- [ ] Submit [this form](https://airtable.com/shrNH8YWole1xc70I) to publish a blog post, linking to the GitHub release notes | ||||||
- [ ] Broadcasting (link to blog post) | ||||||
- [ ] Twitter (request in Slack channel #pl-marketing-requests) | ||||||
|
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A few concerns about this:
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I stared at it for a bit and it made sense as I worked through it, seems okay as supplemental material.
Also agree re: diagram source. We need to maintain these over time, they should be easy to change/update. GitHub supports rendering Mermaid diagrams natively now, would be nice to use that for diagramming: https://docs.github.com/en/get-started/writing-on-github/working-with-advanced-formatting/creating-diagrams . There's even git graph support https://mermaid-js.github.io/mermaid/#/gitgraph