By sticking to the "on-demand" patch release process, then there is no difference to the current release process, and this proposal adds nothing of value.
On Tue, Mar 3, 2020 at 12:44 AM Aaron Lindsey <aaronlind...@apache.org> wrote: > +1 to the proposal as it’s written. > > I’m not sure about setting regular intervals for patch releases vs > sticking with our current “on-demand” process. I don’t think this has to be > spelled out in this proposal. I’d be fine with sticking to “on-demand” > patch releases as we’ve been doing for now and seeing how that goes. If > needed we could follow that up with a proposal for regular patch release > intervals. > > - Aaron > > > On Feb 26, 2020, at 8:45 AM, Anthony Baker <aba...@pivotal.io> wrote: > > > > > > > >> On Feb 25, 2020, at 1:42 PM, Udo Kohlmeyer <u...@apache.com> wrote: > >> > >> From the proposal it seems we are departing from the initial delivery > paradigm of "always upgrade to the latest version, because all fixes are > going in there", to the more product orientated approach of, there is a > support lifespan for each {major}-{minor} version. Which is a more > traditional product approach. > >> > >> Is there a specific reason we advocating for moving away from "the fix > will be in the latest release X:Y:Z" ? > >> > > > > From the proposal: > > > > "The Geode project has been following a model of shipping releases > quarterly [1][2]. Using the SemVer [3] approach, these quarterly releases > are labeled as minor versions. Occasionally, the project has shipped patch > releases [4] to address security vulnerabilities or really critical bugs. > However, on the whole the project has asked users to wait until the next > quarterly minor release to receive improvements and fixes. > > > > It would benefit our user community if we supported our releases for a > period of time by back porting important fixes and providing patch > releases.” > > > > I believe that taking this approach will clarify expectations and make > it easier for users to rely on Geode for their projects. > > > > > >> The current methodology or the community voting on changes being > cherry-picked is related to fixes making it into an unreleased version of > Geode. From the proposal, are we advocating for extra voting "Do we include > fix GEODE-XXXX, into N , N-1 or N-2? " This does seem to be something that > might be more work for the community, rather than just updating to latest > RELEASE. Or is the suggestion that closer to each release period, a list of > candidate tickets are proposed for back porting? Or is the back porting and > vote on inclusion done based on discretion and on a ticket by ticket basis? > > > > I think the process will follow our approach to back porting fixes onto > a release branch: > > > > 1) When you fix an “important” issue, note that it will need to be back > ported onto the correct set of support branches. > > 2) The assigned release manager for the support branch will coordinate > community consensus and help with cherry-picking the change as well as > ensuring the pipelines are staying green. > > > >> > >> With the reduced scope of supported versions, does this also mean we > reduce scope of backward compatibility testing between versions? i.e can we > now change our backward compatibility testing to mimic the same behavior > where we only test compatibility between, HEAD,N,N-1 and N-2? > >> > > > > Great question. I think we continue to follow our SerVer approach to > naming versions, as well as following the backwards compatibility > guidelines described in [1[. In short, I don’t think this N-2 changes our > requirements—this idea is more about what versions we will patch. > > > > > > Anthony > > > > [1] > https://cwiki.apache.org/confluence/display/GEODE/Managing+Backward+Compatibility > > > > > > > > > >> --Udo > >> > >> On 2/25/20 11:51 AM, Alexander Murmann wrote: > >>> Hi John, > >>> > >>> I think what you are calling out in 1. and 2. matches what was > discussed in > >>> the proposal and thread. Please call out if you disagree on a detail. > >>> > >>> What's your reasoning behind 3? > >>> I see little reason to ship a patch release (which is significant > work) if > >>> there was no important fix. > >>> Likewise I am concerned about waiting to ship a critical fix to our > users > >>> or leave them with gaping security vulnerabilities when we have a fix, > but > >>> the next patch release train doesn't depart for several weeks. > >>> > >>> On Tue, Feb 25, 2020 at 11:41 AM John Blum <jb...@pivotal.io> wrote: > >>> > >>>> Real quick thought... IMO: > >>>> > >>>> 1. There should be patch (maintenance) releases for each major.minor, > up to > >>>> N-2 for a set period of time (e.g. 1.5 years), or until N-2 becomes > N-3 > >>>> where N-3 is no longer supported. > >>>> 2. All important changes should be backported. I say "important" > loosely > >>>> since that should be decided by the community, but in general, that > means > >>>> Blocker, Critical, Security fixes or other changes that can impact the > >>>> contract, functionality or proper behavior of Apache Geode in whatever > >>>> context. > >>>> 3. Patch (maintenance) releases should occur at a regular, > "predictable" > >>>> intervals (e.g. every 6 weeks), not on an adhoc basis. > >>>> > >>>> $0.02 > >>>> -John > >>>> > >>>> > >>>> On Tue, Feb 25, 2020 at 11:23 AM Alexander Murmann < > amurm...@apache.org> > >>>> wrote: > >>>> > >>>>>> 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. > >>>>>> > >>>>> +1 I cannot see any argument against cutting a release branch for the > >>>> minor > >>>>> version and keeping it around. > >>>>> > >>>>> The community process around deciding how long to gather fixes before > >>>>>> shipping a patch release isn’t any easier either way. > >>>>> How about we wait for someone to call out the need to ship a patch > >>>>> release. At > >>>>> that point we use the rule of thumb "aim for no more than 1 patch > release > >>>>> per minor per month" to guide our community discussion. > >>>>> > >>>>> 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... > >>>>> Are there more things that could be automated? When I filled the > role ~1 > >>>>> year ago there was lots of copying and pasting of scripts and I even > >>>> wrote > >>>>> one to help validate fixVersions. Although release process automation > >>>>> should probably be taken to a different discussion, since it's mostly > >>>>> separate form Anthony's proposal. > >>>>> > >>>>> > >>>>> On Tue, Feb 25, 2020 at 11:06 AM Owen Nichols <onich...@pivotal.io> > >>>> wrote: > >>>>>> 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 > >>>>>>>>>> > >>>> > >>>> -- > >>>> -John > >>>> Spring Data Team > >>>> > >>> > > > > -- -John Spring Data Team