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 > -- Best, Jingsong Lee