-
-
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 all 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 | ||||
---|---|---|---|---|---|---|
|
@@ -40,7 +40,7 @@ For each RC published in each stage: | |||||
|
||||||
- version string in `version.go` has been updated (in the `release-vX.Y.Z` branch). | ||||||
- tag commit with `vX.Y.Z-rcN` | ||||||
- add artifacts to https://dist.ipfs.tech | ||||||
- 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 | ||||||
|
@@ -49,9 +49,10 @@ For each RC published in each stage: | |||||
- 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) | ||||||
- Examples from the past: [0.14.0](https://discuss.ipfs.tech/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: | ||||||
|
||||||
|
@@ -90,30 +91,34 @@ Checklist: | |||||
- [ ] Ensure that [README.md](https://github.com/ipfs/go-ipfs/tree/master/README.md) is up to date | ||||||
- [ ] Update docs by merging the auto-created PR in https://github.com/ipfs/ipfs-docs/pulls (they are auto-created every 12 hours) | ||||||
- [ ] Invite the wider community through (link to the release issue): | ||||||
- [ ] [discuss.ipfs.io](https://discuss.ipfs.io/c/announcements) | ||||||
- [ ] [discuss.ipfs.tech](https://discuss.ipfs.tech/c/announcements) | ||||||
- [ ] Matrix | ||||||
- [ ] **Stage 3 - Release** | ||||||
- [ ] Final preparation | ||||||
- [ ] 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.tech](https://dist.ipfs.tech) | ||||||
- [ ] Publish to `dist.ipfs.tech` (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.tech](https://dist.ipfs.tech) *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-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) | ||||||
- [ ] 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) | ||||||
- [ ] 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)) | ||||||
- [ ] to [arch](https://www.archlinux.org/packages/community/x86_64/go-ipfs/) (flag it out of date) | ||||||
- [ ] Cut a new ipfs-desktop release | ||||||
- [ ] Get a blog post created | ||||||
- [Submit a request using this form](https://airtable.com/shrNH8YWole1xc70I). | ||||||
- Notify marketing in #shared-pl-marketing-requests about the blog entry request (since the form gets spam). | ||||||
- Don't makre this as done until the blog entry is live. | ||||||
- [ ] 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 Filecoin Slack channel #shared-pl-marketing-requests) | ||||||
- [ ] [Reddit](https://reddit.com/r/ipfs) | ||||||
- [ ] [discuss.ipfs.io](https://discuss.ipfs.io/c/announcements) | ||||||
- [ ] [discuss.ipfs.tech](https://discuss.ipfs.tech/c/announcements) | ||||||
- [ ] **Post-Release** | ||||||
- [ ] Merge the `release` branch back into `master`, ignoring the changes to `version.go` (keep the `-dev` version from master). | ||||||
- [ ] Create an issue using this release issue template for the _next_ release. | ||||||
|
@@ -123,7 +128,7 @@ Checklist: | |||||
|
||||||
## ⁉️ Do you have questions? | ||||||
|
||||||
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.io](http://discuss.ipfs.io). We are also available at the `#ipfs` channel on Freenode, which is also [accessible through our Matrix bridge](https://riot.im/app/#/room/#freenode_#ipfs:matrix.org). | ||||||
The best place to ask your questions about IPFS, how it works and what you can do with it is at [discuss.ipfs.tech](http://discuss.ipfs.tech). We are also available at the `#ipfs` channel on Freenode, which is also [accessible through our Matrix bridge](https://riot.im/app/#/room/#freenode_#ipfs:matrix.org). | ||||||
|
||||||
## Release improvements for next time | ||||||
|
||||||
|
@@ -146,5 +151,5 @@ Would you like to contribute to the IPFS project and don't know how? Well, there | |||||
- Check the issues with the `help wanted` label in the [ipfs/kubo repo](https://github.com/ipfs/kubo/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22) | ||||||
- Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute - https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands | ||||||
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built | ||||||
- Join the discussion at [discuss.ipfs.io](https://discuss.ipfs.io/) and help users finding their answers. | ||||||
- Join the discussion at [discuss.ipfs.tech](https://discuss.ipfs.tech/) and help users finding their answers. | ||||||
- Join the [🚀 IPFS Core Implementations Weekly Sync 🛰](https://github.com/ipfs/team-mgmt/issues/992) and be part of the action! |
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