Thanks for starting this discussion Danny I will put my 5 cents here
>From one side yes, support of new Flink release takes time as it was mentioned above However from another side most of the connectors (main/master branches) supported Flink 1.19 even before it was released, same for 1.20 since they were testing against master and supported version branches. There are already nightly/weekly jobs (depending on connector) running against the latest Flink SNAPSHOTs. And it has already helped to catch some blocker issues like[1], [2]. In fact there are more, I need to spend time retrieving all of them. I would also not vote for connector mono-repo release since we recently just splitted it. The thing I would suggest: since we already have nightly/weekly jobs for connectors testing against Flink main repo master branch we could add a requirement before the release of Flink itself having these job results also green. [1] https://issues.apache.org/jira/browse/FLINK-34941 [2] https://issues.apache.org/jira/browse/FLINK-32978#comment-17804459 On Tue, Jun 11, 2024 at 8:24 AM Xintong Song <tonysong...@gmail.com> wrote: > Thanks for bringing this up, Danny. This is indeed an important issue that > the community needs to improve on. > > Personally, I think a mono-repo might not be a bad idea, if we apply > different rules for the connector releases. To be specific: > - flink-connectors 1.19.x contains all connectors that are compatible with > Flink 1.19.x. > - allow not only bug-fixes, but also new features for a third-digit release > (e.g., flink-connectors 1.19.1) > > This would allow us to immediately release flink-connectors 1.19.0 right > after flink 1.19.0 is out, excluding connectors that are no longer > compatible with flink 1.19. Then we can have a couple of flink-connectors > 1.19.x releases, gradually adding the missing connectors back. In the worst > case, this would result in as many releases as having separated connector > repose. The benefit comes from 1) there are chances to combine releasing of > multiple connectors into one release of the mono repo (if they are ready > around the same time), and 2) no need to maintain a compatibility matrix > and worrying about it being out-of-sync with the code base. > > However, one thing I don't like about this approach is that it requires > combining all the repos we just separated from the main-repo to another > mono-repo. That back-and-forth is annoying. So I'm just speaking out my > ideas, but would not strongly insist on this. > > And big +1 for compatibility tools and ci checks. > > Best, > > Xintong > > > > On Tue, Jun 11, 2024 at 2:38 AM David Radley <david_rad...@uk.ibm.com> > wrote: > > > Hi Danny, > > I think your proposal is a good one. This is the approach that we took > > with the Egeria project, firstly taking the connectors out of the main > > repo, then connectors having their own versions that incremented > > organically rather then tied to the core release. > > > > Blue sky thinking - I wonder if we could : > > - have a wizard / utility so the user inputs which Flink level they want > > and which connectors; the utility knows the compatibility matrix and > > downloads the appropriate bundles. > > - have the docs interrogate the core and connector repos to check the > poms > > for the Flink levels and the pr builds to have ?live? docs showing the > > supported Flink levels. PyTorch does something like this for it?s docs. > > > > Kind regards, David. > > > > > > > > From: Danny Cranmer <dannycran...@apache.org> > > Date: Monday, 10 June 2024 at 17:26 > > To: dev <dev@flink.apache.org> > > Subject: [EXTERNAL] [DISCUSS] Connector Externalization Retrospective > > Hello Flink community, > > > > It has been over 2 years [1] since we started externalizing the Flink > > connectors to dedicated repositories from the main Flink code base. The > > past discussions can be found here [2]. The community decided to > > externalize the connectors to primarily 1/ improve stability and speed of > > the CI, and 2/ decouple version and release lifecycle to allow the > projects > > to evolve independently. The outcome of this has resulted in each > connector > > requiring a dedicated release per Flink minor version, which is a burden > on > > the community. Flink 1.19.0 was released on 2024-03-18 [3], the first > > supported connector followed roughly 2.5 months later on 2024-06-06 [4] > > (MongoDB). There are still 5 connectors that do not support Flink 1.19 > [5]. > > > > Two decisions contribute to the high lag between releases. 1/ creating > one > > repository per connector instead of a single flink-connector mono-repo > and > > 2/ coupling the Flink version to the connector version [6]. A single > > connector repository would reduce the number of connector releases from N > > to 1, but would couple the connector CI and reduce release flexibility. > > Decoupling the connector versions from Flink would eliminate the need to > > release each connector for each new Flink minor version, but we would > need > > a new compatibility mechanism. > > > > I propose that from each next connector release we drop the coupling on > the > > Flink version. For example, instead of 3.4.0-1.20 (<connector>.<flink>) > we > > would release 3.4.0 (<connector>). We can model a compatibility matrix > > within the Flink docs to help users pick the correct versions. This would > > mean we would usually not need to release a new connector version per > Flink > > version, assuming there are no breaking changes. Worst case, if breaking > > changes impact all connectors we would still need to release all > > connectors. However, for Flink 1.17 and 1.18 there were only a handful of > > issues (breaking changes), and mostly impacting tests. We could decide to > > align this with Flink 2.0, however I see no compelling reason to do so. > > This was discussed previously [2] as a long term goal once the connector > > APIs are stable. But I think the current compatibility rules support this > > change now. > > > > I would prefer to not create a connector mono-repo. Separate repos gives > > each connector more flexibility to evolve independently, and removing > > unnecessary releases will significantly reduce the release effort. > > > > I would like to hear opinions and ideas from the community. In > particular, > > are there any other issues you have observed that we should consider > > addressing? > > > > Thanks, > > Danny. > > > > [1] > > > > > https://github.com/apache/flink-connector-elasticsearch/commit/3ca2e625e3149e8864a4ad478773ab4a82720241 > > [2] https://lists.apache.org/thread/8k1xonqt7hn0xldbky1cxfx3fzh6sj7h > > [3] > > > > > https://flink.apache.org/2024/03/18/announcing-the-release-of-apache-flink-1.19/ > > [4] https://flink.apache.org/downloads/#apache-flink-connectors-1 > > [5] https://issues.apache.org/jira/browse/FLINK-35131 > > [6] > > > > > https://cwiki.apache.org/confluence/display/FLINK/Externalized+Connector+development#ExternalizedConnectordevelopment-Examples > > > > Unless otherwise stated above: > > > > IBM United Kingdom Limited > > Registered in England and Wales with number 741598 > > Registered office: PO Box 41, North Harbour, Portsmouth, Hants. PO6 3AU > > > -- Best regards, Sergey