sure, seems like what we originally agreed to :)
On Tue, Nov 2, 2021 at 3:17 PM Jeremy Mitchell <mitchell...@gmail.com> wrote: > OK, so can we agree on this? > > - minor/major releases every start of a quarter (1/1, 4/1, 7/1, 10/1) > - patch releases in between as determined by release manager > > by that logic, we may have N patch releases between now and 12/31 and on > 1/1 we will have 6.1.0 (or 7.0 if a major is warranted). > > Jeremy > > > > On Wed, Oct 27, 2021 at 12:52 PM ocket 8888 <ocket8...@gmail.com> wrote: > > > Fortunately bugfixes rarely require migrations, those are usually only > for > > new features, or backporting would probably be impossible. > > > > On Wed, Oct 27, 2021 at 10:06 AM Jeremy Mitchell <mitchell...@gmail.com> > > wrote: > > > > > Just to be clear, cherry-picks (aka backports) (from master to the > > release > > > branch) should be limited to bug fixes and would only apply to patch > > > releases (i.e. 6.0.1) and I would expect the release manager to > determine > > > if the cherry-pick is safe or not. Yes, some can be very messy and > > > dangerous and IMO those should probably be punted to the next release > > > branch. > > > > > > jeremy > > > > > > On Wed, Oct 27, 2021 at 8:59 AM Gray, Jonathan > > > <jonathan_g...@comcast.com.invalid> wrote: > > > > > > > > > why not instead ask “Is it good enough?” and “Is it better than > > what > > > we > > > > presently have?” as often as possible. > > > > > > > > > may not help very much, because fixing a bug is always "better than > > > what > > > > we > > > > presently have". > > > > > > > > Not always. Sometimes the risks entailed with cherry-picking and > > > > repatching bugfixes isn’t small. Sometimes bugfixes rely on subtle > > side > > > > effects or behaviors not captured in the PR. It’s not safe to assume > > > that > > > > taking code out of the context in which it was written and tested to > be > > > > inherently stable or better. > > > > > > > > TO specifically has a problem with the idea of cherry-picking with > TODB > > > > migrations. Since the migrations are linear and there still has to > be > > a > > > > forward path from one of these cherry-picked releases, you could end > up > > > in > > > > a situation where you’ve got database schema conflicts introduced by > a > > > > cherry-pick. It feels like the desire I’m reading here is wanting > the > > > > benefits of adopting GitFlow, while trying to still use GitHubFlow in > > the > > > > repo. > > > > > > > > Jonathan G > > > > > > > > From: ocket 8888 <ocket8...@gmail.com> > > > > Date: Tuesday, October 26, 2021 at 10:23 PM > > > > To: dev@trafficcontrol.apache.org <dev@trafficcontrol.apache.org> > > > > Subject: Re: [EXTERNAL] Re: [PROPOSAL] ATC Release Schedule > > > > > Thusly, the version number will "choose itself" based on the SemVer > > > > tenants. > > > > > > > > only really works for major vs minor. Micro versions are > backport-only, > > > so > > > > they don't necessarily have anything to do with whether or not > breaking > > > > changes have been made on master. Which is also why > > > > > > > > > why not instead ask “Is it good enough?” and “Is it better than > what > > we > > > > presently have?” as often as possible. > > > > > > > > may not help very much, because fixing a bug is always "better than > > what > > > we > > > > presently have". > > > > > > > > Essentially it seems like our release cadence wouldn't actually > change > > > very > > > > much, the proposal isn't to get rid of the quarterly releases we > strive > > > > for, but just adding a plan to backport bug fixes every month. Which, > > we > > > > could also decide not to do, if no bugs were fixed that month, or if > > it's > > > > too much trouble to backport the fix - "as-needed" as Jeremy puts it. > > The > > > > big difference is we typically only do micro releases for critical > bugs > > > > that slipped through the validation process, or for security fixes, > > > whereas > > > > under the terms of the proposal we'd make an effort to collect things > > > that > > > > could be fixed in supported releases every month. > > > > > > > > > asking folks to vote on new RC every few weeks isn’t feasible > unless > > > it’s > > > > a standing “good enough” process > > > > > > > > that would definitely be better, but I think we hope that few enough > > > things > > > > are going into micro releases, with very little unknown since the > last > > > > minor, that validation could be focused just on "are these bugs > > actually > > > > fixed?" Could be harder with non-trivial backports, to be sure. It > > would > > > > definitely be better to have that process, and it's definitely > > possible a > > > > micro version gets too big or complex to validate cleanly. In that > > case, > > > > the release fails, which honestly isn't a big deal if there's no > > critical > > > > bug or security fix. > > > > > > > > On Tue, Oct 26, 2021 at 9:02 PM Jeremy Mitchell < > mitchell...@gmail.com > > > > > > > wrote: > > > > > > > > > So the idea behind regularly-scheduled, predictable > patch/minor/major > > > > > releases was a couple of things: > > > > > > > > > > 1. setting release schedule expectations with the open source > > community > > > > (as > > > > > Dave said). i.e. you can expect a minor/major release 1x a quarter > > and > > > > > patch releases in between (monthly) > > > > > 2. removing the ambiguity of what a minor/major release contains. > it > > > > simply > > > > > contains whatever was merged in that quarter. nothing to plan. > > nothing > > > to > > > > > debate. > > > > > > > > > > The truth is feature-based release planning is hard and requires a > > lot > > > of > > > > > communication. I don't believe we have the level of communication > > > > required > > > > > (via working group or mailing list) to effectively pull off > > > > feature.-based > > > > > releases, hence, time-based seems like the better option for us IMO > > and > > > > if > > > > > we go that route, we need to stick to the schedule to be > successful. > > > > > > > > > > Yeah, I get it. Going from quarterly releases (which we've failed > at) > > > to > > > > > monthly seems like the wrong direction. What if we change NOTHING > and > > > > > recommit to our quarterly major/minor releases with patch releases > > > being > > > > on > > > > > an as-needed basis coordinated by the release manager? So > basically a > > > big > > > > > no-op. :) > > > > > > > > > > Jeremy > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > On Tue, Oct 26, 2021 at 7:16 PM Dave Neuman <neu...@apache.org> > > wrote: > > > > > > > > > > > Resending because I don’t think it went to the list last time. > > > > > > > > > > > > I agree that releasing whenever we have something worth releasing > > is > > > > > ideal, > > > > > > however I think with an open source project we should set > > > expectations > > > > of > > > > > > some sort of release schedule. > > > > > > > > > > > > I also agree that we should be striving to automate as much as > > > possible > > > > > to > > > > > > make our releases easier. That is something that takes time and > > > > effort, > > > > > we > > > > > > have made great progress and I have no doubt that we will > continue > > to > > > > do > > > > > > so. > > > > > > > > > > > > On Tue, Oct 26, 2021 at 17:27 Gray, Jonathan > > > > > > <jonathan_g...@comcast.com.invalid> wrote: > > > > > > > > > > > > > Instead of trying to focus on a cadence of an arbitrary > calendar > > > > > > schedule, > > > > > > > why not instead ask “Is it good enough?” and “Is it better than > > > what > > > > we > > > > > > > presently have?” as often as possible. The first question > > > addresses > > > > > > > partially implemented features or roadmap items. The latter > > > > addresses > > > > > > code > > > > > > > stability and the state of confidence in the software. > > > > > > > > > > > > > > I have a moderately high bar as it is exercising the latest > > merged > > > > > > commits > > > > > > > every day from scratch on new infrastructure to at minimum > > > > successfully > > > > > > > pass known traffic on a variety of delivery service > > configurations. > > > > If > > > > > > > that passes, it’s “good enough” to me. That’s not to say it’s > > bug > > > > free > > > > > > or > > > > > > > perfect, but it’s an increasing bar on top of what we already > > > enforce > > > > > on > > > > > > > the merge of PRs as it is. Also, to say something is “good > > enough” > > > > > > doesn’t > > > > > > > mean it can’t be better. How you know what “good enough” is > > > > > evolutionary > > > > > > > and hopefully cumulative. Our project has a difficult > challenge > > > that > > > > > > it’s > > > > > > > not just one single application. It’s a complex system of > > > > interactions > > > > > > of > > > > > > > multiple pieces of software in particular ways. With the > current > > > > state > > > > > > to > > > > > > > support anything technically possible via both ATS+ATC, there > is > > no > > > > > > “done” > > > > > > > when it comes to improving automated stability validation. > > > > > > > > > > > > > > Cutting releases is real work, so it’s something that we’d have > > to > > > > > weigh > > > > > > > out too. Release whiplash asking folks to vote on new RC every > > few > > > > > weeks > > > > > > > isn’t feasible unless it’s a standing “good enough” process > that > > > > didn’t > > > > > > > require humans to do anything. Don’t get me wrong, calendars > and > > > > goals > > > > > > > aren’t bad, but those basic questions don’t have to wait 1-3 > > months > > > > > > before > > > > > > > they’re asked and really are more important. To me at least > it’s > > > > also > > > > > ok > > > > > > > to abandon a release if it turns out during the RC process it’s > > got > > > > > > > critical flaws, so we don’t end up cherry-picking and fixing up > > > > patches > > > > > > > moving the next cadence window further and further out. > > > > > > > > > > > > > > Jonathan G > > > > > > > > > > > > > > > > > > > > > From: Dave Neuman <neu...@apache.org> > > > > > > > Date: Tuesday, October 26, 2021 at 4:02 PM > > > > > > > To: dev@trafficcontrol.apache.org < > dev@trafficcontrol.apache.org > > > > > > > > > > Subject: [EXTERNAL] Re: [PROPOSAL] ATC Release Schedule > > > > > > > So we are trying to address our inability to meet our current > > > release > > > > > > goals > > > > > > > by adding more releases? > > > > > > > Why don't we just try to get more consistent with the quarterly > > > > > releases > > > > > > > before we change things? > > > > > > > If we need to do a patch release it is probably because some > > > critical > > > > > > issue > > > > > > > was found, are we really going to wait for the beginning of the > > > month > > > > > > > instead of just releasing it and fixing that issue ASAP? > > > > > > > Maybe I am missing some context here but this seems like we are > > > > trying > > > > > to > > > > > > > solve a problem with more process instead of trying to get > better > > > at > > > > > what > > > > > > > we already agreed to? > > > > > > > > > > > > > > On Tue, Oct 26, 2021 at 1:04 PM Taylor Frey < > > taylor.f...@gmail.com > > > > > > > > > > wrote: > > > > > > > > > > > > > > > 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://urldefense.com/v3/__https://semver.org/__;!!CQl3mcHX2A!Q7m483_Mi3eCFQqXNwoXRG_EA0fdl7zl1R6ecyfz7auYIYCuI5rcDvl2EfkIcooWVEU3$ > > > > < > > > > > > > > > > https://urldefense.com/v3/__https:/semver.org/__;!!CQl3mcHX2A!Q7m483_Mi3eCFQqXNwoXRG_EA0fdl7zl1R6ecyfz7auYIYCuI5rcDvl2EfkIcooWVEU3$ > > > > > > > > > > > > ) 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 > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > > >