Hi everyone,

I think it would be best to support this process with tooling as much as
possible, because humans are bound to make mistakes. FLINK-24138[1] should
be a first step in this direction, but it wouldn't catch the cases
discussed here.
Maybe we should consider "capturing" the public API into some separate
file(s) and validating against that in the CI such that structural changes
to public APIs (moved classes, renamed / exchanged classes, changed
signatures, …) can be caught as an error. That would raise awareness for
any changes to public APIs and force a conscious decision.

[1] https://issues.apache.org/jira/browse/FLINK-24138


Best
Ingo

On Tue, Sep 28, 2021 at 2:49 PM Leonard Xu <xbjt...@gmail.com> wrote:

> >>
> >> Not sure if this will happen in 1.15 already. We will needed automated
> >> compatibility tests and a well-defined list of stable API.
>
> >  We are
> > trying to provide forward compatibility: applications using `@Public`
> APIs
> > compiled against Flink 1.12.x, should work fine in Flink 1.13.x
>
> Unfortunately, I also meet forward compatibility issue, when I do the
> release 1.14 check, I try to use mysql-cdc connector[1] which compiled
> against 1.13.1in SQL Client, but it can not work in flink 1.14.0 cluster,
> it failed due to the metric API compatibility broken.
>
> @Public
> public interface SourceReaderContext {
>
>    MetricGroup metricGroup();
>
>
> @Public
> public interface SourceReaderContext {
>
>     SourceReaderMetricGroup metricGroup();
>
>
> Shouldn't we mark it as @Deprecated and then delete it util 2.0.0 version
> for @Public API as the our community rule [2] described? At least we should
> keep them across server minor versions (<major>.<minor>.<patch>).
>
> Although these changes can be tracked to voted FLIPs and it’s not the
> fault of a few developers, it show us the fact that we didn’t pay enough
> attention to back compatibility/forward compatibility.
>
> Best,
> Leonard
> [1]
> https://github.com/ververica/flink-cdc-connectors/tree/master/flink-connector-mysql-cdc
> [2]
> https://cwiki.apache.org/confluence/display/FLINK/Stability+Annotations
>
>

Reply via email to