Thanks for clarifying my story Konstantin, this was indeed as we discussed. Thanks Chesnay and Thomas for your input too!
On Thu, 24 Feb 2022 at 02:43, Thomas Weise <t...@apache.org> wrote: > This plan LGTM. > > Thanks, > Thomas > > On Wed, Feb 23, 2022 at 4:28 AM Chesnay Schepler <ches...@apache.org> > wrote: > > > > That sounds fine to me. > > > > On 23/02/2022 10:49, Konstantin Knauf wrote: > > > Hi Chesnay, Hi everyone, > > > > > > I think the idea for the migration is the following (with the example > of > > > ElasticSearch). I talked to Martijn offline. > > > > > > 1. ElasticSearch Connector is released from the core repository with > the > > > Flink 1.15.0 release. No changes. > > > > > > 2. At the beginning of the Flink 1.16 release cycle the connector is > > > removed from `master` of the core repository. It remains on the > > > `release-1.15` branch and earlier release branches. > > > > > > 3. The connector code is "copied" over to the `master` branch of a > > > `flink-connector-elastic-search` repository. Bugfixes to the connector > need > > > to go to both `release-1.15` and before in the core repository and > `master` > > > of the external repository. > > > > > > 4. Once all the processes required to do a release in the > > > `flink-connector-elastic-search` are in place (docs integration, > release > > > automation,...), we release flink-connector-elastic-search:3.0.0, which > > > will be compatible with Flink 1.15. At this point, users can choose > whether > > > they use flink-connector-elastic-search:1.15.x (released from the core > > > repository) or flink-connector-elastic-search:3.0.0 already released > from > > > the external repository with Flink 1.15. The documentation will already > > > advertise the one released from the external repository. This is the > > > "overlap" that Martijn mentioned. > > > > > > 5. From here onwards, the release cycle of the ElasticSearch Connector > is > > > independent. There could be 3.1.0 and 3.0.1 etc. The compatibility > matrix > > > will be part of the connector documentation. > > > > > > 6. If there is a patch release for Flink 1.15-, this will of course > also > > > include flink-connector-elastic-search release from the core > repository. > > > > > > 7. For Flink 1.16, there might or might not be a release of the > > > elastic-search-connector from the external repository. Depends on > > > compatibility. > > > > > > I hope this clarifies it a bit and it makes sense to me. > > > > > > It also makes sense to me to do this as soon as possible (probably > once the > > > release-1.15 branch is cut) with the example of ElasticSearch. > Afterwards > > > (hopefully still in the Flink 1.16 release cycle) we do the same for > other > > > connectors like Kafka, Pulsar, Kinesis. I don't think it's feasible or > > > helpful to make it a condition that this happens for all connectors at > the > > > same time. > > > > > > Cheers and thanks, > > > > > > Konstantin > > > > > > > > > On Sun, Feb 20, 2022 at 7:57 PM Chesnay Schepler <ches...@apache.org> > wrote: > > > > > >> If we don't make a release, I think it would appear as partially > > >> externalized (since the binaries are still only created with Flink > core, > > >> not from the external repository). > > >> > > >> I'm wondering you are referring to when you say "it appear[s]". Users > > >> don't know about it, and contributors can be easily informed about the > > >> current state. Who's opinion are you worried about? > > >> > > >> doing a release [means] that we have then completely externalized the > > >> connector > > >> > > >> In my mind the connector is completely externalized once the connector > > >> project is complete and can act independently from the core repo. That > > >> includes having all the code, working CI and the documentation being > > >> integrated into the Flink website. And /then/ we can do a release. I > > >> don't see how this could work any other way; how could we possibly > argue > > >> that the connector is externalized when development on the connector > > >> isn't even possible in that repository? > > >> > > >> There are also other connectors (like Opensearch and I believe > RabbitMQ) > > >> that will end up straight in their own repositories > > >> > > >> > > >> Which is a bit of a different situation because here the only source > of > > >> this connector will have been that repository. > > >> > > >> Would you prefer to remove a connector in a Flink patch release? > > >> > > >> > > >> No. I think I misread your statement; when you said that there "is 1 > > >> release cycle where the connector both exists in Flink core and the > > >> external repo", you are referring to 1.15, correct? (although this > > >> should also apply to 1.14 so isn't it 2 releases...?) > > >> How I understood it was that we'd keep the connector around until > 1.16, > > >> which would obviously be terrible. > > >> > > >> On 19/02/2022 13:30, Martijn Visser wrote: > > >>> Hi Chesnay, > > >>> > > >>> I think the advantage of also doing a release is that we have then > > >>> completely externalized the connector. If we don't make a release, I > > >> think > > >>> it would appear as partially externalized (since the binaries are > still > > >>> only created with Flink core, not from the external repository). It > would > > >>> also mean that in our documentation we would still point to the > binary > > >>> created with the Flink core release. > > >>> > > >>> There are also other connectors (like Opensearch and I believe > RabbitMQ) > > >>> that will end up straight in their own repositories. Since we also > would > > >>> like to document those, I don't think the situation will be messy. > We can > > >>> also solve it with an information hint in the documentation. > > >>> > > >>> With regards to point 6, do you have an alternative? Would you > prefer to > > >>> remove a connector in a Flink patch release? > > >>> > > >>> Best regards, > > >>> > > >>> Martijn > > >>> > > >>> On Fri, 18 Feb 2022 at 16:17, Chesnay Schepler<ches...@apache.org> > > >> wrote: > > >>>> Why do you want to immediately do a release for the elasticsearch > > >>>> connector? What does that provide us? > > >>>> > > >>>> I'd rather first have a fully working setup and integrated > documentation > > >>>> before thinking about releasing anything. > > >>>> Once we have that we may be able to externalize all connectors > within 1 > > >>>> release cycle and do a clean switch; otherwise we end up with a bit > of a > > >>>> messy situation for users where some connectors use version scheme > A and > > >>>> others B. > > >>>> > > >>>> I also doubt the value of 6). They'll have to update the version > anyway > > >>>> (and discover at some point that the version scheme has changed), > so I > > >>>> don't see what this makes easier. > > >>>> > > >>>> On 18/02/2022 14:54, Martijn Visser wrote: > > >>>>> Hi everyone, > > >>>>> > > >>>>> As a follow-up to earlier discussions [1] [2] to externalize the > > >>>> connectors > > >>>>> from the Flink repository, I would like to propose a plan to > > >> externalize > > >>>>> these connectors. The goal of this plan is to start with moving > > >>>> connectors > > >>>>> to its own repositories without introducing regressions for > connector > > >>>>> developers. > > >>>>> > > >>>>> The plan is as follows: > > >>>>> > > >>>>> 1. A new repository is requested for a connector. > > >>>>> 2. The code for that connector is moved to its individual > repository, > > >>>>> including the commit history > > >>>>> 3. Any first release made for a connector in an external connector > > >>>>> repository starts with major version 3, so 3.0.0. The reason for > that > > >> is > > >>>>> that we want to decouple the Flink releases from a connector > release. > > >> If > > >>>> we > > >>>>> would start with major version 2, it could cause some confusion > because > > >>>>> people could think a Flink 2.0 has been released. This does mean > that > > >>>> each > > >>>>> connector needs to have a compatibility matrix generated, stating > which > > >>>>> version number of the connector is compatible with the correct > Flink > > >>>>> version. > > >>>>> 4. The group id and artifact id for the connector will remain the > same, > > >>>>> only the version is different. > > >>>>> 5. The connector dependencies on the Flink website are updated to > point > > >>>> to > > >>>>> the newly released connector artifact. > > >>>>> 6. If a connector is moved, there is one release cycle where there > will > > >>>> be > > >>>>> binary releases for that connector in both Flink core and from the > > >>>>> connector repository. This is to make Flink users who are upgrading > > >>>>> slightly easier. We will have to make a note in the release notes > that > > >> a > > >>>>> connector has been moved and that a user should update any > references > > >>>> from > > >>>>> the original connector artifact (from the Flink connector) to the > new > > >>>>> connector artifact (from the external conenctor version) > > >>>>> > > >>>>> We propose to first try to execute this plan for the Elasticsearch > > >>>>> connector as follows: > > >>>>> > > >>>>> 1. We wait until the Flink 1.15 release branch is cut > > >>>>> 2. When that's done, the Elasticsearch code (including commit > history) > > >>>> from > > >>>>> Flink's 1.15 release branch will be moved to the > > >>>>> flink-connector-elasticsearch main branch. > > >>>>> 3. When Flink 1.15 is released, we will also release an > Elasticsearch > > >>>>> connector for the external connector repository with version 3.0.0. > > >>>>> 4. Bugfixes or improvements will be made first pointing to the > external > > >>>>> connector repository and will be cherry-picked back to the > release-1.15 > > >>>>> branch in the Flink core repository. > > >>>>> 5. The Elasticsearch code, test etc will be removed from the master > > >>>> branch > > >>>>> in the Flink core repository and dropped with Flink 1.16 > > >>>>> > > >>>>> Looking forward to your thoughts on this! > > >>>>> > > >>>>> Best regards, > > >>>>> > > >>>>> Martijn Visser > > >>>>> https://twitter.com/MartijnVisser82 > > >>>>> > > >>>>> [1] > https://lists.apache.org/thread/bywh947r2f5hfocxq598zhyh06zhksrm > > >>>>> [2] > https://lists.apache.org/thread/bk9f91o6wk66zdh353j1n7sfshh262tr > > >>>>> > > > > > >