Thanks Seth, comment received, will add it into the release note. Best Regards, Yu
On Wed, 13 May 2020 at 22:54, Seth Wiesman <sjwies...@gmail.com> wrote: > +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 > > >>>>> > > > > >