Replies: 2 comments 1 reply
-
|
I'm a little confused here. If I understand correctly you want to make it that we cut minor releases from |
Beta Was this translation helpful? Give feedback.
-
|
I'm in favor of the default being we always cut releases from The version branches are primarily beneficial for actually backporting, i.e. One thing to consider, is building the practice of never implementing a change in a breaking way until the version is ready to released. When dealing with breaking changes, there is going to be some maintenance burden on the team to manage the breaking change until the version is release. You can either do this by putting that change in a separate branch, or you can do it by taking on some short term tech debt of maintaining separate workflows in the code. imo maintaining separate workflows in one branch is easier than maintaining 2 branches. |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
Context
Currently celestia-app maintains two branches:
mainv1.xMost PRs target
mainby default and are optionally backported tov1.xif they need to be included in a subsequentv1.xrelease.Problem
The backport process leads to friction because it leads to two PRs for most changes. The added friction has caused fixes to be merged to
mainwithout being merged tov1.x(example).Proposal
My hunch is that the number of changes on
mainthat need to be released inv2.0.0are extremely small compared to the number of changes onmainthat can be released in a subsequentv1.xrelease. I think the maintenance burden originates from us prematurely creating and maintaining av1.xbranch. My proposed branch management:mainis the default branch that PRs target. The latest releases are always cut frommain.v2.xbranch for breaking changes. This branch should have branch protection rules and shouldn't merge tomainuntil immediately prior to us creatingv2.0.0. At that time, we can create a longer-livedv1.xbranch that only accepts critical fixes that need to be backported.Steps
mainthat need to be released inv2.0.0to a new branchv2.x.main.v1.xbranch.v1.xreleases frommain.Optionally:
v2.xthat targetsmain.v2.x.When we eventually cut a
v2.0.0, we may create av1.xbranch that accepts backports and doesn't include thev2.xbreaking changes. At that point,mainwill be the default branch for all PRs because most changes should target subsequentv2.xreleases and only critical fixes need to be backported tov1.x.Notes
If we plan on cutting a
v2.0.0in the short-term, this proposal doesn't provide much benefit. But the idea may still apply to future releases. For example, we can delay the creation of av3.xbranch until the time wheremainintroducesv3.xbreaking changes.Beta Was this translation helpful? Give feedback.
All reactions