Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Status

...

Page properties


Discussion thread

...

JIRAhere (<- TBD)

...



Please keep the discussion on the mailing list rather than commenting on the wiki (wiki discussions get unwieldy fast).

...

Most information about API compatibility could find on the internet suggested by google are about RESTful API which means a client (a program written to consume the API) that can work with one version of the API can work the same way with future versions of the API [6].  FLIP-196 makes it clear with the focus of Flink or programmatic API: a program written against a public API will compile w/o errors when upgrading Flink [4]. Based on the information given by FLIP-196, Flink provides API backward compatibility except some corner cases with the RESTful API. IMHO, this is great but does not fulfill users requirements, because users want their Flink jobs to be running without errors, not just compile them, which turns out that what users actually required is the ABI compatibility [7], e.g. connectors build with Flink 1.13 want to be running on Flink 1.12 Cluster with no issue. That is why I mentioned at the beginning that the original request in the API compatibility thread [1] was actually asking for Flink ABI forward compatibility, which Flink didn't provide.

...

The lastChange field show the API stability and could provide hint for the API to be graduated. Depending on the graduation rule, we will have a clear picture of the current status of all @PublicEvolving interface. For example, if the rule is to graduate a @PublicEvolving interface after two unchanged versions

ClassbackwardCompatiblelastChangelast_releaseStatus
FooFlinkVersion.V1_12_0FlinkVersion.V1_13_0




FlinkVersion.V1_15_0

go public for 1.16 release
BarFlinkVersion.V1_13_0FlinkVersion.V1_13_0go public for 1.16 release
BazFlinkVersion.V1_12_0FlinkVersion.V1_14_0mature
QuxFlinkVersion.V1_12_0FlinkVersion.V1_15_0under development
QuuxFlinkVersion.V1_15_0FlinkVersion.V1_15_0unstable
CorgeFlinkVersion.V1_12_0FlinkVersion.V1_12_0Warning, there must be some specific issue to postpone the graduation


If we want fine-grained control, we could also consider adding them at method level.

...