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