+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
>>>> 
>>> 
> 

Reply via email to