Hi Blake,

thank you for reaching out. @PublicEvolving interface can only be changed
with a minor release of Apache Flink (e.g. 1.6). While the JavaDoc is
indeed ambiguous there was a FLIP recently that discussed this topic:
https://cwiki.apache.org/confluence/display/FLINK/FLIP-196%3A+Source+API+stability+guarantees

If you have time, feel free to open a PR to align the JavaDocs. Happy to
merge that.

Cheers,

Konstantin

Am So., 10. Juli 2022 um 07:07 Uhr schrieb Blake Wilson <
bl...@yellowpapersun.com>:

> Hello,
> I've noticed the usage of "PublicEvolving" in some Flink classes described
> as follows
>
> /**
>  * Annotation to mark classes and methods for public use, but with evolving
> interfaces.
>  *
>  * <p>Classes and methods with this annotation are intended for public use
> and have stable behavior.
>  * However, their interfaces and signatures are not considered to be stable
> and might be changed
>  * across versions.
>  *
>  * <p>This annotation also excludes methods and classes with evolving
> interfaces / signatures within
>  * classes annotated with {@link Public}.
>  */
>
> This seems to indicate that these classes can be changed even within a
> patch version of Flink, though the statement "might be changed across
> versions" is a bit ambiguous in this regard.
>
> Is my statement correct? I'm wondering how important it is to preserve the
> API in classes annotated like this. For example, would it be considered
> appropriate to modify an interface if not doing so would require
> introducing a second version of the interface to support a new feature?
>
> This relates specifically to this change
> https://github.com/apache/flink/pull/19417
>
> Thank you
>


-- 
https://twitter.com/snntrable
https://github.com/knaufk

Reply via email to