filecoin-project/lotus

Lotus Node & Miner Release v1.30.0 (nv24)

BigLep opened this issue Β· 4 comments

πŸ˜Άβ€πŸŒ« Meta

🚒 Estimated shipping date

Candidate Date Release URL
RC1 Week of 2024-10-08 https://github.com/filecoin-project/lotus/releases/tag/v1.30.0-rc1 https://github.com/filecoin-project/lotus/releases/tag/miner%2Fv1.30.0-rc1
RC2 Week of 2024-10-14 https://github.com/filecoin-project/lotus/releases/tag/v1.30.0-rc2 https://github.com/filecoin-project/lotus/releases/tag/miner%2Fv1.30.0-rc2
RC3 Week of 2024-10-28 https://github.com/filecoin-project/lotus/releases/tag/v1.30.0-rc3 https://github.com/filecoin-project/lotus/releases/tag/miner%2Fv1.30.0-rc3
Stable Week of 2024-11-04 https://github.com/filecoin-project/lotus/releases/tag/v1.30.0 https://github.com/filecoin-project/lotus/releases/tag/miner%2Fv1.30.0

πŸͺ’ 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.

rc1

rc2

rc3

Stable (non-RC)

βœ… Release Checklist

Before RC1

  • (network upgrade) Make sure all Lotus dependencies are updated to the correct versions for the network upgrade
  • Open PR against RELEASE_ISSUE_TEMPLATE.md with title docs(release): v1.30.0 release template improvements for improving future releases.
    • Link to PR: #12563
    • 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.
  • (minor release) Fork a new branch (release/v1.30.0 or release/miner/v1.30.0) 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 v1.30.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 v1.30.1-dev in master
    • Merge PR

RCs

rc1

Important

These PRs should be done in and target the release/v1.30.0 or release/miner/v1.30.0 branch.

Release PR

  • Update the version string(s) in build/version.go to one ending with '-rc1'.
    • 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 v1.30.0-rc1
    • Link to PR: #12564
    • 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

rc2

Important

These PRs should be done in and target the release/v1.30.0 or release/miner/v1.30.0 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 v1.30.0-rcX
  • Merge PR

Release PR

  • Update the version string(s) in build/version.go to one ending with '-rc2'.
    • 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 v1.30.0-rc2
    • Link to PR: #12599
    • 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

rc3

Important

These PRs should be done in and target the release/v1.30.0 or release/miner/v1.30.0 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 v1.30.0-rcX
  • Merge PR

Release PR

  • Update the version string(s) in build/version.go to one ending with '-rc3'.
    • 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 v1.30.0-rc3
    • Link to PR: #12653
    • 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

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

Important

These PRs should be done in and target the release/v1.30.0 or release/miner/v1.30.0 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 v1.30.0-rcX
  • Merge PR

Release PR

  • Update the version string(s) in build/version.go to one NOT 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 v1.30.0
    • Link to PR: #12678
    • 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) Ensure the Mainnet upgrade epoch is specified.
    • 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 release

Post-Release

❀️ Contributors

See the final release notes!

⁉️ Do you have questions?

Leave a comment in this ticket!

The second release candidates, v1.30.0-rc2 has been shipped with upgrade epochs for the Calibration network set:

The third release candidates, v1.30.0-rc3 has been shipped with - this release adds a couple of smaller fixes found during testing of rc2. This release candidate does NOT set the mainnet network upgrade epoch.

The final release, v1.30.0 has been shipped - this release sets the mainnet network upgrade epoch to 4461240, corresponding to 2024-11-20T23:00:00Z.