- Scope: Node|Miner MINOR|PATCH
- Is this linked with a network upgrade, and thus mandatory? Yes|No
- (network upgrade) Related network upgrade version: nvXX
- (network upgrade) Scope, dates, and epochs: <link to post in https://github.com/filecoin-project/community/discussions/74>
- (network upgrade) Lotus changelog with Lotus specifics: <link to section in https://github.com/filecoin-project/lotus/blob/master/CHANGELOG.md with more details>
Candidate | Date | Release URL |
---|---|---|
RC1 | Week of YYYY-MM-DD | |
Stable (non-RC) | Week of YYYY-MM-DD (estimate) |
Note
- 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.
- They can be checked as done once they land in
master
. - They are presented here for quick reference, but backporting is tracked in each
Release Checklist
.
- To Be Added
- To Be Added
- (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
orrelease/miner/vX.Y.Z
) from the last stablerelease/vX.Y.x
orrelease/miner/vX.Y.x
and make any further release-related changes to this branch. - (minor release) Fork a new branch (
release/vX.Y.Z
orrelease/miner/vX.Y.Z
) frommaster
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
tovX.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.
- Ensure to update the appropriate version string based on whether you are creating a node release (
- Run
make gen && make docsgen-cli
before committing changes. - Update the CHANGELOG
- Change the
UNRELEASED
section header toUNRELEASED vX.Y.Z
- Set the
UNRELEASED vX.Y.Z
section's content to be "See https://github.com/filecoin-project/lotus/blob/release/vX.Y.Z/CHANGELOG.md" - Add a new
UNRELEASED
header to top.
- Change the
- Create a PR with title
build: update Lotus Node|Miner version to vX.Y.(Z+1)-dev in master
- Link to PR:
- Merge PR
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.
- Ensure to update the appropriate version string based on whether you are creating a node release (
- 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 (whereYYYY-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
- Example command looking at git commits:
- 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.
Note
1️⃣ Copy/paste in the rcX
section above to below this [!Note]
2️⃣ make these changes:
- Release PR > Update the version string...
- Update the version string in
build/version.go
to one NOT ending with '-rcX'
- Update the version string in
- Release PR > Changelog prep...
- Add "(network upgrade) Ensure the Mainnet upgrade epoch is specified."
- Release PR > Create a draft PR...
- Create a PR with title
build: release Lotus node|miner vX.Y.Z
- Create a PR with title
3️⃣ Remove this [!Note]
and the related invisible comments.
- Open a PR against
master
cherry-picking the CHANGELOG commits from therelease/vX.Y.Z
branch. Title itchore(release): cherry-pick vX.Y.Z changelog back to master
- Link to PR:
- Assuming we followed the process of merging changes into
master
first before backporting to the release branch, the only changes should be CHANGELOG updates.
- Finish updating/merging the RELEASE_ISSUE_TEMPLATE.md PR from
Before RC1
with any improvements determined from this latest release iteration.
See the final release notes!
Leave a comment in this ticket!