5.4 KiB
Release Issue Template
Lotus X.Y.Z Release
We're happy to announce Lotus X.Y.Z...
🗺 Must-dos for the release
🌟 Nice-to-haves for the release
<List of items with PRs and/or Issues to be considered for this release>
🚢 Estimated shipping date
<Date this release will ship on if everything goes to plan (week beginning...)>
🔦 Highlights
< top highlights for this release notes >
✅ Release Checklist
Note for whomever is owning the release: please capture notes as comments in this issue for anything you noticed that could be improved for future releases. There is a Post Release step below for incorporating changes back into the RELEASE_ISSUE_TEMPLATE, and this is easier done by collecting notes from along the way rather than just thinking about it at the end.
First steps:
- Fork a new branch (
release/vX.Y.Z
) frommaster
and make any further release related changes to this branch. If any "non-trivial" changes get added to the release, uncheck all the checkboxes and return to this stage. - Bump the version in
version.go
in themaster
branch tovX.(Y+1).0-dev
.
Prepping an RC:
- version string in
build/version.go
has been updated (in therelease/vX.Y.Z
branch). - tag commit with
vX.Y.Z-rcN
- cut a pre-release here
Testing an RC:
-
Stage 0 - Automated Testing
- Automated Testing
- CI: Ensure that all tests are passing.
- Testground tests
- Automated Testing
-
Stage 1 - Internal Testing
- Binaries
- Ensure the RC release has downloadable binaries
- Validate the binary is able to run on at least one platform
- Upgrade our testnet infra
- 1 bootstrap node
- 1 miner
- Scratch nodes
- Wait 24 hours, confirm nodes stay in sync
- Remaining testnet infra
- Upgrade our mainnet infra
- Subset of development full archival nodes
- Subset of bootstrappers (1 per region)
- Confirm nodes stay in sync
- Metrics report
- Block validation time
- Memory / CPU usage
- Number of goroutines
- IPLD block read latency
- Bandwidth usage
- If anything has worsened significantly, investigate + fix
- Confirm the following work (some combination of Testground / Calibnet / Mainnet / beta users)
- Seal a sector
- make a deal
- Submit a PoSt
- (optional) let a sector go faulty, and see it be recovered
- Binaries
-
Stage 2 - Community Testing
- Inform beta miners (@lotus-early-testers-miner in Filecoin Slack #fil-lotus)
- Ask close ecosystem partners to test their projects (@lotus-early-testers-eco-dev in Filecoin slack #fil-lotus)
- Powergate
- Glif
- Zondax
- Stats dashboard
- Community dashboards
- Infura
- Sentinel
- Protofire
- Fleek
-
Stage 3 - Community Prod Testing
- Documentation
- Ensure that CHANGELOG.md is up to date
- Check if any config updates are needed
- Invite the wider community through (link to the release issue):
- Check
Create a discussion for this release
when tagging for the major rcs(new features, hot-fixes) release - Link the disucssion in #fil-lotus on Filecoin slack
- Check
- Documentation
-
Stage 4 - Release
- Final preparation
- Verify that version string in
version.go
has been updated. - Ensure that CHANGELOG.md is up to date
- Prep the changelog using
scripts/mkreleaselog
, and add it toCHANGELOG.md
- Merge
release-vX.Y.Z
into thereleases
branch. - Tag this merge commit (on the
releases
branch) withvX.Y.Z
- Cut the release here.
- Check
Create a discussion for this release
when tagging the release
- Check
- Final announcements
- Update network.filecoin.io for mainnet, calib and nerpa.
- repost in #fil-lotus in filecoin slack
- Inform node provides (Protofire, Digital Ocean..)
- Verify that version string in
- Final preparation
-
Post-Release
- Merge the
releases
branch back intomaster
, ignoring the changes toversion.go
(keep the-dev
version from master). Do NOT delete thereleases
branch when doing so! - Update RELEASE_ISSUE_TEMPLATE.md with any improvements determined from this latest release iteration.
- Create an issue using RELEASE_ISSUE_TEMPLATE.md for the next release.
- Merge the
❤️ Contributors
< list generated by scripts/mkreleaselog >
Would you like to contribute to Lotus and don't know how? Well, there are a few places you can get started:
- TODO
⁉️ Do you have questions?
Leave a comment here if you have any questions.