Thanks a lot for the positive feedback so far.

Thank you Fabian for spotting the off by one error in my email.
"There are two hard things in computer science: cache invalidation, naming
things, and off-by-one errors." (https://twitter.com/codinghorror/status/
506010907021828096?lang=en)

I agree with Fabian that this model could potentially lead to more feature
branches in our repository. However, I think we should only do that for
major features where many contributors are collaborating on. Using private
development branches works equally well for smaller groups.
I found that the frequent "flip6" branch rebases caused a lot of noise on
the commits@flink list.

Regarding the "bugfix guarantees":
I agree that my proposal doesn't make so much sense. I actually got the
same feedback from a draft of my email but forgot to change it before
sending it out. I think supporting the current (1.1) and previous (1.0)
major release is a doable guarantee.




On Wed, Jan 18, 2017 at 10:25 AM, Vasiliki Kalavri <
vasilikikala...@gmail.com> wrote:

> Hi Robert,
>
> thanks a lot for starting this discussion and for putting together the wiki
> pages.
> This proposal makes a lot of sense to me.
>
> Big +1 for merging only features which are tested and *documented*.
>
> I believe that having a clear timeline will not only make users happier but
> also contributors more engaged. With the current unpredictability, it is
> hard to book time aside to help with testing a release candidate. I hope
> that knowing exactly when that needs to happen will help us plan our own
> time better and help out more.
>
> Cheers,
> -Vasia.
>
> On 18 January 2017 at 09:57, Tzu-Li (Gordon) Tai <tzuli...@apache.org>
> wrote:
>
> > Hi Robert,
> >
> > Thanks for bringing up the discussion. I like the proposal.
> >
> > Regarding some of the downsides mentioned in the wiki:
> >
> > 1. Features that don’t make it in time with the feature freeze:
> > I think that’s ok, as long as we’re consistent with the schedules for the
> > next release. This way users waiting for that particular features will
> > still be able to rely on the fact that the feature will be included in 4
> > months.
> >
> > 2. Frequent releases mean bug fix releases for older branches:
> > You mentioned in the email that “old releases are supported for 6 months
> > by the community”, but not in the wiki. If this is strictly followed,
> that
> > means we’ll at most be supporting 2 previous major release versions (ex.
> as
> > soon as 1.4.0 comes out, we’ll still be supporting bugfixes for 1.3.0, as
> > well as 1.2.0 for another 2 months).
> > This might seem a bit odd, so perhaps we can stick to something like
> > “support bugfixes for the previous 2 major releases”? Ex. Once 1.4.0
> comes
> > out, we’ll continue to support only 1.4.0 and 1.3.0.
> > Supporting bugfixes for 2 major versions seems workable, and this way
> > users can also have a “buffer” that they should not fall behind releases
> > for more than 2 major versions (8 months) and preplan upgrades.
> >
> > - Gordon
> >
> > On January 18, 2017 at 9:19:41 AM, Robert Metzger (rmetz...@apache.org)
> > wrote:
> >
> > Hi all!
> >
> > Since the 1.2.0 release is about to come out, I would like to propose a
> > change in the way we do releases in the Flink community.
> >
> > In my opinion, the current model leads to dissatisfaction among users and
> > contributors, because releases are really not predictable. A recent
> example
> > for the issues with our current model are the FLIP-6 changes we wanted to
> > merge to master, a few weeks before the first RC for 1.2.0. Also, there
> > were some emails on the mailing lists asking for a release date.
> >
> > In order to change that, I’m proposing to follow a strictly time-based
> > release model. Other open source projects like Ubuntu, Cassandra, Spark
> or
> > Kafka are following that model as well, and I think we should try it out
> as
> > an experiment for the 1.3.0 release.
> >
> > I’m proposing to:
> >
> > -
> >
> > Do a Flink release every 4 months
> > -
> >
> > Cycle:
> > -
> >
> > 3 months development
> > -
> >
> > 1 month before the release: Feature freeze. Create release branch
> > with RC0, start testing. Only fixes, tests and minor improvements are
> > allowed in.
> > -
> >
> > 2 weeks before the release: Code freeze. Start voting. Only fixes for
> > blockers are allowed in.
> > -
> >
> > Forbid blocking a release because a feature is not done yet.
> > -
> >
> > Features are merged to master, when they are tested and documented, to
> > have an always stable master
> > -
> >
> > Bugfix releases are done as needed.
> > -
> >
> > Old releases are supported for 6 months by the Flink community with
> > critical bug fixes
> >
> >
> > This means, that we would have the following release dates:
> >
> > (Flink 1.3.0 by end of January 2017)
> >
> > Flink 1.4.0 by end of May 2017
> >
> > Flink 1.5.0 by end of September 2017
> >
> > Flink 1.6.0 by end of January 2018
> >
> > I’ve put some more details including some pro’s and con’s into our wiki.
> > The page is based on Kafka’s time-based release wiki page (Kafka also
> > recently started following a strictly time-based model)
> >
> > https://cwiki.apache.org/confluence/display/FLINK/Time-based+releases
> >
> >
> > Once we’ve agreed on following that model, I’ll update the release plan
> > page accordingly:
> > https://cwiki.apache.org/confluence/display/FLINK/
> > Flink+Release+and+Feature+Plan
> >
> >
> > Please let me know what you think about this idea!
> >
> > Regards,
> >
> > Robert
> >
>

Reply via email to