Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).
Motivation
Flink currently only provides source-compatibility across releases, including patch versions.
Patch releases not having binary compatibility is problematic for everyone:
- users (including service offerings) can't just redeploy Flink but have to rebuild their jobs, usually not actually requiring changes
- connector/library authors need to create a new release for every Flink patch release, usually not actually requiring changes
- with the externalization of connectors we'd turn even a small patch release into a 10+ vote ordeal
- that one could only avoid by technicalities ("this release does not have breaking changes so we don't need to create a new release") which would weaken the general messaging around compatibility, as it would eventually in turn into "just use your old jars; you'll be fine...probably.".
Public Interfaces
No public interfaces are affected by the change
Proposed Changes
Enable Japicmp in all modules ( - FLINK-25868Getting issue details... STATUS ) and do not add exclusions in the release branches after 1.X.0.
This will require the use of a slightly custom japicmp version created by Chesnay Schepler until we support Maven 3.3+( - FLINK-28016Getting issue details... STATUS ).
The version is functionally identical with Japicmp 1.16.0; it just downgrades the Maven dependency to 3.2.5.
Takes effect for: 1.15.3 / 1.16.0
Compatibility, Deprecation, and Migration Plan
not applicable
Test Plan
Japicmp + checks by the Release Manager that no exclusions were added.
Rejected Alternatives
no rejected alternatives considered