Thanks for the inputs, Martijn, Jing and Alex.

@Martijn,
Regarding the Scala supports, I personally don't think "a fully striked
through experience in the IDE" is something we want to avoid, especially
given that we are planning to remove the deprecated APIs soon, unlike when
FLINK-29740 was resolved we didn't really know when they would be removed.
Moreover, the even entry point for DataStream Scala
(`StreamExecutionEnvironment`) is not annotated.


@Jing and @Alex,

IIUC, you mean SourceFunction can be annotated as `@Deprecated` in 1.18,
and there's already a PR doing so. However, after the deprecation, there
are still issues that need to be addressed before removing it in 2.0? This
sounds a bit weird. If the API cannot be dropped, which means without this
API some of functions cannot be supported, then how could it be deprecated?
How would we expect users to migrate away from it?


@Jing,

Sounds like it's impractical to deprecate SinkFunction in 1.18. Any
expectation / plan on when / how it can be deprecated / removed?


Best,

Xintong



On Thu, Jun 29, 2023 at 6:12 PM Alexander Fedulov <
alexander.fedu...@gmail.com> wrote:

> Hi Xintong,
>
> Thanks for bringing up this topic. I can provide some details regarding
> the SourceFunction deprecation efforts. Marking SourceFunction as
> deprecated was not possible until now since we have stringent compiler
> checks in flink-examples against using any deprecated APIs. We actually
> merged the migration of all examples to the new FLIP-27-based
> DataGeneratorSource [1] just two days ago [2]. Now the PR marking
> it @Deprecated is finally unblocked [3] (I would be grateful if you could
> merge it).
>
> With regards to the Flink 2.0 scope, I compiled a list of items required to
> be able to drop the SourceFunction API [4] a while ago and as you can see,
> there is still quite some work to be done. Some items [5] might even
> require additions to the new Source API. Overall, I am happy to take
> ownership of completing this work package.
>
> Best,
> Alex
>
>
> [1] https://cwiki.apache.org/confluence/x/9Av1D
> [2] https://github.com/apache/flink/pull/21774
> [3] https://github.com/apache/flink/pull/20049
> [4] https://issues.apache.org/jira/browse/FLINK-28045
> [5] https://issues.apache.org/jira/browse/FLINK-28054
>
> On Thu, 29 Jun 2023 at 10:45, Martijn Visser <martijnvis...@apache.org>
> wrote:
>
> > Hi Xintong,
> >
> > With regards to the deprecation of the Scala APIs, during the PR
> > review it was requested to not mark all APIs as deprecated but only
> > the entry point [1], to avoid a fully striked through experience in
> > the IDE. I think the same idea was applicable on the DataSet API. I
> > think it depends on how formal we want to treat this: if really
> > formal, then we should deprecate them in 1.18. I think in both cases,
> > it's quite well known that they are deprecated. I'm +0 for either way,
> > as long as we're all agreeing that they can be removed in 2.0.
> >
> > With regards to Queryable State and Source/SinkFunction, +1 to mark
> > these as deprecated.
> >
> > Best regards,
> >
> > Martijn
> >
> > [1]
> > https://github.com/apache/flink/pull/21176#pullrequestreview-1159706808
> >
> > On Thu, Jun 29, 2023 at 10:23 AM Xintong Song <tonysong...@gmail.com>
> > wrote:
> > >
> > > Hi devs,
> > >
> > > Looking at the release 2.0 proposals [1], I noticed that many APIs that
> > are
> > > proposed to be removed in 2.0 are not (fully) deprecated yet. We might
> > want
> > > to properly mark them as `@Deprecated` in 1.18 if we agree they should
> be
> > > removed in 2.0. Moreover, according to FLIP-321 [2] (not voted yet but
> > IMO
> > > is close to consensus IMO), a migration period is required after APIs
> are
> > > deprecated and before they can be removed.
> > >
> > > I might not be familiar with the status of all the APIs below. So I'd
> > like
> > > to bring them up and see if there's any concern regarding deprecating
> > them
> > > in 1.18. If there's concern for deprecating API, we can start a
> separate
> > > discussion thread for it. For those with no objections, I'd create JIRA
> > > tickets and try to properly deprecate them in 1.18.
> > >
> > > 1. DataSet API
> > > It's described as "legacy", "soft deprecated" in user documentation
> [3].
> > > However, it's not annotated with `@Deprecated` in codes. According to
> > > FLIP-131 [4], DataSet API should be deprecated when DataStream API and
> > > Table API / SQL meet certain requirements. AFAICS, all the requirements
> > > mentioned in the FLIP are already fulfilled. We should annotate it as
> > > `@Deprecated` now.
> > >
> > > 2. SourceFunction / SinkFunction
> > > They are described as deprecated in the roadmap[5], and I don't find
> > > anything regarding them in user documentation. But they are also not
> > > annotated with `@Deprecated` in codes. TBH, I'm not aware of any formal
> > > decision to deprecate these. AFAICS, the replacement for SourceFunction
> > > (Source) has already been promoted to `@Public`, while the replacement
> > for
> > > SinkFunction (SinkV2) is still `@PublicEvolving`. I found a
> discussion[6]
> > > regarding promoting SinkV2 to `@Public`, but it's unclear to me what
> the
> > > conclusion is.
> > >
> > > 3. Queryable State
> > > It's described as approaching end-of-life in the roadmap [5], but is
> > > neither deprecated in codes nor in user documentation [7]. I also
> found a
> > > discussion [8] about rescuing it from deprecation, and it seems to me
> > there
> > > are more negative opinions than positive ones.
> > >
> > > 4. All Scala APIs
> > > I think we agreed to drop Scala API support in FLIP-265 [9], and have
> > tried
> > > to deprecate them in FLINK-29740 [10]. Also, both user documentation
> and
> > > roadmap[5] shows that scala API supports are deprecated. However,
> AFAICS,
> > > none of the APIs in `flink-streaming-scala` are annotated with
> > > `@Deprecated`, and only `ExecutionEnvironment` and `package` are marked
> > > `@Deprecated` in `flink-scala`.
> > >
> > > Looking forward to your feedback.
> > >
> > > Best,
> > >
> > > Xintong
> > >
> > >
> > > [1] https://cwiki.apache.org/confluence/display/FLINK/2.0+Release
> > >
> > > [2] https://lists.apache.org/thread/vmhzv8fcw2b33pqxp43486owrxbkd5x9
> > >
> > > [3]
> > >
> >
> https://nightlies.apache.org/flink/flink-docs-master/docs/dev/dataset/overview/
> > >
> > > [4]
> > >
> >
> https://cwiki.apache.org/confluence/pages/viewpage.action?pageId=158866741
> > >
> > > [5] https://flink.apache.org/roadmap/
> > >
> > > [6] https://lists.apache.org/thread/q62nj89rrz0t5xtggy5n65on95f2rmmx
> > >
> > > [7]
> > >
> >
> https://nightlies.apache.org/flink/flink-docs-master/docs/dev/datastream/fault-tolerance/queryable_state/
> > >
> > > [8] https://lists.apache.org/thread/9hmwcjb3q5c24pk3qshjvybfqk62v17m
> > >
> > > [9]
> > >
> >
> https://cwiki.apache.org/confluence/display/FLINK/FLIP-265+Deprecate+and+remove+Scala+API+support
> > >
> > > [10] https://issues.apache.org/jira/browse/FLINK-29740
> >
>

Reply via email to