+1 Ufuk's pragmatic solution to update the release notes with a public
notice, I have commented on the release notes PR.

https://github.com/apache/flink-web/pull/330

Seth

On Wed, May 13, 2020 at 8:30 AM Chesnay Schepler <ches...@apache.org> wrote:

> IIRC @PublicEvolving had no /real/ guarantees, from the 1.0.0 announcement:
>
> /"Flink 1.0.0 introduces interface stability annotations for API classes
> and methods. Interfaces defined as //|@Public|//are guaranteed to remain
> stable across all releases of the 1.x series. The
> //|@PublicEvolving|//annotation marks API features that may be subject
> to change in future versions."/
>
> 1) We don't have a process for promoting things to @Public because we
> have actually never done that. Based on our current rules, it is an
> addition to the public API (technically even more so than most FLIPs),
> and hence should go through a FLIP and vote.
> Ideally we evaluate existing @PublicEvolving API's for promotion on each
> release.
>
> 2) Yes, I think this is an excellent idea; as Ufuk said users should not
> be worried about upgrading to the next minor version. Not sure how easy
> this is to implement; but it basically means either modifying or adding
> new new japicmp execution when forking the release-X.Y branches.
>
> On 13/05/2020 15:19, Till Rohrmann wrote:
> > A small addendum: The project currently enforces only binary
> compatibility
> > for classes which are annotated with @Public. The StreamingFileSink is
> > annotated with @PublicEvolving.
> >
> > I am not sure whether the community properly defined what kind of
> > stability/compatibility guarantees we provide for @PublicEvolving
> classes.
> >
> > We can derive two follow-up discussions from this:
> >
> > 1) Should the StreamingFileSink be made @Public? Should
> > other @PublicEvolving classes be promoted? What is the process here?
> >
> > 2) Should we enforce binary compatibility of @PublicEvolving classes
> > between bug fix releases and allow breaking changes between minor/major
> > releases?
> >
> > Cheers,
> > Till
> >
> > On Wed, May 13, 2020 at 2:30 PM Ufuk Celebi <u...@apache.org> wrote:
> >
> >> Thanks for the analysis Till.
> >>
> >> 1/ I think breaking binary compatibility is acceptable between minor
> >> releases (1.10 -> 1.11) as you suggested since the API is marked
> >> as @PublicEvolving.
> >>
> >> 2/ I'm quite torn about how to proceed with the 1.10.x patch release,
> but
> >> slightly leaning towards the "pragmatic" solution of keeping the change
> and
> >> adding a big warning to the 1.10.1 release announcement*. What do others
> >> think? If we do want to revert the change and follow up with a 1.10.2
> >> release we should do it _before_ we announce 1.10.1 publicly. Doing it
> >> after 1.10.1 has been announced would only cause more friction for
> users.
> >>
> >> – Ufuk
> >>
> >> *I hope we don't lose user trust with this. I really would like users
> to be
> >> able to upgrade to the latest patch release without hesitation.
> >>
> >> On Wed, May 13, 2020 at 11:45 AM Till Rohrmann <trohrm...@apache.org>
> >> wrote:
> >>
> >>> Thanks for reporting this issue Seth. This is indeed a big problem.
> >>>
> >>> I looked into the problem and it seems we have the following situation:
> >>>
> >>> # 1.9.x --> 1.10.0
> >>>
> >>> There is an API breaking change between 1.9.x and 1.10 due FLINK-13864
> >>> because it introduced another generic parameter. I expected only few
> >> people
> >>> will be affected by this because one would have to store the builder
> in a
> >>> variable.
> >>>
> >>> 1.9.x is binary compatible with 1.10.0.
> >>>
> >>> # 1.10.0 -> 1.10.1
> >>>
> >>> There is no API breaking change between 1.10.0 and 1.10.1.
> >>>
> >>> I changed the return type of the StreamingFileSink.forRowFormat and
> >>> .forBulkFormat to a subtype of StreamingFileSink.BulkFormatBuilder in
> >>> FLINK-16684. This causes the java.lang.NoSuchMethodError and the binary
> >>> incompatibility between 1.10.0 and 1.10.1. This is should not happen
> for
> >>> bug fix releases.
> >>>
> >>> W/o FLINK-16684, the StreamingFileSink builders cannot be used with
> >> Flink's
> >>> Scala API.
> >>>
> >>> # Options
> >>>
> >>> I think we should keep the fix for 1.11.0 and add a release note that
> we
> >>> are violating binary compatibility between 1.10 and 1.11.
> >>>
> >>> Now the question is what to do with the 1.10.x branch:
> >>>
> >>> a) We can revert the change to re-establish binary compatibility
> between
> >>> 1.9.x, 1.10.0 and 1.10.2 but not between 1.10.1 and 1.10.2. This would
> >> also
> >>> imply that we cannot use the StreamingFileSink builders with the Scala
> >> API.
> >>> b) Keep the change and add a release note that our users need to
> >> recompile
> >>> their jobs. This would allow Flink 1.10.x with x >= 1 users to use
> >>> StreamingFileSink builders with the Scala API.
> >>>
> >>> I am not entirely sure which need weighs more: binary compatibility
> >> between
> >>> bug fix releases or a working API (small subset of it). Another aspect
> to
> >>> consider is how many people will migrate from 1.10.0 to 1.10.1 compared
> >> to
> >>> 1.y to 1.10.1 with y <= 9. If the former is very small then one might
> >> make
> >>> a case for keeping the change.
> >>>
> >>> What do the others think?
> >>>
> >>> https://issues.apache.org/jira/browse/FLINK-13864
> >>> https://issues.apache.org/jira/browse/FLINK-16684
> >>>
> >>> Cheers,
> >>> Till
> >>>
> >>> On Tue, May 12, 2020 at 7:26 PM Thomas Weise <t...@apache.org> wrote:
> >>>
> >>>> We also noticed that and had to make an adjustment downstream.
> >>>>
> >>>> It would be good to mention this in the release notes (if that's not
> >>>> already the case).
> >>>>
> >>>> Thomas
> >>>>
> >>>>
> >>>> On Tue, May 12, 2020 at 10:06 AM Seth Wiesman <sjwies...@gmail.com>
> >>> wrote:
> >>>>> Hi Everyone,
> >>>>>
> >>>>> I realize I'm about 7 hours late but I just realized there is a
> >>> breaking
> >>>>> API change in 1.10.1. FLINK-16684 changes the API of the streaming
> >> file
> >>>>> sink in a binary incompatible way. Since the release has been
> >> approved
> >>>> I'm
> >>>>> not sure the correct course of action but I wanted to bring this to
> >> the
> >>>>> communities attention.
> >>>>>
> >>>>> Seth
> >>>>>
> >>>>> https://issues.apache.org/jira/browse/FLINK-16684
> >>>>>
>
>

Reply via email to