Regarding bug fixes, you may want to consider to have an LTS release once a
year - designating it for longer-term support / better for the masses.
If you like that - then fix bugs in trunk, backport important ones to
latest release + the last two LTS releases.
Even if you don't - if a downstream distribution picks a Kafka version and
plans to support it over a few years, it could be nice of them to "own"
that older release - volunteer to be a release manager for bug backports to
that version over a longer period...
Just my two cents :)

Ofir Manor

Co-Founder & CTO | Equalum

Mobile: +972-54-7801286 | Email: ofir.ma...@equalum.io

On Thu, Aug 25, 2016 at 12:32 PM, Ismael Juma <ism...@juma.me.uk> wrote:

> Thanks for putting this together Gwen. I think it sounds reasonable and
> instead of trying to optimise every aspect of it ahead of time (which is
> hard, subjective and time-consuming), I am happy to try what is being
> proposed and tweak based on experience. One thing we should pay particular
> attention to is how the stabilisation process works out in practice.
>
> A couple of comments:
>
> "Given 3 releases a year and the fact that no one upgrades three times a
> year, we propose making sure (by testing!) that rolling upgrade can be done
> from each release in the past year (i.e. last 3 releases) to the latest
> version."
>
> Because the cost of doing this for a larger number of releases is
> relatively low, I still think we should go for 6 here (our code currently
> supports 5 versions as I said in a previous message, so we're close to that
> target already). I'm generally very keen to make upgrades as easy as
> possible so that people have no reason not to upgrade. :)
>
> "We will also attempt, as a community to do bugfix releases as needed for
> the last 3 releases."
>
> I would suggest 2, personally, but since this is a bit fuzzy, I am OK with
> 3 if people prefer that.
>
> Ismael
>
> On Thu, Aug 25, 2016 at 6:22 AM, Gwen Shapira <g...@confluent.io> wrote:
>
> > Hi Team Kafka,
> >
> > As per the KIP meeting, I created a wiki:
> > https://cwiki.apache.org/confluence/display/KAFKA/Time+
> Based+Release+Plan
> > Summarizing most of the discussion so far.
> >
> > Comments and additional discussion is welcome :)
> >
> > Gwen
> >
> > On Wed, Aug 17, 2016 at 12:31 PM, Vahid S Hashemian
> > <vahidhashem...@us.ibm.com> wrote:
> > > Time-based releases is a good idea and something that has proved to be
> > > working in a number of open source projects. One successful example is
> > > Node.js, that goes through two major releases a year. The interesting
> > fact
> > > about the two releases is that only one (the even-number release) comes
> > > with a long term support (LTS) plan (30 months). More can be read here:
> > > https://github.com/nodejs/LTS. The odd-number releases still come with
> > > major changes and help build the ecosystem, but as far as LTS goes,
> there
> > > is only one per year. This LTS plan makes most enterprises want to
> stick
> > > to even-number releases, which is okay since frequent upgrades is not
> > > something they are normally interested in anyway.
> > >
> > > There could be several minor releases (non-breaking) in between major
> > > releases. A major release contains all the features / bug fixes in the
> > > master branch a month before the release date, with the potential
> > addition
> > > of (non-breaking) bug fixes until the release day. The deprecation
> cycle
> > > is one major release: any functionality that is decided to be removed
> is
> > > deprecated in the next major release, and removed in the major release
> > > after that.
> > >
> > > Because of the success of LTS models in this and other open source
> > > projects, I would suggest implementing a formal LTS plan for Kafka too.
> > >
> > > Regards,
> > > --Vahid
> > >
> > >
> > >
> > > From:   Gwen Shapira <g...@confluent.io>
> > > To:     dev@kafka.apache.org
> > > Date:   08/09/2016 04:49 PM
> > > Subject:        [DISCUSS] Time-based releases for Apache Kafka
> > >
> > >
> > >
> > > Dear Kafka Developers and Users,
> > >
> > > In the past, our releases have been quite unpredictable. We'll notice
> > > that a large number of nice features made it in (or are close),
> > > someone would suggest a release and we'd do it. This is fun, but makes
> > > planning really hard - we saw it during the last release which we
> > > decided to delay by a few weeks to allow more features to "land".
> > >
> > > Many other communities have adopted time-based releases successfully
> > > (Cassandra, GCC, LLVM, Fedora, Gnome, Ubuntu, etc.). And I thought it
> > > will make sense for the Apache Kafka community to try doing the same.
> > >
> > > The benefits of this approach are:
> > >
> > > 1. A quicker feedback cycle and users can benefit from features
> > > quicker (assuming for reasonably short time between releases - I was
> > > thinking 4 months)
> > >
> > > 2. Predictability for contributors and users:
> > > * Developers and reviewers can decide in advance what release they are
> > > aiming for with specific features.
> > > * If a feature misses a release we have a good idea of when it will
> show
> > > up.
> > > * Users know when to expect their features
> > >
> > > 3. Transparency - There will be a published cut-off date (AKA feature
> > > freeze) for the release and people will know about it in advance.
> > > Hopefully this will remove the contention around which features make
> > > it.
> > >
> > > 4. Quality - we've seen issues pop up in release candidates due to
> > > last-minute features that didn't have proper time to bake in. More
> > > time between feature freeze and release will let us test more,
> > > document more and resolve more issues.
> > >
> > > Since nothing is ever perfect, there will be some downsides:
> > >
> > > 1. Most notably, features that miss the feature-freeze date for a
> > > release will have to wait few month for the next release. Features
> > > will reach users faster overall as per benefit #1, but individual
> > > features that just miss the cut will lose out
> > >
> > > 2. More releases a year mean that being a committer is more work -
> > > release management is still some headache and we'll have more of
> > > those. Hopefully we'll get better at it. Also, the committer list is
> > > growing and hopefully it will be less than once-a-year effort for each
> > > committer.
> > >
> > > 3. For users, figuring out which release to use and having frequent
> > > new releases to upgrade to may be a bit confusing.
> > >
> > > 4. Frequent releases mean we need to do bugfix releases for older
> > > branches. Right now we only do bugfix releases to latest release.
> > >
> > > I think the benefits outweigh the drawbacks. Or at least suggest that
> > > its worth trying - we can have another discussion in few releases to
> > > see if we want to keep it that way or try something else.
> > >
> > > My suggestion for the process:
> > >
> > > 1. We decide on a reasonable release cadence
> > > 2. We decide on release dates (even rough estimate such as "end of
> > > February" or something) and work back feature freeze dates.
> > > 3. Committers volunteer to be "release managers" for specific
> > > releases. We can coordinate on the list or on a wiki. If no committer
> > > volunteers, we assume the community doesn't need a release and skip
> > > it.
> > > 4. At the "feature freeze" date, the release manager announces the
> > > contents of the release (which KIPs made it in on time), creates the
> > > release branch and starts the release process as usual. From this
> > > point onwards, only bug fixes should be double-committed to the
> > > release branch while trunk can start collecting features for the
> > > subsequent release.
> > >
> > > Comments and improvements are appreciated.
> > >
> > > Gwen Shapira
> > > Former-release-manager
> > >
> > >
> > >
> > >
> > >
> >
> >
> >
> > --
> > Gwen Shapira
> > Product Manager | Confluent
> > 650.450.2760 | @gwenshap
> > Follow us: Twitter | blog
> >
>

Reply via email to