I think we're all agreeing so far! Let's say we release 1.12.0 today, the state would be
master: 1.13.0-SNAPSHOT branch-1.12: 1.12.1-SNAPSHOT branch-1.11: 1.11.3-SNAPSHOT We would attempt to keep all three of those in a releasable state, but the moment we release 1.13.0, branch-1.11 drops off the list. It would be great to drop some @Deprecated APIs as well in a structured way. I'm attaching the "table of contents" that I've been keeping for previous discussions on this! I remember there being a concern that "guaranteed maintenance" for a major release should be by time (at least X years, as opposed to Y versions). In practice, this hasn't been a problem (with the cadence of <1 major release a year). I think stating our intention to ensure that a major release receives updates for at least 2 years is a pretty good idea to include -- if we can't meet that goal, there's probably a pretty good reason (like a hopelessly broken major release that should be abandoned). I'll give this a bit more time to think about and maybe we can call a vote, write a policy for the website and move to the next topic on the list :D All my best, Ryan [1]: https://issues.apache.org/jira/browse/AVRO-2687 "Semantic versioning" [2]: https://lists.apache.org/thread/6ppm20v5602w9nqz0nk5qz7mxnnt2tsw "[DISCUSS] version numbers and where changes should land" [3]: https://lists.apache.org/thread/2rfnszd4dk36jxynpj382b1717gbyv1y "Release language modules separately" [4]: https://lists.apache.org/thread/rybf7vb514mtkr7swfld7b06g1kb2r3t "[DISCUSS] Releases, versioning and lifecycle" [5]: https://lists.apache.org/thread/wq2k9lrz6g79j83t2ojwpvsh4zor4qfg "[[DISCUSS] Release maintenance and lifecycle" On Tue, Jul 18, 2023 at 9:54 PM Martin Grigorov <mgrigo...@apache.org> wrote: > > I like Christophe's proposal ! > > On Tue, Jul 18, 2023 at 11:52 AM Christophe Le Saëc <chles...@gmail.com> > wrote: > > > Hello > > I find this proposal relevant. > > > > to clarify : > > > > > From 1.12.0 on, I'd like to propose maintaining *two* major versions > > > (i.e. 1.12.x and 1.11.x). That would allow us to deprecate and modify > > > APIs and give developers one whole major release to switch. > > > > this means to maintain 3 branches (1.13.0-SNAPSHOT (master), 1.12.x and > > 1.11.x) ? > > > > what about ? > > - master (1.13.0-SNAPSHOT) receive new feature + CVE + bug fixes + API > > breaking change (keeping old API with deprecated tag when possible) and > > remove old deprecated API (possibly not compatible with 1.12.x) > > - 1.12.x receive from master new feature + CVE + bug fixes (1.12.n+1 should > > stay compatible with 1.12.n, so, it won't receive breaking change). > > - 1.11.x receive from master only CVE + bug fixes. > > > > thus allow users to adopt new feature even on minor released, and adapt > > smoothly to breaking change on major release. > > (this imply to distinguish between *new feature* and *breaking changes* ?) > > > > Best regards, > > Christophe. > > > > > > Le lun. 17 juil. 2023 à 21:59, Ryan Skraba <r...@skraba.com> a écrit : > > > > > Hello! There's a number of outstanding questions and discussions > > > about releases, maintenance, lifecycle :D I thought it might be > > > productive to make a goal to work towards. > > > > > > Specifically, I couldn't point to a policy about this question being > > > asked on the user@ mailing list: when do we stop maintaining a > > > version? My experience over the last few years has been that we only > > > have one version under development at a time. > > > > > > One of the major brakes in doing this last release was deciding what > > > to do with each and every commit on the master branch -- having a > > > concrete policy and decision on this would definitely help committers > > > decide when, what and where to cherry-pick changes! > > > > > > From 1.12.0 on, I'd like to propose maintaining *two* major versions > > > (i.e. 1.12.x and 1.11.x). That would allow us to deprecate and modify > > > APIs and give developers one whole major release to switch. The > > > "older" major version would receive *only* bug and security fixes, the > > > "newest" major version gets those as well as non-API breaking > > > features. > > > > > > All work is committed to master, and the committer makes the decision > > > how far to cherry-pick, or (in the absence of time) keeps the JIRA > > > fixVersion up-to-date for someone to pick up the intention. > > > > > > That's just one suggestion that seems plausible to me! We can > > > probably do better without much additional effort (on the limited > > > resources we have). What do you think? > > > > > > All my best regards, Ryan > > > > > > On Mon, Jul 17, 2023 at 9:43 PM Ryan Skraba <r...@skraba.com> wrote: > > > > > > > > Hello! While Avro doesn't have an official "end-of-life" statement or > > > > policy, there is no active development on the 1.9 or 1.10 branch. > > > > > > > > Our current policy is to add major features to the next major release > > > > (1.12.0) while bug fixes, CVEs and minor features will be backported > > > > to the next minor release (1.11.3). > > > > > > > > I think we *should* have a policy in place, for projects that depend > > > > on Avro to have a better visiblity. I will bring this up on the > > > > dev@avro.apache.org mailing list -- please feel free to join the > > > > discussion! > > > > > > > > All my best, Ryan > > > > > > > > > > > > On Mon, Jul 17, 2023 at 11:19 AM Pranav Kumar (EXT) via user > > > > <u...@avro.apache.org> wrote: > > > > > > > > > > Hi, > > > > > > > > > > > > > > > > > > > > Could you please share End of life/End of support detail or any EoS > > > criteria that is followed for below: > > > > > > > > > > > > > > > > > > > > Apache Avro version-1.9.2 > > > > > > > > > > > > > > > > > > > > Regards, > > > > > > > > > > Pranav > > > > >