Thanks for bring this discussion up, Till.

+1 for guaranteeing API + binary compatibility for @PublicEvolving classes
for bug fix releases.

I have a bit concern on the compatibility of @Public classes though.
According to the JavaDoc, @Public requires classes to be stable
across minor releases (x.y.z vs. x.u.v), but can be broken by across major
releases (x.y.z v.s u.v.w). Further tighten the stability will leave us no
chance to remove outdated APIs annotated as @Public. AFAIK, there are
already many APIs annotated as @Public that we intend to remove with the
release 2.x. E.g., some deprecated constants in ConfigConstants.

Thank you~

Xintong Song



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
>

Reply via email to