From 49b57971b35d5a161eacc8988a3c6016b52fb5af Mon Sep 17 00:00:00 2001 From: Steve Loeppky Date: Tue, 3 Sep 2024 10:46:58 -0700 Subject: [PATCH] docs(release): v1.28.2 and v1.29.0 release template improvements (#12378) * docs(release): v1.29.0 release template improvements * Made the issue creation steps into more of a checklist. * Differentiating patch vs. minor release steps * Discuss opening this PR with whitespace early * More places to be clear about node or miner * chore: fix typos chore: fix typos * docs: learnings from prepping v1.29.0-rc1 docs: learnings from prepping v1.29.0-rc1 * fix: update with learnings from cutting v1.29.0 release fix: update with learnings from cutting v1.29.0 release --------- Co-authored-by: Phi --- documentation/misc/RELEASE_ISSUE_TEMPLATE.md | 57 +++++++++++--------- 1 file changed, 32 insertions(+), 25 deletions(-) diff --git a/documentation/misc/RELEASE_ISSUE_TEMPLATE.md b/documentation/misc/RELEASE_ISSUE_TEMPLATE.md index b40888b57d7..40f76c4a19d 100644 --- a/documentation/misc/RELEASE_ISSUE_TEMPLATE.md +++ b/documentation/misc/RELEASE_ISSUE_TEMPLATE.md @@ -3,20 +3,23 @@ # Lotus Node|Miner X.Y.Z Release [//]: # (Below are non-visible steps intended for the issue creator) -[//]: # (Start an issue with title "[WIP] Lotus Node|Miner vX.Y.Z Release" and adjust the title for whether it's a Node or Miner release.) -[//]: # (Copy in the content of https://github.com/filecoin-project/lotus/blob/master/documentation/misc/RELEASE_ISSUE_TEMPLATE.md) -[//]: # (Find/Replace "X.Y.Z+1" with the actual values. This is intentinoally done before tbe find/replace X.Y.Z step because that will also match.) -[//]: # (Find/Replace "X.Y.Z" with the actual values.) -[//]: # (If this isn't a release tied to a network upgrade, remove all items with "\(network upgrade\)") -[//]: # (Copy/paste the "Release Checklist > RCX" section to "Release Checklist > Stable \(non-RC\) Release" and apply the "diff" called out there.) -[//]: # (Find/Replace case sensitive "RCX" with "RC1".) -[//]: # (Adjust the "Meta" section values.) -[//]: # (Apply the `tpm` label to the issue) -[//]: # (Create the issue) -[//]: # (Pin the issue on GitHub) +[//]: # (❗️ Complete the steps below as part of creating a release issue and mark them complete with an X or βœ… when done.) +[//]: # ([ ] Start an issue with title "[WIP] Lotus Node|Miner vX.Y.Z Release" and adjust the title for whether it's a Node or Miner release.) +[//]: # ([ ] Copy in the content of https://github.com/filecoin-project/lotus/blob/master/documentation/misc/RELEASE_ISSUE_TEMPLATE.md) +[//]: # ([ ] Find/Replace "X.Y.Z+1" with the actual values. This is intentionally done before the find/replace X.Y.Z step because that will also match.) +[//]: # ([ ] Find/Replace "X.Y.Z" with the actual values.) +[//]: # ([ ] If this isn't a release tied to a network upgrade, remove all items with "\(network upgrade\)") +[//]: # ([ ] If this is a patch release, remove all items with "\(minor release\)") +[//]: # ([ ] If this is a minor release, remove all items with "\(patch release\)") +[//]: # ([ ] Copy/paste the "Release Checklist > RCX" section to "Release Checklist > Stable \(non-RC\) Release" and apply the "diff" called out there.) +[//]: # ([ ] Find/Replace "RCX" with "RC1".) +[//]: # ([ ] Adjust the "Meta" section values.) +[//]: # ([ ] Apply the `tpm` label to the issue) +[//]: # ([ ] Create the issue) +[//]: # ([ ] Pin the issue on GitHub) ## πŸ˜Άβ€πŸŒ« Meta -* Scope: Node|Miner +* Scope: Node|Miner MINOR|PATCH * Is this linked with a network upgrade, and thus mandatory? Yes|No * Related network upgrade version: nvXX|n/a @@ -48,15 +51,18 @@ ### Before RC1 - [ ] (network upgrade) Make sure all [Lotus dependencies are updated to the correct versions for the network upgrade](https://github.com/filecoin-project/lotus/blob/master/documentation/misc/Update_Dependencies_Lotus.md) - Link to Lotus PR: -- [ ] Open PR against [RELEASE_ISSUE_TEMPLATE.md](https://github.com/filecoin-project/lotus/blob/master/documentation/misc/RELEASE_ISSUE_TEMPLATE.md) with title `docs(vX.Y.Z): release template improvements` for improving future releases. - - Link to PR: - - This will get merged in a `Post Release` step, but improvements are better done by collecting notes along the way rather than just thinking about it at the end. -- [ ] Fork a new branch (`release/vX.Y.Z` or `release/miner/vX.Y.Z`) from `master` and make any further release-related changes to this branch. -- `master` branch Version string updates - - [ ] bump the version(s) in `build/version.go` to `vX.Y.Z+1-dev`. +- [ ] Open PR against [RELEASE_ISSUE_TEMPLATE.md](https://github.com/filecoin-project/lotus/blob/master/documentation/misc/RELEASE_ISSUE_TEMPLATE.md) with title `docs(release): vX.Y.Z release template improvements` for improving future releases. + - Link to PR: + - There likely aren't any changes at this point, but this can be opened with a small whitespace change so the PR is open and we can more easily hold the standard of making improvements incrementally since improvements are usually better done by collecting changes/notes along the way rather than just thinking about it at the end. + - This will get merged in a `Post Release` step. +- [ ] (patch release) Fork a new branch (`release/vX.Y.Z` or `release/miner/vX.Y.Z`) from the last stable `release/vX.Y.Z` or `release/miner/vX.Y.Z` and make any further release-related changes to this branch. +- [ ] (minor release) Fork a new branch (`release/vX.Y.Z` or `release/miner/vX.Y.Z`) from `master` and make any further release-related changes to this branch. +- (minor release) `master` branch Version string updates + - [ ] bump the version(s) in `build/version.go` to `vX.Y.(Z+1)-dev`. - Ensure to update the appropriate version string based on whether you are creating a node release (`NodeBuildVersion`), a miner release (`MinerBuildVersion`), or both. - [ ] Run `make gen && make docsgen-cli` before committing changes. - - [ ] Create a PR with title `build(vX.Y.Z+1): set initial version string` + - [ ] Remove the contents in the `Unreleased Changelog` section. + - [ ] Create a PR with title `build: update Lotus Node|Miner version to vX.Y.Z+1-dev in master` - Link to PR: - [ ] Merge PR @@ -76,7 +82,7 @@ - [ ] All explicitly tracked items from `Dependencies for releases` have landed - [ ] Backported [everything with the "backport" label](https://github.com/filecoin-project/lotus/issues?q=label%3Arelease%2Fbackport+) - [ ] Removed the "backport" label from all backported PRs (no ["backport" issues](https://github.com/filecoin-project/lotus/issues?q=label%3Arelease%2Fbackport+)) -- [ ] Create a PR with title `build(vX.Y.Z): backport changes for vX.Y.Z-rcX` +- [ ] Create a PR with title `build: backport changes for node|miner vX.Y.Z-rcX` - Link to PR: - [ ] Merge PR @@ -85,17 +91,18 @@ - [ ] Update the version string(s) in `build/version.go` to one ending with '-rcX'. - Ensure to update the appropriate version string based on whether you are creating a node release (`NodeBuildVersion`), a miner release (`MinerBuildVersion`), or both. - [ ] Run `make gen && make docsgen-cli` to generate documentation +- [ ] Create a PR with title `build: release Lotus node|miner vX.Y.Z-rcX` + - Link to PR: + - Opening a PR will trigger a CI run that will build assets, create a draft GitHub release, and attach the assets. - [ ] Changelog prep + - [ ] Go to the [releases page](https://github.com/filecoin-project/lotus/releases) and copy the auto generated changelog into your release PR and adjust the changelog accordingly. - [ ] Editorial review (e.g., callout breaking changes, new features, FIPs, actor bundles) - [ ] (network upgrade) Specify whether the Calibration or Mainnet upgrade epoch has been specified or not yet. - Example where these weren't specified yet: [PR #12169](https://github.com/filecoin-project/lotus/pull/12169) - [ ] Ensure no missing content when spot checking git history - Example command looking at git commits: `git log --oneline --graph vA.B.C..`, where A.B.C correspond to the previous release. - Example GitHub UI search looking at merged PRs into master: https://github.com/filecoin-project/lotus/pulls?q=is%3Apr+base%3Amaster+merged%3A%3EYYYY-MM-DD - - Example `gh` cli command looking at merged PRs into master and sorted by title to group similar areas: `gh pr list --repo filecoin-project/lotus --search "base:master merged:>YYYY-MM-DD" --json number,mergedAt,author,title | jq -r '.[] | [.number, mergedAt, .author.login, .title] | @tsv' | sort -k4 -- [ ] Create a PR with title `build(vX.Y.Z): release vX.Y.Z-rcX` - - Link to PR: - - Opening a PR will trigger a CI run that will build assets, create a draft GitHub release, and attach the assets. + - Example `gh` cli command looking at merged PRs into master and sorted by title to group similar areas: `gh pr list --repo filecoin-project/lotus --search "base:master merged:>YYYY-MM-DD" --json number,mergedAt,author,title | jq -r '.[] | [.number, mergedAt, .author.login, .title] | @tsv' | sort -k4` - [ ] Merge the PR - Opening the PR will trigger a CI run that will build assets, attach the assets to the GitHub release, publish the GitHub release, and create the corresponding git tag. - [ ] Update `🚒 Estimated shipping date` table @@ -123,7 +130,7 @@ > > 3. Under "Release PR > Update the version string...", edit: > -> Create a PR with title `build(vX.Y.Z): release vX.Y.Z` +> Create a PR with title `build: release vX.Y.Z` > > 4. Remove this `[!Note]` and the related invisible comments.