Versions Compared

Key

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

...

For the time until graduation (@Experimental@PublicEvolving and @PublicEvolving@Public), I would propose per default a single two release cycles. Assuming a 4 months release cadence, this would give us 4 8 months for reaching the next stability level. In total we will have 8 16 months going from @Experimental to @Public. This might not be a lot of time but it will force the community to focus on newly introduced APIs and lead to fewer half baked stopgap solutions that become permanent.

...

Code Block
languagejava
titleExtended annotation
@Target(ElementType.TYPE)
public @interface PublicEvolving {

   FlinkVersion since();

   GraduationMiss[] missedGraduations();
}

public @interface GraduationMiss {
   FlinkVersion graduation();

   String reason();
}

// Usage
@PublicEvolving(
       since = FlinkVersion.V1_1211_0,
       missedGraduations = {
           @GraduationMiss(graduation = FlinkVersion.V1_13_0, reason = "foobar"),
           @GraduationMiss(graduation = FlinkVersion.V1_14_0, reason = "barfoo")
       })
public class Foobar {}

...