Hi, Jing, I share the same opinion with Xintong. The base class `TimestampExtractor` for these two classes was deprecated in release-1.12[1][2], so deprecating these two subclasses is relatively straightforward.
[1] https://issues.apache.org/jira/browse/FLINK-19453 [2] https://cwiki.apache.org/confluence/display/FLINK/FLIP-95%3A+New+TableSource+and+TableSink+interfaces Best, Jane On Fri, Jul 21, 2023 at 10:19 AM Xintong Song <tonysong...@gmail.com> wrote: > I personally don't think it's necessary. IIUC, we have already decided to > deprecate TableSource / TableSink, and not marking StreamRecordTimestamp > and ExistingField deprecated is just an oversight in carrying out that > decision. > > > Best, > > Xintong > > > > On Fri, Jul 21, 2023 at 7:48 AM Jing Ge <j...@ververica.com.invalid> > wrote: > > > 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 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >