+1 for the 2nd option. I met the same problem in another project and just noticed that cherry picking a lot of versions is a nightmare (especially when the codebase evolves rapidly, which means CONFLICT).
The LTS option helps us guide users to migrate in prod while we don't have to slow down developing. I found Java grows well in this pattern. BTW, shall we also bring this thread to users@ list and listen to our users with their real-world requirements? Best, tison. Piotr Nowojski <pnowoj...@apache.org> 于2021年11月11日周四 下午9:01写道: > Hi Community, > > I would like to raise one point that was bothering me for quite a while. > Namely this our official policy: > > > Update Policy for old releases > > As of March 2017, the Flink community decided to support the current and > previous minor > > release with bugfixes. If 1.2.x is the current release, 1.1.y is the > previous minor supported > > release. Both versions will receive bugfixes for critical issues. > > https://flink.apache.org/downloads.html#update-policy-for-old-releases > > Plus I think unofficial arrangement, that we are usually back porting bug > fixes to two past releases (so one more compared to the official support). > > Officially supporting two past releases is simply not good enough for some > users. Given that we are aiming for ~3 releases every year, that would mean > users have to upgrade almost twice a year to keep up with our supported > releases. While in reality, the upgrade process is often quite time > consuming for the users, and requires significant efforts. On the mailing > list I regularly see users struggling with a bug that has been fixed, but > not for the versions that they are stuck with. > > Having said that, I would like to propose to extend the time frame for our > supported versions in one way or another. I think we should aim to provide > support for something between 12 and 18 months. I can see two options for > how to achieve that: > > 1. Extend the number of supported releases to at least 4 (latest plus three > past releases). > 2. Introduce some concept of time based Long Term Support. For example > periodically marking some flink version as LTS with 18 months of support > and additionally maintaining our current policy of supporting two latest > releases. This would limit the number of Flink versions that we need to > support to just three. > > Expanding a little bit on the 2nd option, I think we would also need to > provide a couple of months for users to upgrade from the previous LTS to > the new LTS version. In practice I would imagine it working like that: > > Flink 1.11.x being the old LTS version that is going to be phased out very > soon. > Flink 1.14.x being the new LTS version > Flink 1.13.x maintained as regular release > > To give enough time for users to migrate between 1.11.x and 1.14.x, we > would drop the 1.11.x support with 1.15.0 release. > > I would be in favour of the 2nd option due to two reasons: > - it would provide the ~18 months coverage with fewer supported releases > - deciding when to drop old and create new LTS I would base on the time > since the last LTS release, not the number of releases. This way users > could make long term plans for upgrades regardless of how frequently we > manage to create a new release. If we suddenly decide to create 4 or 6 > releases a year, LTS users wouldn't be affected. > > What do you think? > > Best, > Piotrek >