Closed rjan90 closed 2 months ago
@aarshkshah1992 I have added some steps for pulling in all the needed dependencies for a network upgrade Lotus-version here: https://github.com/filecoin-project/lotus/pull/12107
A couple of notes:
build/params_calibnet.go
file(expanding comment) Tracker of things that were done that weren't in the release issue template or other observations and lessons learned:
It's currently TBD whether this release will be cut from master or from releases (tracking 1.27.1).
We will have to cherry pick some changes from master regardless, so it would be logistically simpler to cut the branch from master. @aarshkshah1992 is going to do due-diligence on 2024-06-25 looking at https://github.com/filecoin-project/lotus/compare/master...release/v1.27.1 to see if there's anything like events db migrations or anything else calling out for a mandatory release version.
We’ll then update the text in issue description based on the decision.
Note that until the release/v1.28.0 branch is cut, we should only merge changes relevant for nv23.
(related #fil-lotus-dev thread)
For anyone watching, we have confirmed we are still targeting RC1 for Thursday, 2024-06-27.
fwiw i did a quick pass on https://github.com/filecoin-project/lotus/compare/master...jen/v1271prep and i think we can cut off base on master commit 71418479278ab854bdc59bfafb93f6abad4a2cdf + other nv23 must have PRs
@aarshkshah1992 @jennijuju : I think we should use this github issue to track the code specifics for Lotus v1.28.0.
As a result, I added tracking to the issue for things we're waiting on for RC1 and RC2.
RC1 is now scheduled for 2024-07-01. Here is the relevant slack thread: https://filecoinproject.slack.com/archives/CP50PPW2X/p171952803942240 . (Issue description was updated too.)
Re https://github.com/filecoin-project/lotus/pull/12119 review comments addressed.
For anyone watching this issue about the 1.28.0 final release, it will not be happening today (2024-07-23). It's expected to come 2024-07-24. The PR for the release is https://github.com/filecoin-project/lotus/pull/12271, which lists the remaining work item (0.0.5 release of go-f3).
- [ ] Merge release-vX.Y.Z into the releases branch.
- [ ] Tag this merge commit (on the releases branch) with vX.Y.Z
I was unable to resolve conflicts, and failing test when trying to merge the release/v1.28.0
branch into the releases
branch (Attempt 2 from Aarsh: https://github.com/filecoin-project/lotus/pull/12291) in such as way that we would be able to tag the v1.28.0 release from the releases branch. This is partly because some of the automation code has landed in the releases
branch, when we tested shipping the automatic releases with the v1.27.2
release.
I will go ahead and tag the v1.28.0
release, from the release/v1.280
branch, and in the interim get the releases branch to point to the v1.28.0 tag, so that people which depend on git checkout releases
as part of their script/upgrade process, will get the correct version.
For visibility, there have been active verbal discussions about how to handle the fact that the 1.28.0 tag is from the release/v1.28.0
branch rather than releases
. I'll post the notes within an hour.
For context, my understanding is that the historical release process has been to tag from releases
and to cut patch releases (e.g., 1.28.1) from the releases
branch. I don't know all the reasons why the releases
branch was created, but I assume it is being used by some users or automation as the defacto branch to pull the latest non-RC released code to build from source.
@rjan90 understandably ran into some issues when attempting to merge the release/v1.28.0 into the releases branch. As @rjan90 shared, this is in part due to some release automation that we wanted to try out with a real release (1.27.2 in this case).
I think we have two paths forward:
releases
having the latest final release. To do this, given there are commits in releases
from 1.27.2 that we don't want as part of 1.28.x (i.e., release automation changeups), I think the cleanest thing is to revert releases
to the pre-1.27.2 state (i.e., make the head of releases
be 1.27.1). Looking at https://github.com/filecoin-project/lotus/commits/releases, this would mean reverting the commits to get us back to the 2024-06-24 (commit 36d9634). We then merge in releases/v1.28.0
into releases
.releases
today. This is effectively fast-tracking something that maintainers were planning to do post-nv23 anyways as part of https://github.com/filecoin-project/lotus/issues/12072 . This would mean 1.28.x patches (e.g., 1.28.1) would be made off the current release/v1.28.0
branch. It also means anyone relying on releases
to follow final releases would need to update to instead track the release/v1.28.0
branch (and its decedents).Given we're a couple of weeks away from network upgrade, I don't think we should introduce more process changes, and I would vote to go with option 1 to maintain the status quo.
Regardless of what path is taken, there is still the exercise of confirming that there are no changes in the releases branch that should make their way into release/v1.28.0
. @aarshkshah1992, @jennijuju, and I took an hour or so to comb through the differences. This was done in a couple of ways:
colordiff <(git log --pretty=format:"%s" release/v1.28.0..releases | sort) <(git log --pretty=format:"%s" releases..release/v1.28.0 | sort)
We couldn't find any instance of a commit that was in releases
that should have been in release/v1.28.0
. The cases where there were commits that were in releases
that weren't in release/v1.28.0
boiled down to:
(And yes, I'm sure there is a better "git fu" way of answering the questions of "are there any meaningful commits in branch X that aren't in branch Y - feedback/pointers welcome.)
Per verbal, we are going to go with option 1 above. @rvagg is going to work on this PR. (I also updated the text to better clarify what is meant by "option 1").
Closing this now that https://github.com/filecoin-project/lotus/releases/tag/v1.28.1 has been published, and also the final step of merging releases branch back to master has been merged https://github.com/filecoin-project/lotus/pull/12317
🚢 Estimated shipping date
RC1:
RC2:
RC3:
RC4:
RC5:
v1.28.0 stable estimated: ~
2024-07-23
~ 2024-07-24Dependencies for releases
This is the set of changes that need to make it a given RC. This is effectively the set of changes to cherry-pick from master.
RC1
RC2 (current "calibration final-candidate")
This upgrade includes an additional migration to the events database. Node operators running Lotus with events turned on (off by default) may experience some delay in initial start-up as a minor database migration takes place. See [filecoin-project/lotus#12080](https://github.com/filecoin-project/lotus/pull/12080) for full details.
Mainnet Upgrade Release
✅ Release Checklist
release/v1.28.0
) from master.build/version.go
in themaster
branch tovX.Y.(Z+1)-dev
(bump from feature release) orvX.(Y+1).0-dev
(bump from mandatory release). Run make gen and make docsgen-cli before committing changes https://github.com/filecoin-project/lotus/pull/12074Prepping an RC
RC prep steps for network upgrade for Calibration
RC1 Steps
build/version.go
needs to be updated to end with '-rcX' (in therelease/vX.Y.Z
branch)make gen && make docsgen-cli
vX.Y.Z-rcN
We've cut the first RC using these steps at https://github.com/filecoin-project/lotus/releases/tag/v1.28.0-rc1.
RC2 Steps
build/version.go
needs to be updated to end with '-rcX' (in therelease/vX.Y.Z
branch)make gen && make docsgen-cli
vX.Y.Z-rcN
Stable Release
version.go
has been updated.make gen && make docsgen-cli
)release-vX.Y.Z
into thereleases
branch.releases
branch) withvX.Y.Z
Post-Release
releases
branch back intomaster
, ignoring the changes toversion.go
(keep the-dev
version from master). Do NOT delete thereleases
branch when doing so!releases
andrelease/v1.28.0
are in master.