These concerns make sense. We could satisfy them within our existing “on-demand” process:
1) the first time there is a change to backport to support branches, propose the patch release. Now we have a branch. Decide as a community how urgently it needs to be released vs how long to hold it open for other potential fixes. Or, we could emphasize the shift in process with bigger changes: i. Instead of cutting "release/1.13.0" on May 4, we could instead cut "support/1.13" ii instead of creating "apache-release-1-13-0-main" pipeline, we would instead create "apache-release-1-13-main" iii. Instead of cleaning up the pipeline and branch after 1.13.0 was released, we could keep it around for 9 months and re-use it for collecting patches and making patch releases during that time. The community process around deciding how long to gather fixes before shipping a patch release isn’t any easier either way. One advantage of our current process is that a release doesn’t happen until someone volunteers to make it happen. We can do as many or as few patch releases as the community is willing -- a release always has a champion. I would like to see more discussion on the community impact of increasing the commitment required of a release manager. In the short term it would be good for Geode to have someone focused on improving the release process for a longer period of time than a single release. But in the long term, people may be less likely to volunteer, and release experience will be concentrated in fewer members of the community... > On Feb 25, 2020, at 9:29 AM, Anthony Baker <aba...@pivotal.io> wrote: > > Here’s a couple things I’d like to avoid: > > 1) Issuing a patch release for every single commit that we back port onto a > supported minor version. This seems like a high cost approach. Of course, > some issues may be important enough to require that. > > 2) Merging a change to develop, and then having to come back weeks later and > back porting the change to a release branch. It just seems less optimal > since I’ll have lost the context on the changes, particularly if the > cherry-pick is non-trivial. > > More comments below. > > Anthony > > >> On Feb 24, 2020, at 2:16 PM, Owen Nichols <onich...@pivotal.io> wrote: >> >> Hi Alexander, currently we don’t start a patch release until someone >> proposes a critical fix, which then drives the release (the community may >> propose “extra” fixes to tag along once a release branch is cut). This >> keeps the process simple, neat and tidy. >> >> Another option I hadn’t thought of is to begin collecting “extra” fixes >> proactively on a “dormant” branch, so that when someone finally proposes >> releasing a patch, it will already be primed with a bunch of fixes. This >> adds complexity (does a different standard apply to bring fixes to a dormant >> branch? Are release branches separate from support branches? How will >> committers be able to keep track of what is dormant and what is not?) >> > > Why not just either a) keep the release branch alive? Or b) create a support > branch from the release tag? > >> To implement an N-2 support policy, does it make more sense for Geode to >> make small focused patch releases when needed, or to maintain what amounts >> to “3 develop branches at all times”? >> > > To me, “develop branch” implies ongoing work. I’m proposing “support branch” > which means only important changes agreed upon by the project community. > > >> >>> On Feb 24, 2020, at 11:00 AM, Alexander Murmann <amurm...@pivotal.io> wrote: >>> >>> Thanks for proposing this, Anthony! >>> >>> >>>> I don’t think it’s necessary for this proposal to re-define or clarify >>>> what constitutes a critical fix; it sounds like the bar would be the same >>>> as the standard we already apply when back-porting to release branches >>>> (proposal /w justification, and 3 votes in favor). The only difference >>>> seems to be that now proposals may list up to three target branches, not >>>> just one. >>>> >>> re: Owen >>> TL;DR: +1 using the same process as we use for merging critical fixes >>> during an ongoing release seems appropriate. >>> >>> Generally merging a fix to a dormant release branch seems less problematic >>> than merging a fix to an active release branch where a merge will reset all >>> release work that has already happened. The cost of merging to a >>> dormant release branch is much lower than merging to one that's being >>> actively released. Ideally we could just do a PR to merge fixes back in >>> most cases. Unfortunately, I believe it's unreasonable to expect that >>> everyone will be aware at all times what's actively being released and >>> what's not => Let's pretend we are always shipping these branches. >>> >>> >>> >>> >>> On Fri, Feb 21, 2020 at 7:35 PM Owen Nichols <onich...@pivotal.io> wrote: >>> >>>> Thank you Anthony for proposing this “N-2” support policy. It isn’t a big >>>> change, but it is helpful to know that the Geode PMC will now be standing >>>> behind (and ready to vote on) patch releases within a 9-month window. >>>> >>>> Overall, this sounds much like how 1.9.1 and 1.9.2 started as community >>>> proposals, found a release manager, and went on to be successfully >>>> released. >>>> >>>> I don’t think it’s necessary for this proposal to re-define or clarify >>>> what constitutes a critical fix; it sounds like the bar would be the same >>>> as the standard we already apply when back-porting to release branches >>>> (proposal /w justification, and 3 votes in favor). The only difference >>>> seems to be that now proposals may list up to three target branches, not >>>> just one. >>>> >>>> I also don’t think it’s necessary to alter our current process to maintain >>>> a standing "support/x.y" branch. The proposal states that patch releases >>>> will be “ad-hoc (as needed)”. Our current process serves this quite well: >>>> we propose a patch release at the time it is needed, then get a release >>>> manager and create a release branch specifically for that release (e.g. >>>> release/1.9.2 was created from the rel/v1.9.1 tag), then clean up >>>> afterwards so no unattended pipelines or branches linger. >>>> >>>> The rotating release manager role has been a hallmark of the Geode >>>> community process, so I hope this proposal will not dissuade anyone >>>> interested in helping with a release. However, getting the automation >>>> improvements we need will require some continuity over several releases. I >>>> would love to volunteer for this! >>>> >>>> -Owen >>>> >>>>> On Feb 21, 2020, at 5:30 PM, Anthony Baker <aba...@apache.org> wrote: >>>>> >>>>> Hi everyone, >>>>> >>>>> I'd like to propose shipping patch releases of Geode as a way to >>>>> improve our engagement and support of our user community. Please >>>>> review the details in the linked RFC [1] and kindly offer your >>>>> thoughts in this thread. >>>>> >>>>> >>>>> Thanks, >>>>> Anthony >>>>> >>>>> [1] >>>> https://cwiki.apache.org/confluence/display/GEODE/Shipping+patch+releases >>>> >>>> >> >