Hi Jane, Hi Xintong, The specific discussion of deprecating `StreamRecordTimestamp` & `ExistingField` was kind of hiding in the discussion of the umbrella topic that people might miss out. Does it make sense to start an individual Discussion thread for it like we deprecate any other APIs?
For all APIs that should be marked as @PublicEvolving, dedicated graduation threads are recommended. Best regards, Jing On Wed, Jul 19, 2023 at 10:09 AM Xintong Song <tonysong...@gmail.com> wrote: > Thank you, Jane. > > What you said (preparing a FLIP for ManagedTable related classes, not > deprecating SourceFunctionProvider, and starting a dedicated discussion for > the missing annotations) sounds good to me. > > In addition, if there's no objections from the community on marking > `StreamRecordTimestamp` & `ExistingField` as deprecated, you may consider > creating a Jira ticket for it as a sub-task of FLINK-32557. > > Best, > > Xintong > > > > On Wed, Jul 19, 2023 at 3:48 PM Jane Chan <qingyue....@gmail.com> wrote: > > > Hi Xintong, > > > > > IIUC, you are suggesting to mark the classes with a red background as > > `@Deprecated` in 1.18? > > > > Exactly. They are not marked at the code level but suppose to be > > deprecated. > > > > > - For the ManagedTable related classes, is there any FLIP explicitly > that > > decides to deprecate them? If not, I think it would be nice to have one, > to > > formally decide the deprecation with a vote. I'd expect such a FLIP can > be > > quite lightweight. > > > > Currently, there's no formal FLIP yet. I'd like to prepare one to > initiate > > the deprecation process. > > > > > - For `SourceFunctionProvider`, please beware there are recently some > > objections against deprecating `SourceFunction`, and the code changes > > marking it as `@Deprecated` might be reverted. See [1][2] for more > details. > > So my question is, if `SourceFunction` will not be deprecated until all > > sub-tasks in FLINK-28045 are resolved, do you still think we should > > deprecate `SourceFunctionProvider` now? > > > > Thanks for the reminder. If `SourceFunction` is no longer being > deprecated, > > then `SourceFunctionProvider` also needs to be retained. I have updated > the > > sheet and removed `SourceFunctionProvider`. > > > > > I'm in general +1 to add the missing API annotations. However, I don't > > have the expertise to comment on the classes and suggestd API levels > being > > listed. > > > > I've updated the sheet and added comments on all the APIs that are > > suggested to be marked as PublicEvolving, explaining the reasons. The > rest > > APIs are either util classes or implementations and hence are suggested > to > > be Internal. I can start a discussion about the suggested API level to > find > > developers who can help review them. > > > > Best, > > Jane > > > > On Wed, Jul 19, 2023 at 12:22 PM Xintong Song <tonysong...@gmail.com> > > wrote: > > > > > Thanks for the beautiful sheets, Jane. > > > > > > 1. This sheet < > > > > > > > > > > https://docs.google.com/spreadsheets/d/1dZBNHLuAHYJt3pFU8ZtfUzrYyf2ZFQ6wybDXGS1bHno/edit?usp=sharing > > > > > > > > summarizes the user-facing classes and methods that need to be > > deprecated > > > > under the flink-table module, some of which are marked with a red > > > > background and belong to the APIs that need to be depreciated but are > > not > > > > explicitly marked in the code. This mainly includes legacy table > > > > source/sink, legacy table schema, legacy SQL function, and some > > internal > > > > APIs designed for Paimon but are now obsolete. > > > > > > > IIUC, you are suggesting to mark the classes with a red background as > > > `@Deprecated` in 1.18? > > > > > > - +1 for deprecating `StreamRecordTimestamp` & `ExistingField` in > > 1.18. > > > Based on your description, it seems these were not marked by > mistake. > > > Let's > > > fix them. > > > - For the ManagedTable related classes, is there any FLIP explicitly > > > that decides to deprecate them? If not, I think it would be nice to > > have > > > one, to formally decide the deprecation with a vote. I'd expect > such a > > > FLIP > > > can be quite lightweight. > > > - For `SourceFunctionProvider`, please beware there are recently > some > > > objections against deprecating `SourceFunction`, and the code > changes > > > marking it as `@Deprecated` might be reverted. See [1][2] for more > > > details. > > > So my question is, if `SourceFunction` will not be deprecated until > > all > > > sub-tasks in FLINK-28045 are resolved, do you still think we should > > > deprecate `SourceFunctionProvider` now? > > > > > > 2. In addition, during the process of organizing, it was found that > some > > > > APIs under the flink-table-api-java and flink-table-common modules do > > not > > > > have an explicit API annotation (you can find detailed information in > > > this > > > > sheet < > > > > > > > > > > https://docs.google.com/spreadsheets/d/1e8M0tUtKkZXEd8rCZtZ0C6Ty9QkNaPySsrCgz0vEID4/edit?usp=sharing > > > >). > > > > I suggest explicitly marking the level for these APIs. > > > > > > I'm in general +1 to add the missing API annotations. However, I don't > > have > > > the expertise to comment on the classes and suggestd API levels being > > > listed. > > > > > > 3. As there are still some internal and test code dependencies on these > > > > APIs, can we first gradually migrate these dependencies to > alternative > > > > APIs to make the deprecation process relatively easy? > > > > > > > That makes sense to me. I think the purpose of trying to mark the APIs > as > > > deprecated in 1.18 is to send users the signal early that these APIs > will > > > be removed. As for the internal and test code dependencies, I don't see > > any > > > problem in gradually migrating them. > > > > > > Best, > > > > > > Xintong > > > > > > > > > [1] https://lists.apache.org/thread/734zhkvs59w2o4d1rsnozr1bfqlr6rgm > > > > > > [2] https://issues.apache.org/jira/browse/FLINK-28046 > > > > > > > > > > > > On Wed, Jul 19, 2023 at 11:41 AM Jane Chan <qingyue....@gmail.com> > > wrote: > > > > > > > Hi Xintong, > > > > > > > > Thanks for driving this topic. Regarding the Table API deprecation, I > > can > > > > provide some details to help with the process. > > > > > > > > 1. This sheet > > > > < > > > > > > > > > > https://docs.google.com/spreadsheets/d/1dZBNHLuAHYJt3pFU8ZtfUzrYyf2ZFQ6wybDXGS1bHno/edit?usp=sharing > > > > > > > > > summarizes > > > > the user-facing classes and methods that need to be deprecated > under > > > the > > > > flink-table module, some of which are marked with a red background > > and > > > > belong to the APIs that need to be depreciated but are not > > explicitly > > > > marked in the code. This mainly includes legacy table source/sink, > > > > legacy > > > > table schema, legacy SQL function, and some internal APIs designed > > for > > > > Paimon but are now obsolete. > > > > 2. In addition, during the process of organizing, it was found > that > > > some > > > > APIs under the flink-table-api-java and flink-table-common modules > > do > > > > not > > > > have an explicit API annotation (you can find detailed information > > in > > > > this > > > > sheet > > > > < > > > > > > > > > > https://docs.google.com/spreadsheets/d/1e8M0tUtKkZXEd8rCZtZ0C6Ty9QkNaPySsrCgz0vEID4/edit?usp=sharing > > > > >). > > > > I suggest explicitly marking the level for these APIs. > > > > 3. As there are still some internal and test code dependencies on > > > these > > > > APIs, can we first gradually migrate these dependencies to > > > alternative > > > > APIs to make the deprecation process relatively easy? > > > > > > > > I hope this helps. > > > > > > > > Best, > > > > Jane > > > > > > > > On Tue, Jul 11, 2023 at 12:08 PM Xintong Song <tonysong...@gmail.com > > > > > > wrote: > > > > > > > > > Thanks for bringing this up, Matthias. I've replied to you in the > > other > > > > > thread[1]. > > > > > > > > > > Best, > > > > > > > > > > Xintong > > > > > > > > > > > > > > > [1] > https://lists.apache.org/thread/l3dkdypyrovd3txzodn07lgdwtwvhgk4 > > > > > > > > > > On Mon, Jul 10, 2023 at 8:37 PM Matthias Pohl > > > > > <matthias.p...@aiven.io.invalid> wrote: > > > > > > > > > > > @Xintong did you come across FLINK-3957 [1] when looking for > > > deprecated > > > > > > issues? There are a few subtasks that would require deprecations > as > > > > well > > > > > as > > > > > > far as I can see. For some I'm wondering whether we should add > them > > > to > > > > > the > > > > > > release 2.0 feature list [2] in some way and (as a consequence) > > > missed > > > > > them > > > > > > in FLINK-32557 [3], e.g.: > > > > > > - FLINK-4675 [4] > > > > > > - FLINK-14068 [5] (listed in the release 2.0 feature list [2] but > > not > > > > > > listed in FLINK-32557 [3]) > > > > > > - FLINK-5126 [6] > > > > > > - FLINK-13926 [7] > > > > > > > > > > > > For some other subtasks, I'm not 100% sure whether they still > > apply. > > > > > Others > > > > > > might resolve by removing the DataSet or Scala API. But for the 4 > > > > > mentioned > > > > > > above we might need to deprecate API in 1.18. > > > > > > > > > > > > Matthias > > > > > > > > > > > > [1] https://issues.apache.org/jira/browse/FLINK-3957 > > > > > > [2] > https://cwiki.apache.org/confluence/display/FLINK/2.0+Release > > > > > > [3] https://issues.apache.org/jira/browse/FLINK-32557 > > > > > > > > > > > > [4] https://issues.apache.org/jira/browse/FLINK-4675 > > > > > > [5] https://issues.apache.org/jira/browse/FLINK-14068 > > > > > > [6] https://issues.apache.org/jira/browse/FLINK-5126 > > > > > > [7] https://issues.apache.org/jira/browse/FLINK-13926 > > > > > > > > > > > > On Fri, Jul 7, 2023 at 12:59 PM Jing Ge > <j...@ververica.com.invalid > > > > > > > > > wrote: > > > > > > > > > > > > > Hi Alex, > > > > > > > > > > > > > > I would follow FLIP-197 and try to release them asap depending > on > > > dev > > > > > > > resources and how difficult those issues are. The fastest > > timeline > > > is > > > > > the > > > > > > > period defined in FLIP-197 in ideal conditions. > > > > > > > > > > > > > > Best regards, > > > > > > > Jing > > > > > > > > > > > > > > On Fri, Jul 7, 2023 at 12:20 PM Alexander Fedulov < > > > > > > > alexander.fedu...@gmail.com> wrote: > > > > > > > > > > > > > > > @Xintong > > > > > > > > > - IIUC, the testing scenario you described is like blocking > > the > > > > > > source > > > > > > > > for > > > > > > > > > proceeding (emit data, finish, etc.) until a checkpoint is > > > > > finished. > > > > > > > > > > > > > > > > It is more tricky than that - we need to prevent the Sink > from > > > > > > receiving > > > > > > > a > > > > > > > > checkpoint barrier until the Source is done emitting a given > > set > > > of > > > > > > > > records. In > > > > > > > > the current tests, which are also used for V2 Sinks, > > > SourceFunction > > > > > > > > controls > > > > > > > > when the Sink is "allowed" to commit by holding the > checkpoint > > > lock > > > > > > while > > > > > > > > producing the records. The lock is not available in the new > > > Source > > > > by > > > > > > > > design > > > > > > > > and we need a solution that provides the same functionality > > > > (without > > > > > > > > modifying > > > > > > > > the Sinks). I am currently checking if a workaround is at all > > > > > possible > > > > > > > > without > > > > > > > > adjusting anything in the Source interface. > > > > > > > > > > > > > > > > > I may not have understood all the details, but based on > what > > > you > > > > > > > > described > > > > > > > > > I'd hesitate to block the deprecation / removal of > > > SourceFunction > > > > > on > > > > > > > > this. > > > > > > > > > > > > > > > > I don't think we should, just wanted to highlight that there > > are > > > > some > > > > > > > > unknowns > > > > > > > > with respect to estimating the amount of work required. > > > > > > > > > > > > > > > > @Jing > > > > > > > > I want to understand in which release would you target > > graduation > > > > of > > > > > > the > > > > > > > > mentioned connectors to @Public/@PublicEvolving - basically > the > > > > > > > anticipated > > > > > > > > timeline of the steps in both options with respect to > releases. > > > > > > > > > > > > > > > > Best, > > > > > > > > Alex > > > > > > > > > > > > > > > > On Fri, 7 Jul 2023 at 10:53, Xintong Song < > > tonysong...@gmail.com > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > Thanks all for the discussion. I've created FLINK-32557 for > > > this. > > > > > > > > > > > > > > > > > > Best, > > > > > > > > > > > > > > > > > > Xintong > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Thu, Jul 6, 2023 at 1:00 AM Jing Ge > > > > <j...@ververica.com.invalid > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > Hi Alex, > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > 3. remove SinkFunction. > > > > > > > > > > > Which steps do you imply for the 1.18 release and for > the > > > 2.0 > > > > > > > > release? > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > for 2.0 release. 1.18 will be released soon. > > > > > > > > > > > > > > > > > > > > Best regards, > > > > > > > > > > Jing > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Wed, Jul 5, 2023 at 1:08 PM Alexander Fedulov < > > > > > > > > > > alexander.fedu...@gmail.com> wrote: > > > > > > > > > > > > > > > > > > > > > @Jing > > > > > > > > > > > Just to clarify, when you say: > > > > > > > > > > > > > > > > > > > > > > 3. remove SinkFunction. > > > > > > > > > > > Which steps do you imply for the 1.18 release and for > the > > > 2.0 > > > > > > > > release? > > > > > > > > > > > > > > > > > > > > @Xintong > > > > > > > > > > > A side note - with the new Source API we lose the > ability > > > to > > > > > > > control > > > > > > > > > > > checkpointing from the source since there is no lock > > > anymore. > > > > > > This > > > > > > > > > > > functionality > > > > > > > > > > > is currently used in a variety of tests for the Sinks - > > the > > > > > tests > > > > > > > > that > > > > > > > > > > rely > > > > > > > > > > > on tight > > > > > > > > > > > synchronization between specific elements passed from > the > > > > > source > > > > > > > to > > > > > > > > > the > > > > > > > > > > > sink before > > > > > > > > > > > allowing a checkpoint to complete (see FiniteTestSource > > > [1]). > > > > > > Since > > > > > > > > > > FLIP-27 > > > > > > > > > > > Sources rely > > > > > > > > > > > on decoupling via the mailbox, without exposing the > lock, > > > it > > > > is > > > > > > not > > > > > > > > > > > immediately clear > > > > > > > > > > > if it is possible to achieve the same functionality > > without > > > > > major > > > > > > > > > > > extensions in the > > > > > > > > > > > runtime for such testing purposes. My hope initially > was > > > that > > > > > > only > > > > > > > > the > > > > > > > > > > > legacy Sinks > > > > > > > > > > > relied on this - this would have made it possible to > drop > > > > > > > > > > > SourceFunction+SinkFunction > > > > > > > > > > > together, but, in fact, it also already became part of > > the > > > > new > > > > > > > SinkV2 > > > > > > > > > > > testing IT suits > > > > > > > > > > > [2]. Moreover, I know of at least one major connector > > that > > > > also > > > > > > > > relies > > > > > > > > > on > > > > > > > > > > > it for > > > > > > > > > > > verifying committed sink metadata for a specific set of > > > > records > > > > > > > > > (Iceberg) > > > > > > > > > > > [3]. In my > > > > > > > > > > > estimation this currently presents a major blocker for > > the > > > > > > > > > SourceFunction > > > > > > > > > > > removal. > > > > > > > > > > > > > > > > > > > > > > [1] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://github.com/apache/flink/blob/master/flink-test-utils-parent/flink-test-utils/src/main/java/org/apache/flink/streaming/util/FiniteTestSource.java > > > > > > > > > > > [2] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://github.com/apache/flink/blob/master/flink-connectors/flink-connector-files/src/test/java/org/apache/flink/connector/file/sink/StreamingExecutionFileSinkITCase.java#L132 > > > > > > > > > > > [3] > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://github.com/apache/iceberg/blob/master/flink/v1.17/flink/src/test/java/org/apache/iceberg/flink/source/BoundedTestSource.java#L75C1-L85C2 > > > > > > > > > > > > > > > > > > > > > > Best, > > > > > > > > > > > Alex > > > > > > > > > > > > > > > > > > > > > > On Wed, 5 Jul 2023 at 10:47, Chesnay Schepler < > > > > > > ches...@apache.org> > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > There's a whole bunch of metric APIs that would need > to > > > be > > > > > > > > > deprecated. > > > > > > > > > > > > That is of course if the metric FLIPs are being > > accepted. > > > > > > > > > > > > > > > > > > > > > > > > Which makes me wonder if we aren't doing things the > > wrong > > > > way > > > > > > > > around; > > > > > > > > > > > > shouldn't the decision to deprecate an API be part of > > the > > > > > FLIP > > > > > > > > > > > discussion? > > > > > > > > > > > > > > > > > > > > > > > > On 05/07/2023 07:39, Xintong Song wrote: > > > > > > > > > > > > > Thanks all for the discussion. > > > > > > > > > > > > > > > > > > > > > > > > > > It seems to me there's a consensus on marking the > > > > following > > > > > > as > > > > > > > > > > > deprecated > > > > > > > > > > > > > in 1.18: > > > > > > > > > > > > > - DataSet API > > > > > > > > > > > > > - SourceFunction > > > > > > > > > > > > > - Queryable State > > > > > > > > > > > > > - All Scala APIs > > > > > > > > > > > > > > > > > > > > > > > > > > More time is needed for deprecating SinkFunction. > > > > > > > > > > > > > > > > > > > > > > > > > > I'll leave this discussion open for a few more > days. > > > And > > > > if > > > > > > > > there's > > > > > > > > > > no > > > > > > > > > > > > > objections, I'll create JIRA tickets accordingly. > > > > > > > > > > > > > > > > > > > > > > > > > > Best, > > > > > > > > > > > > > > > > > > > > > > > > > > Xintong > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Wed, Jul 5, 2023 at 1:34 PM Xintong Song < > > > > > > > > tonysong...@gmail.com > > > > > > > > > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > > > > > > > > > > > > > > >> Thanks for the input, Jing. I'd also be +1 for > > option > > > 1. > > > > > > > > > > > > >> > > > > > > > > > > > > >> Best, > > > > > > > > > > > > >> > > > > > > > > > > > > >> Xintong > > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > > >> > > > > > > > > > > > > >> On Mon, Jul 3, 2023 at 7:20 PM Jing Ge > > > > > > > > <j...@ververica.com.invalid > > > > > > > > > > > > > > > > > > > > > > wrote: > > > > > > > > > > > > >> > > > > > > > > > > > > >>> Hi Xingtong, > > > > > > > > > > > > >>> > > > > > > > > > > > > >>> Option 1, secure plan would be: > > > > > > > > > > > > >>> > > > > > > > > > > > > >>> 1. graduate kafka, File, JDBC connectors to > @Public > > > > > > > > > > > > >>> 2. graduate SinkV2 to @Public > > > > > > > > > > > > >>> 3. remove SinkFunction. > > > > > > > > > > > > >>> > > > > > > > > > > > > >>> Option 2, risky plan but at a fast pace: > > > > > > > > > > > > >>> > > > > > > > > > > > > >>> 1. graduate SinkV2 to @Public and expecting more > > > > > > maintenance > > > > > > > > > effort > > > > > > > > > > > > since > > > > > > > > > > > > >>> there are many known and unsolved issues. > > > > > > > > > > > > >>> 2. remove SinkFunction. > > > > > > > > > > > > >>> 3. It depends on the connectors' contributors > > whether > > > > > > > > connectors > > > > > > > > > > can > > > > > > > > > > > > >>> upgrade to Flink 2.0, since we moved forward with > > > > SinkV2 > > > > > > API > > > > > > > > > > without > > > > > > > > > > > > >>> taking > > > > > > > > > > > > >>> care of implementations in external connectors. > > > > > > > > > > > > >>> > > > > > > > > > > > > >>> I am ok with both of them and personally prefer > > > option > > > > 1. > > > > > > > > > > > > >>> > > > > > > > > > > > > >>> Best regards, > > > > > > > > > > > > >>> Jing > > > > > > > > > > > > >>> > > > > > > > > > > > > >>> > > > > > > > > > > > > >>> On Fri, Jun 30, 2023 at 3:41 AM Xintong Song < > > > > > > > > > > tonysong...@gmail.com> > > > > > > > > > > > > >>> wrote: > > > > > > > > > > > > >>> > > > > > > > > > > > > >>>> I see. Thanks for the explanation. I may have > not > > > > looked > > > > > > > into > > > > > > > > > this > > > > > > > > > > > > >>> deeply > > > > > > > > > > > > >>>> enough, and would trust the decision from you > and > > > the > > > > > > > > community > > > > > > > > > > > > members > > > > > > > > > > > > >>> who > > > > > > > > > > > > >>>> participated in the discussion & vote. > > > > > > > > > > > > >>>> > > > > > > > > > > > > >>>> Best, > > > > > > > > > > > > >>>> > > > > > > > > > > > > >>>> Xintong > > > > > > > > > > > > >>>> > > > > > > > > > > > > >>>> > > > > > > > > > > > > >>>> > > > > > > > > > > > > >>>> On Thu, Jun 29, 2023 at 10:28 PM Alexander > > Fedulov < > > > > > > > > > > > > >>>> alexander.fedu...@gmail.com> wrote: > > > > > > > > > > > > >>>> > > > > > > > > > > > > >>>>>> However, I'm not sure about 2. > > > > > > > > > > > > >>>>> I am not aware of a bylaw that states the > > specific > > > > > > > > requirements > > > > > > > > > > in > > > > > > > > > > > > >>> order > > > > > > > > > > > > >>>> to > > > > > > > > > > > > >>>>> mark something as @Deprecated. My understanding > > > from > > > > > the > > > > > > > > > > discussion > > > > > > > > > > > > >>> and > > > > > > > > > > > > >>>> the > > > > > > > > > > > > >>>>> vote was that the community recognizes the > > > necessity > > > > to > > > > > > > make > > > > > > > > it > > > > > > > > > > > > >>> explicit > > > > > > > > > > > > >>>>> that > > > > > > > > > > > > >>>>> the usage of the SourceFunction API is > > discouraged. > > > > > This > > > > > > > can > > > > > > > > > > > actually > > > > > > > > > > > > >>>>> stimulate > > > > > > > > > > > > >>>>> authors of connectors that rely on this very > > > specific > > > > > and > > > > > > > > > > > > non-baseline > > > > > > > > > > > > >>>>> functionality to contribute extensions to the > new > > > > > Source > > > > > > > API > > > > > > > > > > > > >>> themselves > > > > > > > > > > > > >>>> in > > > > > > > > > > > > >>>>> order to > > > > > > > > > > > > >>>>> close the gap. ExternallyInducedSource, for > > > instance, > > > > > was > > > > > > > > > driven > > > > > > > > > > by > > > > > > > > > > > > >>>> Pravega > > > > > > > > > > > > >>>>> to > > > > > > > > > > > > >>>>> begin with, since it was only needed for their > > > > purposes > > > > > > > [1]. > > > > > > > > We > > > > > > > > > > are > > > > > > > > > > > > >>> not > > > > > > > > > > > > >>>>> removing > > > > > > > > > > > > >>>>> anything - until 2.0 everything will continue > to > > > work > > > > > and > > > > > > > we > > > > > > > > > can > > > > > > > > > > > work > > > > > > > > > > > > >>> on > > > > > > > > > > > > >>>>> resolving the limitations until then, I > > personally > > > > > don't > > > > > > > see > > > > > > > > a > > > > > > > > > > big > > > > > > > > > > > > >>> issue > > > > > > > > > > > > >>>>> here. > > > > > > > > > > > > >>>>> > > > > > > > > > > > > >>>>>> Do you think it is feasible to resolve them by > > the > > > > > > feature > > > > > > > > > > freeze > > > > > > > > > > > > >>> date > > > > > > > > > > > > >>>> of > > > > > > > > > > > > >>>>> 1.18? > > > > > > > > > > > > >>>>> No, these are rather complex additions that > would > > > > > > probably > > > > > > > > > > require > > > > > > > > > > > > >>>> FLIP(s). > > > > > > > > > > > > >>>>> [1] > > > > > > > > > > > > >>>>> > > > > > > > > > > > > >>>>> > > > > > > > > > > > > >>> > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > https://flink.apache.org/2022/01/20/pravega-flink-connector-101/#checkpoint-integration > > > > > > > > > > > > >>>>> On Thu, 29 Jun 2023 at 14:25, Xintong Song < > > > > > > > > > > tonysong...@gmail.com> > > > > > > > > > > > > >>>> wrote: > > > > > > > > > > > > >>>>>> Thanks for the explanation, Alex. > > > > > > > > > > > > >>>>>> > > > > > > > > > > > > >>>>>> Not blocking the deprecation on 1 & 3 makes > > sense > > > to > > > > > me. > > > > > > > > > > However, > > > > > > > > > > > > >>> I'm > > > > > > > > > > > > >>>> not > > > > > > > > > > > > >>>>>> sure about 2. > > > > > > > > > > > > >>>>>> > > > > > > > > > > > > >>>>>> It sounds to me that, without FLINK-28051 & > > > > > FLINK-28054, > > > > > > > > some > > > > > > > > > of > > > > > > > > > > > the > > > > > > > > > > > > >>>>>> connectors cannot migrate to the new Source > API, > > > or > > > > at > > > > > > > least > > > > > > > > > > > further > > > > > > > > > > > > >>>>>> investigation is needed to understand the > > > situation. > > > > > If > > > > > > > this > > > > > > > > > is > > > > > > > > > > > the > > > > > > > > > > > > >>>> case, > > > > > > > > > > > > >>>>>> we probably should not deprecate the API until > > > these > > > > > > > issues > > > > > > > > > are > > > > > > > > > > > > >>>> resolved. > > > > > > > > > > > > >>>>>> Do you think it is feasible to resolve them by > > the > > > > > > feature > > > > > > > > > > freeze > > > > > > > > > > > > >>> date > > > > > > > > > > > > >>>> of > > > > > > > > > > > > >>>>>> 1.18? > > > > > > > > > > > > >>>>>> > > > > > > > > > > > > >>>>>> Best, > > > > > > > > > > > > >>>>>> > > > > > > > > > > > > >>>>>> Xintong > > > > > > > > > > > > >>>>>> > > > > > > > > > > > > >>>>>> > > > > > > > > > > > > >>>>>> > > > > > > > > > > > > >>>>>> On Thu, Jun 29, 2023 at 8:02 PM Alexander > > Fedulov > > > < > > > > > > > > > > > > >>>>>> alexander.fedu...@gmail.com> wrote: > > > > > > > > > > > > >>>>>> > > > > > > > > > > > > >>>>>>> @Xintong > > > > > > > > > > > > >>>>>>> The original discussion [1] and vote [2] > > > converged > > > > on > > > > > > the > > > > > > > > > idea > > > > > > > > > > > > >>> that > > > > > > > > > > > > >>>> it > > > > > > > > > > > > >>>>> is > > > > > > > > > > > > >>>>>>> better > > > > > > > > > > > > >>>>>>> to make it clear to the users that they > should > > > stop > > > > > > using > > > > > > > > > > > > >>>>> SourceFunction > > > > > > > > > > > > >>>>>>> since it > > > > > > > > > > > > >>>>>>> is going away. The longer we do not have this > > > > > > indication, > > > > > > > > the > > > > > > > > > > > more > > > > > > > > > > > > >>>> user > > > > > > > > > > > > >>>>>>> implementations will be based on it and the > > more > > > > pain > > > > > > > will > > > > > > > > be > > > > > > > > > > > > >>> induced > > > > > > > > > > > > >>>>>> when > > > > > > > > > > > > >>>>>>> we > > > > > > > > > > > > >>>>>>> finally drop it. Users now have an > alternative > > > API > > > > > that > > > > > > > > they > > > > > > > > > > > > >>> should > > > > > > > > > > > > >>>> use > > > > > > > > > > > > >>>>>> and > > > > > > > > > > > > >>>>>>> which > > > > > > > > > > > > >>>>>>> is fully functional, from that perspective > > > nothing > > > > > > blocks > > > > > > > > > > marking > > > > > > > > > > > > >>> it > > > > > > > > > > > > >>>>>>> @Deprecated. > > > > > > > > > > > > >>>>>>> As for the remaining work items - there are > > > > primarily > > > > > > > three > > > > > > > > > > > kinds: > > > > > > > > > > > > >>>>>>> > > > > > > > > > > > > >>>>>>> 1. Where Flink internally uses > SourceFunction, > > > > > without > > > > > > > > > exposing > > > > > > > > > > > > >>> this > > > > > > > > > > > > >>>>> fact > > > > > > > > > > > > >>>>>>> to the > > > > > > > > > > > > >>>>>>> outside world: > > > > > > > > > > > > >>>>>>> - FLINK-28050 [3] > > > > > > > > > > > > >>>>>>> - FLINK-28229 [4] > > > > > > > > > > > > >>>>>>> - FLINK-28048 [5] > > > > > > > > > > > > >>>>>>> > > > > > > > > > > > > >>>>>>> 2. Very specific edge cases that might not be > > > > covered > > > > > > by > > > > > > > > the > > > > > > > > > > > > >>> Source > > > > > > > > > > > > >>>> API > > > > > > > > > > > > >>>>>> as > > > > > > > > > > > > >>>>>>> is: > > > > > > > > > > > > >>>>>>> - FLINK-28054 [6] > > > > > > > > > > > > >>>>>>> - FLINK-28051 [7] > > > > > > > > > > > > >>>>>>> > > > > > > > > > > > > >>>>>>> 3. Usability improvements - something that > was > > > > easily > > > > > > > > doable > > > > > > > > > > with > > > > > > > > > > > > >>>>>>> SourceFunction, > > > > > > > > > > > > >>>>>>> but requires deep knowledge of the new, > > > > > > significantly > > > > > > > > > more > > > > > > > > > > > > >>>> complex, > > > > > > > > > > > > >>>>>>> Source API > > > > > > > > > > > > >>>>>>> to achieve: > > > > > > > > > > > > >>>>>>> - FLINK-28056 [8] > > > > > > > > > > > > >>>>>>> > > > > > > > > > > > > >>>>>>> In my mind, none of those are blockers for > > > > proceeding > > > > > > > with > > > > > > > > > > adding > > > > > > > > > > > > >>> the > > > > > > > > > > > > >>>>>>> @Deprecated > > > > > > > > > > > > >>>>>>> annotation: > > > > > > > > > > > > >>>>>>> (1) is a simple case of encapsulation, > > internals > > > > > should > > > > > > > not > > > > > > > > > > > > >>> concern > > > > > > > > > > > > >>>> the > > > > > > > > > > > > >>>>>> API > > > > > > > > > > > > >>>>>>> users > > > > > > > > > > > > >>>>>>> (2) is really only relevant for "exotic" use > > > cases. > > > > > > Does > > > > > > > > not > > > > > > > > > > mean > > > > > > > > > > > > >>> we > > > > > > > > > > > > >>>>>> should > > > > > > > > > > > > >>>>>>> not > > > > > > > > > > > > >>>>>>> consider those, but since it is irrelevant > for > > > > 99.9% > > > > > of > > > > > > > the > > > > > > > > > > > > >>> users, I > > > > > > > > > > > > >>>> do > > > > > > > > > > > > >>>>>> not > > > > > > > > > > > > >>>>>>> think > > > > > > > > > > > > >>>>>>> we should get stuck here. > > > > > > > > > > > > >>>>>>> (3) is purely a nice to have. Formally > > speaking, > > > > all > > > > > of > > > > > > > the > > > > > > > > > > tools > > > > > > > > > > > > >>> are > > > > > > > > > > > > >>>>>>> there, it is > > > > > > > > > > > > >>>>>>> just that due to the complexity of the new > > Source > > > > API > > > > > > > some > > > > > > > > > > > > >>> "simple" > > > > > > > > > > > > >>>>>> things > > > > > > > > > > > > >>>>>>> become > > > > > > > > > > > > >>>>>>> non-trivial and ideally we want to do better > > > here. > > > > > > > > > > > > >>>>>>> > > > > > > > > > > > > >>>>>>> [1] > > > > > > > > > > > > >>> > > > > > > > > > > https://lists.apache.org/thread/d6cwqw9b3105wcpdkwq7rr4s7x4ywqr9 > > > > > > > > > > > > >>>>>>> [2] > > > > > > > > > > > > >>> > > > > > > > > > > https://lists.apache.org/thread/kv9rj3w2rmkb8jtss5bqffhw57or7v8v > > > > > > > > > > > > >>>>>>> [3] > > > > > https://issues.apache.org/jira/browse/FLINK-28050 > > > > > > > > > > > > >>>>>>> [4] > > > > > https://issues.apache.org/jira/browse/FLINK-28229 > > > > > > > > > > > > >>>>>>> [5] > > > > > https://issues.apache.org/jira/browse/FLINK-28048 > > > > > > > > > > > > >>>>>>> [6] > > > > > https://issues.apache.org/jira/browse/FLINK-28054 > > > > > > > > > > > > >>>>>>> [7] > > > > > https://issues.apache.org/jira/browse/FLINK-28051 > > > > > > > > > > > > >>>>>>> [8] > > > > > https://issues.apache.org/jira/browse/FLINK-28056 > > > > > > > > > > > > >>>>>>> > > > > > > > > > > > > >>>>>>> On Thu, 29 Jun 2023 at 13:13, Xintong Song < > > > > > > > > > > > tonysong...@gmail.com > > > > > > > > > > > > >>>>>> wrote: > > > > > > > > > > > > >>>>>>>> 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 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >