...
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 | ||||
---|---|---|---|---|
| ||||
@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 {} |
...