Closed rjan90 closed 3 weeks ago
@rjan90 : I'm putting things down about lotus docs that are triggering about release versions when reading through them:
I don't know how/when lotus docs get updated, but I see they current point to the latest "mandatory even" release (e.g., 1.26.0) in https://lotus.filecoin.io/lotus/install/linux/ . I assume this process/scripting will need to be updated to just use the "highest number" release.
I think using the highest number release would be ideal. Currently the process of updating the version for the Downloading from Github
(and a couple of other places) is done manully every network upgrade.
Edit: This should also have been poiting to v1.26.2 or v1.26.3. v1.26.0 will not sync the current mainnet. So current process is human error prone.
This should also have been poiting to v1.26.2 or v1.26.3. v1.26.0 will not sync the current mainnet. So current process is human error prone.
Understood. I added a subtask for "Update release process to have a step for updating the Lotus version for all docs". Ideally we automate this, but at the minimum it needs to be in the checklist so it doesn't get forgotten.
@rjan90 : I assume as part of this we want to also make the shift to always branch from master, even for network upgrade related releases? I didn't see that stated anywhere. I created a discussion reply on it in https://github.com/filecoin-project/lotus/discussions/12020#discussioncomment-9841776 so we can confirm that's the case. If it is, we'll need to add some done criteria and tasks to the tasklist of this issue.
If it is, we'll need to add some done criteria and tasks to the tasklist of this issue.
I did some issue description updates discussing branch strategy and timing.
When this gets taken on lets also discuss:
release/v1.29.x
branch. The v1.29.0 tag will point to that branch. For a 1.29.1, we would cherrypick changes from master into the release/v1.29.x
branch and then tag 1.29.1 from the release/v1.29.x
branch.I have started a draft PR for updating the LOTUS_RELEASE_FLOW.md document here: https://github.com/filecoin-project/lotus/pull/12322. It is very preliminary, and there are items/discussions in this issue ticket that we need to discuss and figure out, that needs to be updated in that PR.
The subset of work for deprecating the releases
branch was pulled out in https://github.com/filecoin-project/lotus/issues/12374
@rjan90 : is there more you think we should do here? We had these items open:
Update release process to have a step for updating the Lotus version for all docs
I think this is covered in https://github.com/filecoin-project/lotus-docs/pull/746 right?
Visual/text covering branch strategy and timelines
I had added this. While I think it's good so we're not so text heavy, I don't think it's a priority currently. I'd rather take it on the next time we have a discussion with ourselves or others and wish we had a diagram. At that point in time, it will be clearer on the specific diagram we want. While I could come up with something here, it's not sharp in my mind if someone said "You have one hour to go make a diagram that is useful for contributors. Go!"
As a result, I am good if we close this out unless you think there is more we ned to do here.
As a result, I am good if we close this out unless you think there is more we ned to do here.
Agreed that we can close this out now. Remaining tasks should be covered by lotus-docs#746
This is a tracking issue for revising the Lotus Versioning
Problem to solve
We need to revise the versioning strategy of Lotus to adopt a more user-friendly approach, moving away from the mandatory (even) and feature release (odd) versioning scheme that has been the norm for the last years.
Why Important
Since LOTUS_RELEASE_FLOW.md was first written ~3 years ago, Lotus' stability and release quality have both increased. This proposal minimizes the need for having a "mandatory even" version that can be easily patched. Instead, by default, a hotfix can be applied to the latest production release, even if it includes additional backwards compatible features since the last network upgrade.
Historical Context
Historically, Lotus used an even and odd versioning scheme where
even minor
versions indicated mandatory releases (network upgrades) andodd minor
versions indicated feature releases.Reasons for Change
MAJOR
.MINOR
.PATCH
) will be easier for users to understand and follow.User/Customer
Lotus Client users
Notes
After the Lotus v1.28.0 release, which brings the changes for the next network upgrade (nv23), we will move away from the even and odd versioning.
The format will be
MAJOR
.MINOR
.PATCH
:MAJOR
if there are major changes to Lotus (e.g., if we re-architect).MINOR
whenever there is a network upgrade, API breaking change, or non-backwards-compatible feature enhancements.PATCH
whenever there are backwards-compatible bug fixes or feature enhancements.Concerning branching:
A key callout is that a Lotus release that has the functionality for a network upgrade may likely have commits that haven't been deployed to production yet (besides new FIP functionality).
This means a release accompanying a network upgrade may have commits that aren't essential and haven't been deployed to production. This is a simplifier and we think the risk is acceptable because we'll be doing releases more frequently (thus the amount of commits that haven't made it to a production release will be smaller) and our testing quality has improved since years past. (There is more discussion on this here.)
We expect: