lotus Release Process #5889
Replies: 7 comments 12 replies
-
Is there a convention for version releases that are mandatory network upgrades? 2.x, 3.x, etc? |
Beta Was this translation helpful? Give feedback.
-
Ah, this is good to hear. Be nice for there to be a set time window for consensus breaking patches to be available before the network moves on? Such as an epoch always set 5 or 7 days in the future, something static so people can run the new patch for a while and make sure everything is good. |
Beta Was this translation helpful? Give feedback.
-
With the new branching strategy changes (which I'm VERY supportive of), I think the following would be helpful:
|
Beta Was this translation helpful? Give feedback.
-
Personally I think that the semver policy is underspecified and poorly applicable for distributed systems. Distributed systems have many API surfaces that can break (binary API, local JSON-RPC API, application protocols, networking stack, etc.). Bumping the major version is highly unspecific. Moreover, Golang tightly couples source code with versioning (major versions beyond v1 leak into import paths) -- this poses logistical difficulties to using major versions here. Concretely, if we were to pick a policy that bumped the major version on every network upgrade, we would disrupt every single downstream library/application that consumed the native Lotus API, e.g. libraries depending on the JSON-RPC client, testground tests, etc. They would need to update their code every single time that we released a network breaking change, even if it brought on zero expectation of breakage for the Golang APIs that they depend on. (i.e. we are signalling breakage on the wrong API surface! signalling breakage on the Go level, when what breaks is the network protocol) I personally think we should establish a clear, understandable versioning policy, with stable and consistent heuristics for both Lotus developers and the community to follow and reason about. Concretely, I propose the following strategy:
|
Beta Was this translation helpful? Give feedback.
-
TL;DR:
|
Beta Was this translation helpful? Give feedback.
-
@Stebalien you will summarize our discussion & conclusion today, yes?🤔 |
Beta Was this translation helpful? Give feedback.
-
can someone visualize that? |
Beta Was this translation helpful? Give feedback.
-
Hey everyone! We wanted to let you know that we are currently revising the lotus release process(leave a comment if you have any suggestion). As many of you have shared, we haven't been doing a good enough job of testing our release candidates before shipping them. We intend to discipline the pace at which we put out optional releases and slow down the pace for the mandatory releases. We are also developing a comprehensive release checklist that incorporates a long testing window.
Some changes that you may notice as a result of this work:
master
branch. Instead, there will be a dedicatedreleases
branch from which releases will be cut. Themaster
branch will generally be ahead ofreleases
, and will be called anext-release-dev
version of a future release. We will aim to keepmaster
as a generally reliable, but slightly more experimental branch with the latest features and fixes.Thank you for you all your feedback about our release process. We're paying close attention to the problems you've reported, and are determined to make things better! We will talk to you again when the revised release process is final!
Beta Was this translation helpful? Give feedback.
All reactions