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

Reply via email to