I mentioned this on the WG call this morning, but I thought I'd add my
thoughts in response to this mailing list item since there may have been
some confusion with my explanation.

First, I think delivering on a time-based schedule is grand. I think
cutting a release once a month might be an aggressive goal, but once we get
in a rhythm I believe it will become easier.

Choosing a version number is an arbitrary decision. But since we appear to
be following Semantic Versioning (https://semver.org/) for our numbering
scheme then I believe it's best to follow those practices for choosing the
next version number. Thusly, the version number will "choose itself" based
on the SemVer tenants. Given the schedule, this *might* result in something
like:

11/1/21: 6.0.1 - PATCH - Only bug fixes, performance changes, tooling
12/1/21: 6.1.0 - MINOR - New feature (Refetch), optionally contains PATCH
items
1/1/22: 6.1.1 - PATCH - Only bug fixes, performance changes, tooling
2/1/22: 6.1.2 - PATCH - Only bug fixes, performance changes, tooling
3/1/22: 6.2.0 - MINOR - New feature (Roles/Permissions), optionally
contains PATCH items
4/1/22: 7.0.0 - MAJOR - "Breaking" backwards compatibility promise. Removal
of an API version or endpoint, forced changes to clients reliant on an API
(like switching from Cookies to Token/Auth on all API versions)
5/1/22: 7.0.1 - PATCH - Only bug fixes, performance changes, tooling
...

There are a plethora of choices in versioning. One alternative we may all
be familiar with is sometimes called CalVer. Ubuntu's scheduled releases
follow this scheme so their versioning represents it as a date 21.04 or
21.10. We could do something similar. The MAJOR version could still be
similar to SemVer, but without the restrictions allowing us to increment
once a MAJOR change has happened (Removal of PERL, for past example). The
versioning scheme and schedule could then resemble:

11/1/21: 6.21.11 - November, 2021
12/1/21: 6.21.12 - December, 2021
1/1/22: 6.22.01 - January, 2022
2/1/22: 6.22.02 - February, 2022
3/1/22: 6.22.03 - March, 2022
4/1/22: 7.0.0 - MAJOR - Arbitrary
5/1/22: 7.22.05 - May, 2022
...

Windows, MacOS pick MAJOR versions in seemingly arbitrary fashion. I recall
Linux choosing their MAJOR versions based on numbers of commits to the
repository.

I'm certainly welcome to whatever scheme we want to implement moving
forward, but if we are going to deviate from SemVer's practices then I
think it should be explicit.

T

On Tue, Oct 26, 2021 at 11:58 AM Zach Hoffman <zrhoff...@apache.org> wrote:

> Seeing 2 differences:
> • Aiming for a minor release every quarter instead of what we aspired
> to previously, new major release every quarter
> • Aiming for a patch release every month at the start of the month
>
> Makes sense to me, +1.
>
>
> -Zach
>
> On Tue, Oct 26, 2021 at 11:44 AM Jeremy Mitchell <mitchell...@gmail.com>
> wrote:
> >
> > Resending to make sure it's clear this is simply a proposal. Please
> provide
> > feedback.
> >
> > In the past, ATC has targeted quarterly official releases but we've
> failed
> > on many occasions due to "holding the bus" for certain features or slow
> > release voting. In the 10/26/2021 TC working group, we discussed that we
> > should stick to this schedule regardless of feature readiness. (remember
> if
> > you want a certain feature that was merged post-release, you can always
> > pull from the master branch as we are all in agreement that master must
> > ALWAYS be releasable).
> >
> > Here is the schedule that was proposed:
> >
> >    - Quarterly minor releases (unless a Major is warranted and will be
> >    determined on case-by-case basis)
> >    - Monthly patch releases
> >
> > Example:
> >
> > 11/1/21: 6.0.1
> > 12/1/21: 6.0.2
> > 1/1/22: 6.1.0
> > 2/1/22: 6.1.1
> > 3/1/22: 6.1.2
> > 4/1/22: 6.2.0
> > 5/1/22: 6.2.1
> > 6/1/22: 6.2.2
> > 7/1/22: 6.3.0
> > 8/1/22: 6.3.1
> > 9/1/22: 6.3.2
> > 10/1/22: 7.0.0 <-- Apparently something "big" or non backwards compatible
> > got merged (i.e. API version removal)
> > 11/1/22: 7.0.1
> > 12/1/22: 7.0.2
> >
> > Please provide feedback on this approach.
> >
> > Thanks,
> >
> > Jeremy
>

Reply via email to