Skip to content

Latest commit

 

History

History
153 lines (128 loc) · 9.73 KB

RELEASE_ISSUE_TEMPLATE.md

File metadata and controls

153 lines (128 loc) · 9.73 KB

Lotus Node|Miner X.Y.Z Release

😶‍🌫 Meta

🚢 Estimated shipping date

Candidate Date Release URL
RC1 Week of YYYY-MM-DD
Stable (non-RC) Week of YYYY-MM-DD (estimate)

🪢 Dependencies for releases

Note

  1. This is the set of changes that need to make it in for a given RC. This is effectively the set of changes to cherry-pick from master.
  2. They can be checked as done once they land in master.
  3. They are presented here for quick reference, but backporting is tracked in each Release Checklist.

rcX

  • To Be Added

Stable (non-RC)

  • To Be Added

✅ Release Checklist

Before RC1

  • (network upgrade) Make sure all Lotus dependencies are updated to the correct versions for the network upgrade
    • Link to Lotus PR:
  • Open PR against 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.x or release/miner/vX.Y.x 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.
  • master branch Version string updates
    • Skip this set of steps if you are patching a previous minor release.
    • 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.
    • Update the CHANGELOG
    • Create a PR with title build: update Lotus Node|Miner version to vX.Y.(Z+1)-dev in master
      • Link to PR:
    • Merge PR

RCs

rcX

Important

These PRs should be done in and target the release/vX.Y.Z or release/miner/vX.Y.Z branch.

Backport PR

  • All explicitly tracked items from Dependencies for releases have landed
  • Backported everything with the "backport" label
  • Removed the "backport" label from all backported PRs (no "backport" issues)
  • Create a PR with title build: backport changes for node|miner vX.Y.Z-rcX
    • Link to PR:
  • Merge PR

Release PR

  • 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 draft 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 and copy the auto-generated release notes into the CHANGELOG
    • Perform 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
    • 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 (where YYYY-MM-DD is the start search date): 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
    • Update the PR with the commit(s) made to the CHANGELOG
  • Mark the PR "ready for review" (non-draft)
  • Merge the PR
    • Merging 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
  • Comment on this issue announcing the RC
    • Link to issue comment:

Testing

Note

Link to any special steps for testing releases beyond ensuring CI is green. Steps can be inlined here or tracked elsewhere.

Stable (non-RC) Release

Note

1️⃣ Copy/paste in the rcX section above to below this [!Note]

2️⃣ make these changes:

  1. Release PR > Update the version string...
    • Update the version string in build/version.go to one NOT ending with '-rcX'
  2. Release PR > Changelog prep...
    • Add "(network upgrade) Ensure the Mainnet upgrade epoch is specified."
  3. Release PR > Create a draft PR...
    • Create a PR with title build: release Lotus node|miner vX.Y.Z

3️⃣ Remove this [!Note] and the related invisible comments.

Post-Release

❤️ Contributors

See the final release notes!

⁉️ Do you have questions?

Leave a comment in this ticket!