>
> Tho based on this discussion there's a bunch of good features that users
> want that won't fit the criteria for #1 and #2. So allowing a backport of
> the few that can fit into the criteria shouldn't significantly affect
> future release from trunk. This way we can have some progress on some
> features.
>
>
If we have features that don't fit criteria #1 (compatibility), then we
need a new major release according to our semver guidelines.  Criteria #2
(stability) I think needs to be a gating factor on any new feature coming
in.  We need to be able to demonstrate that we're not doing any harm for
existing users by adding new features.

In both cases, I'm not sure we're very well served by committing new
features to master, then back-porting to branch-1.  That means that
whatever stabilization is happening is likely from testing on branch-1
based releases and not master, giving more time for changes to diverge.  I
think we would be better served by releasing early and often from master
and not having a branch-1 at all.  That would serve as a forcing function
to make sure that change going in to master have to stabilize while "fresh"
before a release is made.

For more complex efforts, it would be better to stabilize in a feature
branch and then merge the completed effort as one.

I think we're already boxing ourselves in by looking at 2.0 as a feature
based release, which means it necessarily has an unbounded timeline.  That
means we have to do backports for other features ready before then, since
master can't be released.  If we instead focus on a releasable master, that
should help us release large changes more incrementally, and save ourselves
the hassle of so many backports at the same time.  Of course everyone is
free to invest their time where they choose.  But I think if we focus on
time-based releases instead it would be better for the project as a whole.

Reply via email to