I also like the proposal for keeping the binary compatibility of @PublicEvolving for bugfix releases.
As for the @Public classes I think the current guarantees are good enough. Best, Dawid On 14/05/2020 10:49, Jingsong Li wrote: > Thanks Till for starting this discussion. > > +1 for enabling the japicmp-maven-plugin for @PublicEvolving for bug fix > releases. > Bug fix should just be user imperceptible bug fix. Should not affect API > and binary compatibility. > > And even PublicEvolving api change for "y" release, we should expose it in > dev mail list for discussing or a FLIP? > > BTW, public api can be changed by major releases? In annotation comments: > "Only major releases (1.0, 2.0, 3.0) can break interfaces with this > annotation". > > Best, > Jingsong Lee > > On Thu, May 14, 2020 at 4:30 PM Till Rohrmann <trohrm...@apache.org> wrote: > >> Dear community, >> >> in the latest 1.10.1 bug fix release I introduced a binary incompatible >> change to a class which is annotated with @PublicEvolving [1]. While this >> change is technically ok since we only provide API and binary compatibility >> for @Public classes across releases, it raised the question whether we >> can't do better. >> >> For our users it might be surprising and really annoying that they cannot >> simply upgrade to the latest bug fix release without recompiling the >> program or even having to change the source code of an application. I >> believe we would provide a much better experience if we ensured that bug >> fix releases maintain API and binary compatibility also for @PublicEvolving >> classes. Hence my proposal would be to tighten the stability guarantees the >> following way: >> >> * API + binary compatibility for @Public classes across all releases (x.y.z >> is compatible to u.v.w) >> * API + binary compatibility for @PublicEvolving classes for all bug fix >> releases in a minor release (x.y.z is compatible to x.y.u) >> >> This would entail that we can change @PublicEvolving classes only across >> minor/major releases. >> >> Practically this would mean that we enable the japicmp-maven-plugin >> for @PublicEvolving for bug fix releases. >> >> What do you think? >> >> [1] >> >> https://lists.apache.org/thread.html/r293768d13d08149d756e0bf91be52372edb444c317535d1d5a496c3e%40%3Cdev.flink.apache.org%3E >> >> Cheers, >> Till >> >
signature.asc
Description: OpenPGP digital signature