Thanks Alex for the summary, and all for your contributes. I have been waiting for a couple of days, and so far we don't have any objections. So I guess we can move forward with this approach. We can, of course, wait until next week to see if anyone else has any ideas, and then make a final decision to close this discussion :-)
Thanks, Cam On Thu, Nov 28, 2019 at 7:47 AM Alexey Romanenko <aromanenko....@gmail.com> wrote: > Going back to main subject of this thread, I just wanted to make things > clear for all. > > Seems like that everybody is agree that we will *just deprecate* AWS SDK > V1 connectors once the alternative will be available, *don’t remove* them > and still *distribute artifacts* [1] with new releases along with > artifacts with IOs based on AWS SDK V2 [2]. > > Do we need to vote for this or we can accept it without voting if there > are no objections? > > [1] > https://search.maven.org/search?q=a:beam-sdks-java-io-amazon-web-services > [2] > https://search.maven.org/search?q=a:beam-sdks-java-io-amazon-web-services2 > > > On 27 Nov 2019, at 18:44, Kenneth Knowles <k...@google.com> wrote: > > > On Tue, Nov 26, 2019 at 7:00 PM Chamikara Jayalath <chamik...@google.com> > wrote: > >> >> >> On Tue, Nov 26, 2019 at 6:17 PM Reza Rokni <r...@google.com> wrote: >> >>> With regards to @Experimental there are a couple of discussions around >>> its usage ( or rather over usage! ) on dev@. It is something that we >>> need to clean up ( some of those IO are now being used on production env >>> for years!). >>> >> >> I agree that we should move some IO connectors out of experimental state >> and probably this should be a separate discussion. Also, this issue is >> probably more than for IO connectors since there are other parts of the >> code that is marked as experimental as well, sometimes for a good reason >> (for example, SDF). >> > > Yes, let's have a separate thread on @Experimental. There are a ton of > threads that start talking about it, and they all seem to agree it isn't > working. Only one direct thread* that was about something a bit more > specific > https://lists.apache.org/thread.html/302bd51c77feb5c9ce39882316d391535a0fc92e7608a623d9139160@%3Cdev.beam.apache.org%3E > > > > >> On Tue, Nov 26, 2019 at 8:21 AM Alexey Romanenko < >>>>> aromanenko....@gmail.com> wrote: >>>>> >>>>>> AFAICT, all AWS SDK V1 IOs (SnsIO, SqsIO, DynamoDBIO, KinesisIO) are >>>>>> marked as "Experimental". So, it should not be a problem to gracefully >>>>>> deprecate and finally remove them. We already did the similar procedure >>>>>> for >>>>>> “HadoopInputFormatIO”, which was renamed to just “HadoopFormatIO” (since >>>>>> it >>>>>> started to support HadoopOutputFormatI as well). Old >>>>>> “HadoopInputFormatIO” >>>>>> was deprecated and removed after *3 consecutive* Beam releases (as >>>>>> we agreed on mailing list). >>>>>> >>>>>> In the same time, some users for some reasons would not be able or to >>>>>> want to move on AWS SDK V2. So, I’d prefer to just deprecate AWS SDK V1 >>>>>> IOs >>>>>> and accept new features/fixes *only* for V2 IOs. >>>>>> >>>>> >> +1 for deprecating AWS V1 IO connectors as opposed to removing as well >> unless we can confirm that usage is extremely limited. >> > > +1 to deprecate as soon as there is an alternative. > > Trying to measure usage is a good idea, but hard. If the maven coordinates > were different we could look at download numbers and dependencies. > > > Talking about “Experimental” annotation. Sorry in advance If I missed that >>>>>> and switch a subject a bit, but do we have clear rules or an agreement >>>>>> when >>>>>> IO becomes stable and should not be marked as experimental anymore? >>>>>> *Most* of our Java IOs are marked as Experimental but many of them >>>>>> were using in production by real users under real load. Does it mean that >>>>>> they are ready to be stable in terms of API? Perhaps, this topic >>>>>> deserves a >>>>>> new discussion if there are several opinions on that. >>>>>> >>>>> >> Probably, decision to move component APIs (for example, an IO connector) >> out of experimental state should be done on a case-by-case basis. >> > > Let's repeat these good points on a dedicated thread. > > Kenn > > > >> >> Thanks, >> Cham >> >> >>> >>>>>> On 26 Nov 2019, at 00:39, Luke Cwik <lc...@google.com> wrote: >>>>>> >>>>>> Phase I sounds fine. >>>>>> >>>>>> Apache Beam follows semantic versioning and I believe removing the >>>>>> IOs will be a backwards incompatible change unless they were marked >>>>>> experimental which will be a problem for Phase 2. >>>>>> >>>>>> What is the feasibility of making the V1 transforms wrappers around >>>>>> V2? >>>>>> >>>>>> On Mon, Nov 25, 2019 at 1:46 PM Cam Mach <cammac...@gmail.com> wrote: >>>>>> >>>>>>> Hello Beam Devs, >>>>>>> >>>>>>> I have been working on the migration of Amazon Web Services IO >>>>>>> connectors into the new AWS SDK for Java V2. The goal is to have an >>>>>>> updated >>>>>>> implementation aligned with the most recent AWS improvements. So far we >>>>>>> have already migrated the connectors for AWS SNS, SQS and DynamoDB. >>>>>>> >>>>>>> In the meantime some contributions are still going on V1 IOs. So far >>>>>>> we have dealt with those by porting (or asking contributors) to port the >>>>>>> changes into V2 IOs too because we don’t want features of both versions >>>>>>> to >>>>>>> be unaligned but this may quickly become a maintenance issue, so we >>>>>>> want to >>>>>>> discuss a plan to stop supporting (deprecate) V1 IOs and encourage >>>>>>> users to >>>>>>> move to V2. >>>>>>> >>>>>>> Phase I (ASAP): >>>>>>> >>>>>>> - Mark migrated AWS V1 IOs as deprecated >>>>>>> - Document migration path to V2 >>>>>>> >>>>>>> Phase II (end of 2020): >>>>>>> >>>>>>> - Decide a date or Beam release to remove the V1 IOs >>>>>>> - Send a notification to the community 3 months before we remove >>>>>>> them >>>>>>> - Completely get rid of V1 IOs >>>>>>> >>>>>>> >>>>>>> Please let me know what you think or if you see any potential issues? >>>>>>> >>>>>>> Thanks, >>>>>>> Cam Mach >>>>>>> >>>>>>> >>>>>> >>> >>> -- >>> This email may be confidential and privileged. If you received this >>> communication by mistake, please don't forward it to anyone else, please >>> erase all copies and attachments, and please let me know that it has gone >>> to the wrong person. >>> The above terms reflect a potential business arrangement, are provided >>> solely as a basis for further discussion, and are not intended to be and do >>> not constitute a legally binding obligation. No legally binding obligations >>> will be created, implied, or inferred until an agreement in final form is >>> executed in writing by all parties involved. >>> >> >