>
> I'm not aware of any decision that has already been made by the community
> regarding after which 1.x minor release will we ship the 2.0 major release.
> I personally don't think it's feasible to avoid 1.19, and even 1.20
> depending on the progress.


Ok, thanks. That clarification helped. I had the same impression but wasn't
sure whether I missed something.

Best,
Matthias

On Fri, Jul 14, 2023 at 5:09 AM Xintong Song <tonysong...@gmail.com> wrote:

> Hi Matthias,
>
> I'm not aware of any decision that has already been made by the community
> regarding after which 1.x minor release will we ship the 2.0 major release.
> I personally don't think it's feasible to avoid 1.19, and even 1.20
> depending on the progress.
>
> I also don't think we should push all the deprecation works in 1.18. In the
> "Deprecate multiple APIs in 1.18" thread [1], I only listed APIs that
> giving the impression already deprecated but are actually not fully (either
> in code or in documentation), in order to clarify the status and to
> properly deprecate the onse should be. We should not decide when to
> deprecate an existing API based on whether we would have a 1.19 or 1.20
> minor release. Deciding to deprecate / remove an API definitely deserves
> thorough discussions and FLIP, which takes time, and I don't think we
> should compromise that for any reason.
>
> I think the potential conflict is between not being able to deprecate APIs
> very soon (needs more discussions, the new replacing API is not ready,
> etc.) and the wish to ship 2.0 on time. Assuming at some point we want to
> ship the 2.0 release, and there are some deprecated APIs that we want to
> remove but have not fulfilled the migration period required by FLIP-321
> [2], I see 3 options to move forward.
> 1. Not removing the deprecated APIs in 2.0, carrying them until 3.0. This
> might be suitable if there are not a lot of deprecated APIs that we need to
> carry and the maintenance overhead is acceptable.
> 2. Postpone the 2.0 release for another minor release. This might be
> suitable if there are a lot of deprecated APIs.
> 3. Considering such APIs as exceptions of FLIP-321. This might be suitable
> if there are only a few of such APIs but have significant maintenance
> overhead. As discussed in FLIP-321, the introduction of the migration
> period effectively means we need to plan for the deprecation / removal of
> APIs early. As it is newly introduced and we haven't given developers the
> chance to plan things ahead, it's probably fair to make exceptions for API
> removal in the 2.0 version bump.
>
> My options are slightly different from what Chesnay has proposed. But I do
> agree that none of these options are great. I guess that's the price for
> not having the deprecation process earlier. Trying to deprecate things
> early is still helpful, because it reduces the number of APIs we need to
> consider when deciding between the options. However, that must not come at
> the price of rush decisions. I'd suggest developers to design / discuss /
> vote the breaking changes at their pace, and we evaluate the status and
> choose between the options later (maybe around the time releasing 1.19).
>
> If there are some contributors who think it makes sense, I will raise it in
> > the 1.18 release channel to postpone 1.18 feature freeze again.
> >
> I don't think postponing 1.18 would help a lot in this case, unless we
> postponed it for another couple of months. I don't think all the API
> changing plans can be finalized in a couple of weeks.
>
> Best,
>
> Xintong
>
>
> [1] https://lists.apache.org/thread/3dw4f8frlg8hzlv324ql7n2755bzs9hy
> [2] https://lists.apache.org/thread/vmhzv8fcw2b33pqxp43486owrxbkd5x9
>
> On Thu, Jul 13, 2023 at 9:41 PM Jing Ge <j...@ververica.com.invalid>
> wrote:
>
> > Hi,
> >
> > Thanks Matthias for starting this discussion and thanks Chesnay for the
> > clarification.
> >
> > I don't want to hijack this discussion but I would suggest postponing the
> > 1.18 feature freeze over postponing the deprecations to 1.19. If there
> are
> > some contributors who think it makes sense, I will raise it in the 1.18
> > release channel to postpone 1.18 feature freeze again.
> >
> > Speaking of the FLIP rules, if we follow it exactly like it is defined,
> we
> > should also write FLIPs when graduating @PublicEvloving APIs to be
> @Public,
> > especially for those APIs who will replace some deprecated APIs.  Doing
> > that is to guarantee that new public APIs will cover all
> > functionalities(including the capability that APIs are easy enough to
> > implement) that deprecated APIs offer, so that migrations can be executed
> > smoothly. With this in mind, we will avoid the big issue we are facing
> now
> > wrt the new Source and Sink API [1].
> >
> > Best regards,
> > Jing
> >
> > [1] https://lists.apache.org/thread/734zhkvs59w2o4d1rsnozr1bfqlr6rgm
> >
> > On Thu, Jul 13, 2023 at 3:01 PM Chesnay Schepler <ches...@apache.org>
> > wrote:
> >
> > > The issue isn't avoiding 1.19.
> > >
> > > The issue is that if things aren't deprecated in 1.18 then for every
> > > breaking change we have to start discussing exemptions from the API
> > > deprecation process, which stipulates that all Public APIs must be
> > > deprecated for at least 2 minor releases before they can be removed
> > > (which is now unsurprisingly backfiring on us).
> > >
> > > So if something isn't deprecated in 1.18 then either:
> > > - we delay 2.0 by at 1 release cycle
> > > - we effectively ignore the newly agreed upon deprecation process for
> 2.0
> > > - we circumvent the newly agreed upon deprecation process by creating 2
> > > minor releases in the same time-frame that we'd usually create 1
> release
> > > in.
> > >
> > > None of these options are great.
> > >
> > > On 13/07/2023 14:03, Matthias Pohl wrote:
> > > > Jing brought up a question in the FLIP-335 discussion thread [1]
> which
> > I
> > > > want to move into a dedicated discussion thread as it's a bit more
> > > general:
> > > > How do we handle the deprecation process of Public APIs for Flink
> 2.0?
> > > >> I just have a related question: Do we need to create a FLIP each
> time
> > > >> when we want to deprecate any classes?
> > > >
> > > > The community defined the requirements of a FLIP [2] in the following
> > > way:
> > > > - Any major new feature, subsystem, or piece of functionality
> > > > - Any change that impacts the public interfaces of the project
> > > >
> > > > public interfaces in this sense are defined as:
> > > > - DataStream and DataSet API, including classes related to that, such
> > as
> > > > StreamExecutionEnvironment
> > > > - Classes marked with the @Public annotation
> > > > - On-disk binary formats, such as checkpoints/savepoints
> > > > - User-facing scripts/command-line tools, i.e. bin/flink, Yarn
> scripts,
> > > > Mesos scripts
> > > > - Configuration settings
> > > > - Exposed monitoring information
> > > >
> > > > I think that this makes sense. There should be a proper discussion on
> > the
> > > > best approach to change public APIs. Additionally, the FLIP should
> be a
> > > way
> > > > to document the changes in the discussion process towards the change
> > > > transparently.
> > > >
> > > > In contrast, the impression I have is that we're trying to push all
> the
> > > > deprecation work into 1.18 (which has its feature freeze date by the
> > end
> > > of
> > > > next week) to avoid having an additional 1.19 minor release. (Correct
> > me
> > > if
> > > > I'm wrong here but that's the impression I'm getting from the ML
> > threads
> > > > I've seen so far.)
> > > >
> > > > I have some concerns on the Flink 2.0 development in this regard. Zhu
> > Zhu
> > > > [4] and Chesnay [5] shared similar concerns in the thread about the
> 2.0
> > > > must-have work items.
> > > >
> > > > Considering that quite a few (or some; I haven't checked in detail to
> > be
> > > > honest) of the changes for 2.0 should require a FLIP and that there
> are
> > > > still some hanging items [6] (Jira issues which are annotated for
> Flink
> > > 2.0
> > > > but have been properly checked, yet): Shouldn't we avoid pushing
> > > everything
> > > > into 1.18? Instead, we should follow the required process properly
> and
> > > > might plan for another 1.19 minor release, instead?
> > > >
> > > > I'm curious how other contributors feel here and sorry in case I have
> > > > misinterpreted the ongoing discussions.
> > > >
> > > > Best,
> > > > Matthias
> > > >
> > > > [1] https://lists.apache.org/thread/48ysrg1rrtl8s1twg9wmx35l201hnc2w
> > > > [2]
> > > >
> > >
> >
> https://cwiki.apache.org/confluence/display/Flink/Flink+Improvement+Proposals#FlinkImprovementProposals-Whatisconsidereda%22majorchange%22thatneedsaFLIP
> > > > ?
> > > > [3] https://lists.apache.org/thread/r0y9syc6k5nmcxvnd0hj33htdpdj9k6m
> > > > [4] https://lists.apache.org/thread/45xm348jr8n6s89jldntv5z3t13hdbn8
> > > > [5] https://lists.apache.org/thread/98wgqrx0sycpskvgpydvkywsoxt0fkc6
> > > > [6] https://lists.apache.org/thread/77hj39ls3kxvx2qd6o09hq1ndtn6hg4y
> > > >
> > >
> > >
> >
>

Reply via email to