Thanks Ben!

I wonder if the new guidelines belong in the "Committing" docs instead?
http://mesos.apache.org/documentation/latest/committing/

On Thu, Jul 26, 2018 at 2:18 PM, Benjamin Mahler <bmah...@apache.org> wrote:

> Thanks to everyone who chimed in. To Gilbert's questions, I think that's
> outside the territory of what a policy or guidelines will cover, and will
> be up to the judgement of the committer.
>
> My initial search for "backport" was insufficient and I missed the
> following existing comment in a different section of versioning.md lays out
> a policy of only critical issues:
>
> <start quote>
> At any given time, 3 releases are supported: ... Support means fixing of
> critical issues that affect the release. Once an issue is deemed critical,
> it will be fixed in only those affected releases that are still supported.
> ...
>
> Which issues are considered critical?
>
> Security fixes
> Compatibility regressions
> Functional regressions
> Performance regressions
> Fixes for 3rd party integration (e.g., Docker remote API)
>
> Whether an issue is considered critical or not is sometimes subjective. In
> some cases it is obvious and sometimes it is fuzzy. Users should work with
> committers to figure out the criticality of an issue and get agreement and
> commitment for support.
> <end quote>
>
> From the discussion here, it sounds like we should add the guidelines
> similar to what Greg suggested above to clarify that there's some
> subjectivity here, as well as keeping some of the clear cases (like what
> the existing documentation does). I can send out a change sometime soon.
>
> On Wed, Jul 18, 2018 at 10:37 AM, Gilbert Song <gilb...@mesosphere.io>
> wrote:
>
>> Thanks for clarifying the backporting policy, BenM!
>>
>> I totally agree with the changes proposed for the backporting policy, but
>> I realize two more scenarios that are more clear to me yet:
>>
>>    - There are some bugs that are not fixable (due to legacy technical
>>    decisions), and we end up with fixing the issue by a semantic/behavior
>>    change in a new release. Do we expect this semantic/behavior change being
>>    backported?
>>    - There might be some bugs that root cause is unknown yet, but it did
>>    impact on a couple releases. If we decide to add some commits for 
>> debugging
>>    purpose (e.g., a new debugging endpoint, or more logging), should we also
>>    allow these patches to be backported?
>>
>> For #2, I think we should do the backporting, but for #1, maybe more
>> discussion is needed since it relates to whether the user has to upgrade or
>> not.
>>
>> Cheers,
>> Gilbert
>>
>> On Tue, Jul 17, 2018 at 4:26 PM, Lawrence Rau <larry...@mac.com> wrote:
>>
>>> I don’t have a big stake in, however, one opinion is if a large
>>> commercial enterprise was using a specific release that is working the
>>> desire is often to only upgrade if necessary.  Necessary can be for a
>>> number of reasons including new features; however if a new feature is not
>>> needed the compelling reason to upgrade is to fix a specific problem that
>>> is causing issues.  Thus keeping a maintenance release stable is very
>>> important and reducing the chance for, while fixing one problem,
>>> introducing another.
>>>
>>> Often a clear classification of severity of the problem would dictate
>>> the need to make a change. (yes these can be subjective, but some guidance
>>> would be better than nothing).
>>>
>>> It might be good to give committers guidance on back porting things that
>>> have a high impact on improving a problem.  Fixing a crashing bug, fixing a
>>> degenerative performance issue, etc, where these issues have no easy/viable
>>> work around.  Nice to have fixes aren’t, always, worth updating to.
>>>
>>> There can be an argument to respond with a “then don’t upgrade” but if
>>> changing the release with “nice to have’s” and several point releases later
>>> when a critical bug is fixed then the org if forced to accept the risk of
>>> the nice to have’s.
>>>
>>> just an opinion.
>>> …larry
>>>
>>>
>>> On Jul 17, 2018, at 3:00 PM, Chun-Hung Hsiao <chhs...@mesosphere.io>
>>> wrote:
>>>
>>> I just have a comment on a special case:
>>> If a fix for a flaky test is easy to backport,
>>> IMO we probably should backport it,
>>> otherwise if someone backports another critical fix in the future,
>>> it would take them extra effort to check all CI failures.
>>>
>>> On Mon, Jul 16, 2018 at 11:39 AM Vinod Kone <vinodk...@apache.org>
>>> wrote:
>>>
>>>> I like how you summarized it Greg and I would vote for leaving the
>>>> decision
>>>> to the committer too. In addition to what others mentioned, I think
>>>> committer should've the responsibility because if things break in a
>>>> point
>>>> release (after it is released), it is the committer and contributor who
>>>> are
>>>> on the hook to triage and fix it and not the release manager.
>>>>
>>>> Having said that, if "during" the release process (i.e., cutting an RC)
>>>> these backports cause delays for a release manager in getting the
>>>> release
>>>> out (e.g., CI flakiness introduced due to backports), release manager
>>>> could
>>>> be the ultimate arbiter on whether such a backport should be reverted or
>>>> fixed by the committer/contributor. Hopefully such issues are caught
>>>> much
>>>> before a release process is started (e.g., CI running against release
>>>> branches).
>>>>
>>>> On Mon, Jul 16, 2018 at 1:28 PM Jie Yu <yujie....@gmail.com> wrote:
>>>>
>>>> > Greg, I like your idea of adding a prescriptive "policy" when
>>>> evaluating
>>>> > whether a bug fix should be backported, and leave the decision to
>>>> committer
>>>> > (because they have the most context, and avoid a bottleneck in the
>>>> > process).
>>>> >
>>>> > - Jie
>>>> >
>>>> > On Mon, Jul 16, 2018 at 11:24 AM, Greg Mann <g...@mesosphere.io>
>>>> wrote:
>>>> >
>>>> > > My impression is that we have two opposing schools of thought here:
>>>> > >
>>>> > >    1. Backport as little as possible, to avoid unforeseen
>>>> consequences
>>>> > >    2. Backport as much as proves practical, to eliminate bugs in
>>>> > >    supported versions
>>>> > >
>>>> > > Do other people agree with this assessment?
>>>> > >
>>>> > > If so, how can we find common ground? One possible solution would
>>>> be to
>>>> > > leave the decision on backporting up to the committer, without
>>>> > specifying a
>>>> > > project-wide policy. This seems to be the status quo, and would
>>>> lead to
>>>> > > some variation across committers regarding what types of fixes are
>>>> > > backported. We could also choose to delegate the decision to the
>>>> release
>>>> > > manager; I favor leaving the decision with the committer, to
>>>> eliminate
>>>> > the
>>>> > > burden on release managers.
>>>> > >
>>>> > > Here's a thought: rather than defining a prescriptive "policy" that
>>>> we
>>>> > > expect committers to abide by, we could enumerate in the
>>>> documentation
>>>> > the
>>>> > > competing concerns that we expect committers to consider when making
>>>> > > decisions on backports. The committing docs could read something
>>>> like:
>>>> > >
>>>> > > "When bug fixes are committed to master, the committer should
>>>> evaluate
>>>> > the
>>>> > > fix to determine whether or not it should be backported to supported
>>>> > > versions. This is left to the committer, but they are expected to
>>>> weigh
>>>> > the
>>>> > > following concerns when making the decision:
>>>> > >
>>>> > >    - Every backported change comes with a risk of unintended
>>>> > >    consequences. The change should be carefully evaluated to ensure
>>>> that
>>>> > such
>>>> > >    side-effects are highly unlikely.
>>>> > >    - As the complexity of applying a backport increases due to merge
>>>> > >    conflicts, the likelihood of unintended consequences also
>>>> increases.
>>>> > Bug
>>>> > >    fixes which require extensive rebasing should only be backported
>>>> when
>>>> > the
>>>> > >    bug is critical enough to warrant the risk.
>>>> > >    - Users of supported versions benefit greatly from the
>>>> resolution of
>>>> > >    bugs in point releases. Thus, whenever concerns #1 and #2 can be
>>>> > allayed
>>>> > >    for a given bug fix, it should be backported."
>>>> > >
>>>> > >
>>>> > > Cheers,
>>>> > > Greg
>>>> > >
>>>> > >
>>>> > > On Mon, Jul 16, 2018 at 3:06 AM, Alex Rukletsov <
>>>> a...@mesosphere.com>
>>>> > > wrote:
>>>> > >
>>>> > >> Back porting as little as possible is the ultimate goal for me. My
>>>> > >> reasons are closely aligned with what Andrew wrote above.
>>>> > >>
>>>> > >> If we agree on this strategy, the next question is how to enforce
>>>> it. My
>>>> > >> intuition is that committers will lean towards back porting their
>>>> > patches
>>>> > >> in arguable cases, because humans tend to overestimate the
>>>> importance of
>>>> > >> their personal work. Delegating the decision in such cases to a
>>>> release
>>>> > >> manager in my opinion will help us enforce the strategy of minimal
>>>> > number
>>>> > >> backports. As a bonus, the release manager will have a much better
>>>> > >> understanding of what's going on with the release, keyword: "more
>>>> > >> ownership".
>>>> > >>
>>>> > >> On Sat, Jul 14, 2018 at 12:07 AM, Andrew Schwartzmeyer <
>>>> > >> and...@schwartzmeyer.com> wrote:
>>>> > >>
>>>> > >>> I believe I fall somewhere between Alex and Ben.
>>>> > >>>
>>>> > >>> As for deciding what to backport or not, I lean toward Alex's
>>>> view of
>>>> > >>> backporting as little as possible (and agree with his criteria).
>>>> My
>>>> > >>> reasoning is that all changes can have unforeseen consequences,
>>>> which I
>>>> > >>> believe is something to be actively avoided in already released
>>>> > versions.
>>>> > >>> The reason for backporting patches to fix regressions is the same
>>>> as
>>>> > the
>>>> > >>> reason to avoid backporting as much as possible: keep behavior
>>>> > consistent
>>>> > >>> (and safe) within a release. With that as the goal of a branch in
>>>> > >>> maintenance mode, it makes sense to fix regressions, and make
>>>> > exceptions to
>>>> > >>> fix CVEs and other critical/blocking issues.
>>>> > >>>
>>>> > >>> As for who should decide what to backport, I lean toward Ben's
>>>> view of
>>>> > >>> the burden being on the committer. I don't think we should add
>>>> more
>>>> > work
>>>> > >>> for release managers, and I think the committer/shepherd
>>>> obviously has
>>>> > the
>>>> > >>> most understanding of the context around changes proposed for
>>>> backport.
>>>> > >>>
>>>> > >>> Here's an example of a recent bugfix which I backported:
>>>> > >>> https://reviews.apache.org/r/67587/ (for MESOS-3790)
>>>> > >>>
>>>> > >>> While normally I believe this change falls under "avoid due to
>>>> > >>> unforeseen consequences," I made an exception as the bug was old,
>>>> circa
>>>> > >>> 2015, (indicating it had been an issue for others), and was
>>>> causing
>>>> > >>> recurring failures in testing. The fix itself was very small,
>>>> meaning
>>>> > it
>>>> > >>> was easier to evaluate for possible side effects, so I felt a
>>>> little
>>>> > safer
>>>> > >>> in that regard. The effect of not having the fix was a fatal and
>>>> > undesired
>>>> > >>> crash, which furthermore left troublesome side effects on the
>>>> system
>>>> > (you
>>>> > >>> couldn't bring the agent back up). And lastly, a dependent project
>>>> > (DC/OS)
>>>> > >>> wanted it in their next bump, which necessitated backporting to
>>>> the
>>>> > release
>>>> > >>> they were pulling in.
>>>> > >>>
>>>> > >>> I think in general we should backport only as necessary, and
>>>> leave it
>>>> > on
>>>> > >>> the committers to decide if backporting a particular change is
>>>> > necessary.
>>>> > >>>
>>>> > >>>
>>>> > >>> On 07/13/2018 12:54 am, Alex Rukletsov wrote:
>>>> > >>>
>>>> > >>>> This is exactly where our views differ, Ben : )
>>>> > >>>>
>>>> > >>>> Ideally, I would like a release manager to have more ownership
>>>> and
>>>> > less
>>>> > >>>> manual work. In my imagination, a release manager has more power
>>>> and
>>>> > >>>> control about dates, features, backports and everything that is
>>>> > related
>>>> > >>>> to
>>>> > >>>> "their" branch. I would also like us to back port as little as
>>>> > >>>> possible, to
>>>> > >>>> simplify testing and releasing patch versions.
>>>> > >>>>
>>>> > >>>> On Fri, Jul 13, 2018 at 1:17 AM, Benjamin Mahler <
>>>> bmah...@apache.org>
>>>> > >>>> wrote:
>>>> > >>>>
>>>> > >>>> +user, I probably it would be good to hear from users as well.
>>>> > >>>>>
>>>> > >>>>> Please see the original proposal as well as Alex's proposal and
>>>> let
>>>> > us
>>>> > >>>>> know
>>>> > >>>>> your thoughts.
>>>> > >>>>>
>>>> > >>>>> To continue the discussion from where Alex left off:
>>>> > >>>>>
>>>> > >>>>> > Other bugs and significant improvements, e.g., performance,
>>>> may be
>>>> > >>>>> back
>>>> > >>>>> ported,
>>>> > >>>>> the release manager should ideally be the one who decides on
>>>> this.
>>>> > >>>>>
>>>> > >>>>> I'm a little puzzled by this, why is the release manager
>>>> involved? As
>>>> > >>>>> we
>>>> > >>>>> already document, backports occur when the bug is fixed, so this
>>>> > >>>>> happens in
>>>> > >>>>> the steady state of development, not at release time. The
>>>> release
>>>> > >>>>> manager
>>>> > >>>>> only comes in at the time of the release itself, at which point
>>>> all
>>>> > >>>>> backports have already happened and the release manager handles
>>>> the
>>>> > >>>>> release
>>>> > >>>>> process. Only blocker level issues can stop the release and
>>>> while the
>>>> > >>>>> release manager has a strong say, we should generally agree on
>>>> what
>>>> > >>>>> consists of a release blocking issue.
>>>> > >>>>>
>>>> > >>>>> Just to clarify my workflow, I generally backport every bug fix
>>>> I
>>>> > >>>>> commit
>>>> > >>>>> that applies cleanly, right after I commit it to master (with
>>>> the
>>>> > >>>>> exceptions I listed below).
>>>> > >>>>>
>>>> > >>>>> On Thu, Jul 12, 2018 at 8:39 AM, Alex Rukletsov <
>>>> a...@mesosphere.com
>>>> > >
>>>> > >>>>> wrote:
>>>> > >>>>>
>>>> > >>>>> > I would like to back port as little as possible. I suggest the
>>>> > >>>>> following
>>>> > >>>>> > criteria:
>>>> > >>>>> >
>>>> > >>>>> > * By default, regressions are back ported to existing release
>>>> > >>>>> branches. A
>>>> > >>>>> > bug is considered a regression if the functionality is
>>>> present in
>>>> > the
>>>> > >>>>> > previous minor or patch version and is not affected by the bug
>>>> > there.
>>>> > >>>>> >
>>>> > >>>>> > * Critical and blocker issues, e.g., a CVE, can be back
>>>> ported.
>>>> > >>>>> >
>>>> > >>>>> > * Other bugs and significant improvements, e.g., performance,
>>>> may
>>>> > be
>>>> > >>>>> back
>>>> > >>>>> > ported, the release manager should ideally be the one who
>>>> decides
>>>> > on
>>>> > >>>>> this.
>>>> > >>>>> >
>>>> > >>>>> > On Thu, Jul 12, 2018 at 12:25 AM, Vinod Kone <
>>>> vinodk...@apache.org
>>>> > >
>>>> > >>>>> wrote:
>>>> > >>>>> >
>>>> > >>>>> > > Ben, thanks for the clarification. I'm in agreement with the
>>>> > >>>>> points you
>>>> > >>>>> > > made.
>>>> > >>>>> > >
>>>> > >>>>> > > Once we have consensus, would you mind updating the doc?
>>>> > >>>>> > >
>>>> > >>>>> > > On Wed, Jul 11, 2018 at 5:15 PM Benjamin Mahler <
>>>> > >>>>> bmah...@apache.org>
>>>> > >>>>> > > wrote:
>>>> > >>>>> > >
>>>> > >>>>> > > > I realized recently that we aren't all on the same page
>>>> with
>>>> > >>>>> > backporting.
>>>> > >>>>> > > > We currently only document the following:
>>>> > >>>>> > > >
>>>> > >>>>> > > > "Typically the fix for an issue that is affecting
>>>> supported
>>>> > >>>>> releases
>>>> > >>>>> > > lands
>>>> > >>>>> > > > on the master branch and is then backported to the release
>>>> > >>>>> branch(es).
>>>> > >>>>> > In
>>>> > >>>>> > > > rare cases, the fix might directly go into a release
>>>> branch
>>>> > >>>>> without
>>>> > >>>>> > > landing
>>>> > >>>>> > > > on master (e.g., fix / issue is not applicable to
>>>> master)." [1]
>>>> > >>>>> > > >
>>>> > >>>>> > > > This leaves room for interpretation about what lies
>>>> outside of
>>>> > >>>>> > "typical".
>>>> > >>>>> > > > Here's the simplest way I can explain what I stick to,
>>>> and I'd
>>>> > >>>>> like
>>>> > >>>>> to
>>>> > >>>>> > > hear
>>>> > >>>>> > > > what others have in mind:
>>>> > >>>>> > > >
>>>> > >>>>> > > > * By default, bug fixes at any level should be backported
>>>> to
>>>> > >>>>> existing
>>>> > >>>>> > > > release branches if it affects those releases. Especially
>>>> > >>>>> important:
>>>> > >>>>> > > > crashes, bugs in non-experimental features.
>>>> > >>>>> > > >
>>>> > >>>>> > > > * Exceptional cases that can omit backporting: difficult
>>>> to
>>>> > >>>>> backport
>>>> > >>>>> > > fixes
>>>> > >>>>> > > > (especially if the bugs are deemed of low priority), bugs
>>>> in
>>>> > >>>>> > experimental
>>>> > >>>>> > > > features.
>>>> > >>>>> > > >
>>>> > >>>>> > > > * Exceptional non-bug cases that can be backported:
>>>> performance
>>>> > >>>>> > > > improvements.
>>>> > >>>>> > > >
>>>> > >>>>> > > > I realize that there is a ton of subtlety here (even in
>>>> terms
>>>> > of
>>>> > >>>>> which
>>>> > >>>>> > > > things are defined as bugs). But I hope we can lay down a
>>>> > policy
>>>> > >>>>> that
>>>> > >>>>> > > gives
>>>> > >>>>> > > > everyone the right mindset for common cases and then
>>>> discuss
>>>> > >>>>> corner
>>>> > >>>>> > cases
>>>> > >>>>> > > > on-demand in the future.
>>>> > >>>>> > > >
>>>> > >>>>> > > > [1] http://mesos.apache.org/docume
>>>> ntation/latest/versioning/
>>>> > >>>>> > > >
>>>> > >>>>> > >
>>>> > >>>>> >
>>>> > >>>>>
>>>> > >>>>>
>>>> > >>>
>>>> > >>
>>>> > >
>>>> >
>>>>
>>>
>>>
>>
>

Reply via email to