On Wed, May 6, 2020 at 9:40 AM Szalay-Bekő Máté
<[email protected]> wrote:
>
> In general I agree.
>
> But I am a bit hesitant here:
>
> > branch-3.6:
> > - everything, except new features
>
> Sometimes it is hard to distinguish "new features" and "improvements". I
> think this should be decided on a case-by-case basis.

One possible useful distinction between these two is:

* new features: anything that adds new public API
* improvements: anything that improves code quality or implementation
details, but does not change public API (though it may change
performance characteristics)

Of course, you may wish to define what "public API" means.
If you are following SemVer (https://semver.org/spec/v2.0.0.html),
which I generally recommend, new features should *only* ever be added
with a minor version release bump (x.y.z -> x.[y+1].0), while
improvements can be made in a patch release along with bug fixes
(though I would do so conservatively, in order to avoid destabilizing
a release line). Following this ensures that patch releases are
backwards and forwards compatible within a minor release, and minor
releases are backwards compatible within a major release. Only major
releases have breaking changes (remove public API).

> E.g. this recent change seems to be an improvement for me
> https://issues.apache.org/jira/browse/ZOOKEEPER-3796
> But still I wouldn't push it into a bugfix release, as it is documented as
> an 'experimental feature'.
>
> Kind regards,
> Mate
>
> On Wed, May 6, 2020 at 3:15 PM Andor Molnar <[email protected]> wrote:
>
> > Hi!
> >
> > We started a discussion on Slack about what to backport to which branches,
> > because I was missing some commits from 3.5 and 3.6 which I think should
> > have been backported for proper maintenance.
> >
> > These 2 branches are currently the active releases of Apache ZooKeeper, so
> > I think it’s important to make sure all committers are on the same page in
> > terms of backporting accepted patches.
> >
> > Mate provided a quick list of different categories that patches usually
> > fall into:
> > - bugfixes
> > - CVEs
> > - test fixes
> > - documentation fixes
> > - maven fixes
> > - new features
> > - improvements
> >
> > My suggestion is:
> >
> > master:
> > - everything
> >
> > branch-3.6:
> > - everything, except new features
> >
> > branch-3.5:
> > - bugfixes
> > - CVEs
> > - test, doc fixes
> > - maven fixes if possible
> >
> > branch-3.4
> > - CVEs (until 1st of June, 2020)
> >
> > Please share your thoughts.
> >
> > Andor
> >
> >
> >
> >
> >
> >

Reply via email to