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