Hi Timo, 1) I haven't fully thought where to put it but I guess that flink-core might be a good place for the FlinkVersion. We should then also unify any other enums if possible.
2) I think it makes sense to also review our deprecation process. I think it makes a lot of sense to add since when something is deprecated and establish a process for removing it (e.g. after one release and if not then state why). For the sake of brevity of this FLIP, I would move this discussion to a follow-up FLIP, though. Cheers, Till On Mon, Dec 6, 2021 at 11:35 AM Timo Walther <twal...@apache.org> wrote: > Hi Till, > > thanks for starting this discussion. I think this topic should have been > discussed way earlier. I have two questions: > > 1) It might be an implementation detail but where do you expect this > `FlinkVersion` to be located? This is actually a quite important class > that also needs to be made available for other use cases. For the SQL > upgrade story we will definitely need a similar enum. And I think we > have something similar for other tests (see `MigrationVersion`). For > reducing releasing overhead, it would be good to unify all these > "version metadata". > > 2) Deprecations: Shall we also start versioning deprecation decisions? > Esp. for Experimental/PublicEvolving interfaces we should remove > deprecated code in time. We should also let users know when we are > planning to remove code. E.g. clearly indicate that the deprecation will > happen in the next major version? > > Regards, > Timo > > On 06.12.21 10:04, Till Rohrmann wrote: > > Ok, then lets increase the graduation period to 2 releases. If we see > that > > this is super easy for us to do, then we can shorten it in the future. > > > > Cheers, > > Till > > > > On Mon, Dec 6, 2021 at 9:54 AM Chesnay Schepler <ches...@apache.org> > wrote: > > > >> Given that you can delay the graduation if there is a good reason for > >> it, we should be able to cover that case even if the graduation would > >> happen by default after 1 month. > >> > >> That said, personally I would also be in favor of 2 releases; we see > >> plenty of users not upgrading to every single Flink version, and this > >> may give us a bit more coverage. > >> > >> On 06/12/2021 09:20, Ingo Bürk wrote: > >>> Hi Till, > >>> > >>> from my (admittedly limited) experience with how far projects lag > behind > >> in > >>> terms of Flink versions – yes, the combined time it would take to > mature > >>> then seems reasonable enough for a sufficient adoption, IMO. > >>> > >>> Another reason why I think two releases as a default for the last step > >>> makes sense: say you mature an API to PublicEvolving. Typically, there > >> will > >>> be issues found afterwards. Even if you address these in the very next > >>> release cycle, a duration of one release would mean you fully mature > the > >>> API in the same release in which things are still being fixed; > >> intuitively, > >>> it makes sense to me that the step to Public would come after a period > of > >>> no changes needed, however. > >>> > >>> > >>> Ingo > >>> > >>> On Fri, Dec 3, 2021 at 4:55 PM Till Rohrmann <trohrm...@apache.org> > >> wrote: > >>> > >>>> Hi Ingo, thanks for your feedback. > >>>> > >>>> Do you think that two release cycles per graduation step would be long > >>>> enough or should it be longer? > >>>> > >>>> Cheers, > >>>> Till > >>>> > >>>> On Fri, Dec 3, 2021 at 4:29 PM Ingo Bürk <i...@ververica.com> wrote: > >>>> > >>>>> Hi Till, > >>>>> > >>>>> Overall I whole-heartedly agree with the proposals in this FLIP. > Thank > >>>> you > >>>>> for starting this discussion as well! This seems like something that > >>>> could > >>>>> be tested quite nicely with ArchUnit as well; I'll be happy to help > >>>> should > >>>>> the FLIP be accepted. > >>>>> > >>>>>> I would propose per default a single release. > >>>>> The step from PublicEvolving to Public feels more important to me, > and > >> I > >>>>> would personally suggest making this transition a bit longer. We > have a > >>>> bit > >>>>> of a chicken-egg problem here, because the goal of your FLIP is, > >>>>> ultimately, also to motivate faster adoption of new Flink versions, > but > >>>> the > >>>>> status quo prevents that; if we mature APIs too quickly, we risk > losing > >>>> out > >>>>> on important feedback. Therefore, I would propose starting slower > here, > >>>> and > >>>>> rather think about shortening that cycle in the future. > >>>>> > >>>>> > >>>>> Best > >>>>> Ingo > >>>>> > >>>>> On Thu, Dec 2, 2021 at 3:57 PM Till Rohrmann <trohrm...@apache.org> > >>>> wrote: > >>>>>> Hi everyone, > >>>>>> > >>>>>> As promised, here is the follow-up FLIP [1] for discussing how we > can > >>>>>> ensure that newly introduced APIs are being stabilized over time. > This > >>>>> FLIP > >>>>>> is related to FLIP-196 [2]. > >>>>>> > >>>>>> The idea of FLIP-197 is to introduce an API graduation process that > >>>>> forces > >>>>>> us to increase the API stability guarantee unless there is a very > good > >>>>>> reason not to do so. So the proposal is to reverse the process from > >>>>> opt-in > >>>>>> (increasing the stability guarantee explicitly) to opt-out (deciding > >>>> that > >>>>>> an API cannot be graduated with a good reason). > >>>>>> > >>>>>> Since every process breaks if it is not automated, we propose a > richer > >>>>> set > >>>>>> of API stability annotations that can capture enough information so > >>>> that > >>>>> we > >>>>>> can implement a test that fails if we fail to follow the process. > >>>>>> > >>>>>> Looking forward to your feedback. > >>>>>> > >>>>>> Hopefully, we can provide our users a better experience when working > >>>> with > >>>>>> Flink because we offer more stable APIs and make them available > >> faster. > >>>>>> > >>>>>> [1] https://cwiki.apache.org/confluence/x/J5eqCw > >>>>>> [2] https://cwiki.apache.org/confluence/x/IJeqCw > >>>>>> > >>>>>> Cheers, > >>>>>> Till > >>>>>> > >> > >> > > > >