This is the approach I am using as well Blake.

Thanks,
Mark

> On Jan 2, 2020, at 7:16 AM, Blake Bender <bben...@pivotal.io> wrote:
> 
> That's not how I approach this sort of a change, and to my mind it feels
> sort of like that approach is asking for trouble.  When I have a refactor
> plus a code change, I do the refactor on a branch, submit the PR, then
> branch off of *that* branch to do the feature work.  This forces an
> ordering of the changes, but alleviates most/all of the conflicts.  When
> the refactor PR is accepted, I rebase the feature work off of the new
> develop branch, and submit the second PR, usually without encountering any
> issues.
> 
> 
> 
> On Wed, Jan 1, 2020 at 9:57 AM Aaron Lindsey <aaronlind...@apache.org>
> wrote:
> 
>>> 
>>> Is it not the case currently? If I am working on a feature modifying
>> class
>>> X and another developer makes some refactoring changes on class X and
>>> pushes it to develop, won't I have to resolve the merge commits anyway.
>> 
>> 
>> Yes, you will always have to deal with resolving conflicts with other
>> people's changes. The scenario I was describing was me having to resolve
>> conflicts between my own 2 changes that modify the same files. If I make a
>> refactor commit and a fix commit as two separate PRs that are each based on
>> develop (i.e. they are independent PRs), after I merge the first one to
>> develop the second one will have merge conflicts. The simplest way to avoid
>> this is to put the commits in the same PR and use rebase-and-merge.
>> 
>> 
>> 
>> On Tue, Dec 31, 2019 at 10:46 PM Owen Nichols <onich...@pivotal.io> wrote:
>> 
>>> It sounds like there is value in being able to deliver un-squashed PRs,
>> and
>>> we believe the richer commit message history outweighs any potential
>>> inconvenience to bisect operations (as Aaron pointed out, finer-grained
>>> commits should generally be to the benefit of bisect operations).
>>> 
>>> We will leave all 3 merge options enabled in GitHub.
>>> 
>>> On Tue, Dec 31, 2019 at 7:27 PM Dan Smith <dsm...@pivotal.io> wrote:
>>> 
>>>> I also tend to do the same workflow Aaron described - make a
>> refactoring
>>>> change to support a feature followed by the actual change I want to
>> make.
>>>> It makes the history a lot clearer because refactoring tends to touch a
>>> lot
>>>> of files, so it's nice to have those changes clearly marked as a
>>>> refactoring that should not change behavior.
>>>> 
>>>> It's possible to do this as to separate PRs, but that drags out the
>>> process
>>>> because you have to get the first in merged before you create the
>> second.
>>>> That encourages bunching changes in a single squashed commit, which
>> makes
>>>> git blame less useful.
>>>> 
>>>> 
>>>> -Dan
>>>> 
>>>> On Tue, Dec 31, 2019, 6:36 PM Nabarun Nag <n...@apache.org> wrote:
>>>> 
>>>>> Aaron ,
>>>>> 
>>>>> Is it not the case currently? If I am working on a feature modifying
>>>> class
>>>>> X and another developer makes some refactoring changes on class X and
>>>>> pushes it to develop, won't I have to resolve the merge commits
>> anyway.
>>>>> 
>>>>> 
>>>>> Regards
>>>>> Naba
>>>>> 
>>>>> 
>>>>> On Tue, Dec 31, 2019 at 6:01 PM Aaron Lindsey <
>> aaronlind...@apache.org
>>>> 
>>>>> wrote:
>>>>> 
>>>>>> Suppose I’m refactoring the same classes I’m touching for the
>>> feature.
>>>> I
>>>>>> do the refactoring on one branch and submit a PR for that. Then I
>>>>> implement
>>>>>> the feature on another branch which is based on develop and does
>> not
>>>> have
>>>>>> the refactoring changes since those are not merged yet. I’ll have
>> to
>>>>>> resolve conflicts on the second PR that I merge.
>>>>>> 
>>>>>> Having interdependent PRs where one PR branch is based on another
>> PR
>>>>>> branch is not something I’ve tried. That requires more overhead in
>>>> having
>>>>>> to create more PRs and branches. And if you have N interdependent
>>> PRs,
>>>>> you
>>>>>> have to do N-1 merges each time a PR is merged to develop (to
>> update
>>>> the
>>>>>> other branches). It could be done, but is it worth the hassle?
>>>>>> 
>>>>>> One more point about rebase-and-merge is that it seems like this
>>> would
>>>>>> make bisecting a failure easier since there would be smaller
>> commits.
>>>>>> 
>>>>>> Aaron
>>>>>> 
>>>>>>> On Dec 31, 2019, at 5:41 PM, Owen Nichols <onich...@pivotal.io>
>>>> wrote:
>>>>>>> 
>>>>>>> Can you elaborate on why you would have to deal with conflicts if
>>> the
>>>>>>> refactoring work was kept as a separate PR from the fix?
>>>>>>> 
>>>>>>> As with many git workflows, there’s an easy way and a hard way to
>>>>> manage
>>>>>>> interdependent PRs (tl;dr only merge, never rebase!). I wonder if
>>>> this
>>>>>>> points out an opportunity for a “tips and tricks” page on the
>> Geode
>>>>> wiki.
>>>>>>> 
>>>>>>> On Tue, Dec 31, 2019 at 5:22 PM Aaron Lindsey <
>>>> aaronlind...@apache.org
>>>>>> 
>>>>>>> wrote:
>>>>>>> 
>>>>>>>> -0.9
>>>>>>>> 
>>>>>>>> I’m not in favor of the revised proposal that disallows
>>>>>> rebase-and-merge.
>>>>>>>> Say I am working on a PR and I have a refactor commit and
>> another
>>>>> commit
>>>>>>>> which implements a new feature. I don’t want those commits to
>> get
>>>>>> squashed
>>>>>>>> because that makes it hard to understand the diff. However, if I
>>>> make
>>>>>> those
>>>>>>>> commits as two separate PRs then I am going to have to deal with
>>>>>> conflicts.
>>>>>>>> 
>>>>>>>> I’m not sure when we made it a rule that every commit in develop
>>> had
>>>>> to
>>>>>>>> compile and pass tests. I know we implemented a rule that all
>> PRs
>>>> had
>>>>> to
>>>>>>>> pass certain checks, but I never thought that rule implied all
>>>> commits
>>>>>> had
>>>>>>>> to pass those checks.
>>>>>>>> 
>>>>>>>> In general I just don’t see the problem with rebase-and-merge
>> and
>>>> this
>>>>>>>> feels like an unnecessary restriction, but I will go with it if
>>>> that’s
>>>>>> what
>>>>>>>> everyone wants to do.
>>>>>>>> 
>>>>>>>> Aaron
>>>>>>>> 
>>>>>>>>> On Dec 31, 2019, at 3:09 PM, Owen Nichols <onich...@pivotal.io
>>> 
>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> To recap, this proposal is now revised to remove 2 of the 3
>> merge
>>>>>> options
>>>>>>>>> from GitHub, leaving only Squash and Merge.  PR #4513
>>>>>>>>> <https://github.com/apache/geode/pull/4513> serves as an
>> exhibit
>>>> of
>>>>>>>> what is
>>>>>>>>> proposed (it is not to be merged unless discussion leads to
>>>> consensus
>>>>>>>> and a
>>>>>>>>> successful vote).  Please use the dev list (not the PR) for all
>>>>>>>> discussion
>>>>>>>>> (and voting, if we get that far).
>>>>>>>>> 
>>>>>>>>> Squash and merge is already used almost exclusively by the
>> Geode
>>>>>>>> community,
>>>>>>>>> with any exceptions tending to be accidental more often than
>>>>>> intentional.
>>>>>>>>> However, some have raised the concern that implementing this
>>>>>> restriction
>>>>>>>>> could result in harm or wasted time.  Can someone give an
>> example
>>>> of
>>>>> a
>>>>>>>> such
>>>>>>>>> a scenario?
>>>>>>>>> 
>>>>>>>>> It seems there is a divide here between junior and senior
>>> community
>>>>>>>>> members.  Newer committers appreciate additional guardrails to
>>>>> protect
>>>>>>>> them
>>>>>>>>> from accidentally doing the wrong thing, while those with more
>>>>>> experience
>>>>>>>>> want to be able to work unencumbered by restrictions of any
>> kind.
>>>>>>>>> 
>>>>>>>>> Our welcome email to new committers states “We like to work on
>>>> trust
>>>>>>>> rather
>>>>>>>>> than unnecessary constraints...Being a committer enables you to
>>>> more
>>>>>>>> easily
>>>>>>>>> make changes without needing to go through the patch submission
>>>>>> process”.
>>>>>>>>> I can see this as an argument against this proposal (perhaps
>> even
>>>> an
>>>>>>>>> argument against any form of branch protection).
>>>>>>>>> 
>>>>>>>>> In the scheme of things, this proposal makes very little
>>>> difference.
>>>>>>>> There
>>>>>>>>> are still other ways to get non-compiling commits onto develop
>>>> (e.g.
>>>>>>>>> waiting a long time between running PR checks and merging to
>>>>> develop).
>>>>>>>>> What’s more important is working well together as a community.
>>> So,
>>>>>>>> perhaps
>>>>>>>>> what’s best for the community is to encourage working on trust
>>>> rather
>>>>>>>> than
>>>>>>>>> unnecessary constraints.
>>>>>>>>> 
>>>>>>>>> -Owen
>>>>>>>>> 
>>>>>>>>> On Dec 31, 2019, at 10:56 AM, Kirk Lund <kl...@apache.org>
>>> wrote:
>>>>>>>>> 
>>>>>>>>> I'm happy to file multiple PRs when I need to merge multiple
>>>> commits
>>>>> to
>>>>>>>>> develop.
>>>>>>>>> 
>>>>>>>>> On Mon, Dec 30, 2019 at 5:45 PM Mark Hanson <
>> mhan...@pivotal.io>
>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> This change to disable all but squash-merge would be really
>> easy
>>> to
>>>>>>>>> revert. How about we try it for a while and see? If people
>> decide
>>>> it
>>>>> is
>>>>>>>>> really limiting them, we can change it back. Let’s do it for 1
>>>> month
>>>>>> and
>>>>>>>>> see how it goes. Does that sound reasonable?
>>>>>>>>> 
>>>>>>>>> Thanks,
>>>>>>>>> Mark
>>>>>>>>> 
>>>>>>>>> On Dec 30, 2019, at 5:25 PM, Owen Nichols <onich...@pivotal.io
>>> 
>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> Given that we adopted <
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> https://lists.apache.org/thread.html/c3eb5c028cb3a4d76024f928a7a33c0311228f5dbbcaa86287bf5826@%3Cdev.geode.apache.org%3E
>>>>>>>>>> 
>>>>>>>>> and still wish to continue <
>>>>>>>>> 
>>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> https://lists.apache.org/thread.html/8795697c1ad57068c053b48b4b1845005f3ade0be777e679eafe95db@%3Cdev.geode.apache.org%3E
>>>>>>>>>> 
>>>>>>>>> having branch protection rules to ensure every commit landing
>> in
>>>>>> develop
>>>>>>>>> has passed the required PR checks, it seems like that decision
>>>> alone
>>>>>>>>> mandates that we disable all merge mechanisms other than
>>>>>>>> squash-and-merge.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Allowing merge commits or rebase merges bypasses branch
>>> protection
>>>>> for
>>>>>>>>> 
>>>>>>>>> all commits other than the final one in the merge or rebase
>> set.
>>>>> Given
>>>>>>>>> that we decided <
>>>>>>>>> 
>>>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> https://lists.apache.org/thread.html/1ba19d9aeb206148c922afdd182ba322d6f128bbb83983f2f72a108e@%3Cdev.geode.apache.org%3E
>>>>>>>>>> 
>>>>>>>>> that bypassing PR checks should never be allowed, keeping this
>>>>> loophole
>>>>>>>>> open seems untenable.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> This is not just hypothetical — this loophole is causing real
>>>>> problems.
>>>>>>>>> 
>>>>>>>>> We now have commits on develop that don’t compile.  For
>> example:
>>>>>>>>> 
>>>>>>>>> git checkout 19eee7821322a1301f16bdcd31fd3b8c872a41b6
>>>>>>>>> ./gradlew devBuild
>>>>>>>>> ...spotlessJava FAILED
>>>>>>>>> We implemented branch protections to make this impossible,
>> right?
>>>>>>>>> 
>>>>>>>>> We can very easily close this loophole by disabling all but the
>>>>>>>>> 
>>>>>>>>> Squash&Merge button for PRs.  This will not make more work for
>>> any
>>>>>>>>> developer.  If you want to get multiple commits onto develop,
>>>> simply
>>>>>>>> submit
>>>>>>>>> each as a separate PR — that is the only way to assure that
>>>> required
>>>>> PR
>>>>>>>>> checks have passed for each.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On the other hand, if we as a Geode community feel strongly
>> that
>>>>>>>>> 
>>>>>>>>> bypassing branch protection via merge commits and rebase
>> commits
>>> is
>>>>>>>>> important to allow, why not also allow arbitrary overrides (or
>>> get
>>>>> rid
>>>>>> of
>>>>>>>>> branch protection entirely)?
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> -Owen
>>>>>>>>> 
>>>>>>>>> On Dec 20, 2019, at 12:31 PM, Blake Bender <bben...@pivotal.io
>>> 
>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> Just FWIW, the situation described of having multiple commits
>> in
>>> a
>>>>>>>>> 
>>>>>>>>> single
>>>>>>>>> 
>>>>>>>>> PR with separate associated JIRA tickets is still kind of
>>>>> problematic.
>>>>>>>>> 
>>>>>>>>> It
>>>>>>>>> 
>>>>>>>>> could well be the case that the commits are interdependent,
>> thus
>>>> when
>>>>>>>>> bisecting etc it's still not possible to revert the fix for a
>>>> single
>>>>>>>>> bug/feature/whatever atomically.  It's all good, though, I'm
>>>>> satisfied
>>>>>>>>> 
>>>>>>>>> no
>>>>>>>>> 
>>>>>>>>> one's forcing me to adopt practice I'm opposed to.  Apologies
>> for
>>>>>>>>> 
>>>>>>>>> getting
>>>>>>>>> 
>>>>>>>>> my feathers a little ruffled, or if I ruffled anyone else's in
>>>>> return.
>>>>>>>>> 
>>>>>>>>> Thanks,
>>>>>>>>> 
>>>>>>>>> Blake
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Fri, Dec 20, 2019 at 12:18 PM Nabarun Nag <n...@pivotal.io>
>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> Hi Dan,
>>>>>>>>> 
>>>>>>>>> When we do squash merge all the commit messages are preserved
>> and
>>>>> also
>>>>>>>>> 
>>>>>>>>> the
>>>>>>>>> 
>>>>>>>>> co-authored tag works when we do squash merge.
>>>>>>>>> So the authorship and history are preserved.
>>>>>>>>> 
>>>>>>>>> In my own personal experience and reverts and pinpointing
>>>> regression
>>>>>>>>> failures are tough when the commits are spread out. Also,
>> reverts
>>>> are
>>>>>>>>> easier when it is just one commit while we are bisecting
>>> failures.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Regards
>>>>>>>>> Naba
>>>>>>>>> 
>>>>>>>>> On Fri, Dec 20, 2019 at 12:07 PM Dan Smith <dsm...@pivotal.io>
>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> I'll change to -0.
>>>>>>>>> 
>>>>>>>>> I think merge commits are a nice way to record history in some
>>>> cases,
>>>>>>>>> 
>>>>>>>>> and
>>>>>>>>> 
>>>>>>>>> can also be a way to avoid messy conflicts that come with
>> rebase.
>>>>>>>>> 
>>>>>>>>> Merge
>>>>>>>>> 
>>>>>>>>> commits also preserve authorship of commits (compared to
>>>>>>>>> 
>>>>>>>>> squash-merge),
>>>>>>>>> 
>>>>>>>>> which I think is valuable as an open source community that is
>>>> trying
>>>>>>>>> 
>>>>>>>>> to
>>>>>>>>> 
>>>>>>>>> keep track of outside contributions.
>>>>>>>>> 
>>>>>>>>> That said, if the rest of y'all feel it will help to disable
>> the
>>>>>>>>> 
>>>>>>>>> button,
>>>>>>>>> 
>>>>>>>>> I
>>>>>>>>> 
>>>>>>>>> won't stand in the way.
>>>>>>>>> 
>>>>>>>>> -Dan
>>>>>>>>> 
>>>>>>>>> On Fri, Dec 20, 2019 at 11:50 AM Anthony Baker <
>>> aba...@pivotal.io>
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Whether we are talking about the geode/ repository or the
>>>>>>>>> 
>>>>>>>>> geode-native/
>>>>>>>>> 
>>>>>>>>> repository we are all one GEODE community.
>>>>>>>>> 
>>>>>>>>> The idea of a native client team may matter in some contexts
>> but
>>> in
>>>>>>>>> 
>>>>>>>>> this
>>>>>>>>> 
>>>>>>>>> space we are all GEODE contributors.
>>>>>>>>> 
>>>>>>>>> Adopting a common approach across our repos will make it easier
>>> for
>>>>>>>>> 
>>>>>>>>> new
>>>>>>>>> 
>>>>>>>>> contributors to engage, learn our norms, and join our efforts.
>>>>>>>>> 
>>>>>>>>> $0.02,
>>>>>>>>> Anthony
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Dec 20, 2019, at 11:32 AM, Blake Bender <bben...@pivotal.io
>>> 
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Is this a policy the native client team must abide by, as well?
>>> It
>>>>>>>>> 
>>>>>>>>> varies
>>>>>>>>> 
>>>>>>>>> slightly with what we've been doing, and all other things being
>>>>>>>>> 
>>>>>>>>> equal I
>>>>>>>>> 
>>>>>>>>> see
>>>>>>>>> 
>>>>>>>>> no reason for us to change that.  If I am to have any measure
>> of
>>>>>>>>> 
>>>>>>>>> control
>>>>>>>>> 
>>>>>>>>> over the nc repository, I will definitely enforce a 1:1
>>>>>>>>> 
>>>>>>>>> correspondence
>>>>>>>>> 
>>>>>>>>> between commits to develop and JIRA tickets.  IMO, if your
>>>>>>>>> 
>>>>>>>>> refactoring
>>>>>>>>> 
>>>>>>>>> in a
>>>>>>>>> 
>>>>>>>>> PR is sufficiently large or complex that it's difficult to
>> tease
>>> it
>>>>>>>>> 
>>>>>>>>> out
>>>>>>>>> 
>>>>>>>>> from the bug you're fixing or feature you're implementing, it
>>>> merits
>>>>>>>>> 
>>>>>>>>> its
>>>>>>>>> 
>>>>>>>>> own JIRA ticket and a separate PR.  If your "actual" fix then
>>>>>>>>> 
>>>>>>>>> becomes
>>>>>>>>> 
>>>>>>>>> dependent on the refactored code, that's a price I'm willing to
>>> pay
>>>>>>>>> 
>>>>>>>>> to
>>>>>>>>> 
>>>>>>>>> keep
>>>>>>>>> 
>>>>>>>>> history clean.
>>>>>>>>> 
>>>>>>>>> On the other hand, I see no real value in squashing to a single
>>>>>>>>> 
>>>>>>>>> commit
>>>>>>>>> 
>>>>>>>>> prior to submitting a PR, since your view of the changes on
>>> GitHub
>>>>>>>>> 
>>>>>>>>> is
>>>>>>>>> 
>>>>>>>>> essentially the same either way.  We haven't enforced this on
>> the
>>>> nc
>>>>>>>>> 
>>>>>>>>> repo,
>>>>>>>>> 
>>>>>>>>> and I'd prefer to keep it that way.
>>>>>>>>> 
>>>>>>>>> Thanks,
>>>>>>>>> 
>>>>>>>>> Blake
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Fri, Dec 20, 2019 at 10:29 AM Jinmei Liao <
>> jil...@pivotal.io>
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Merge commit is the new contributor's default setting. When we
>>> are
>>>>>>>>> 
>>>>>>>>> merging
>>>>>>>>> 
>>>>>>>>> new contributor's PR, since we are so used to THINKING
>>>>>>>>> 
>>>>>>>>> "squash-and-merge"
>>>>>>>>> 
>>>>>>>>> is the default, we forgot to check what the button really says
>>> when
>>>>>>>>> 
>>>>>>>>> we
>>>>>>>>> 
>>>>>>>>> are
>>>>>>>>> 
>>>>>>>>> merging other people's PR.
>>>>>>>>> 
>>>>>>>>> On Fri, Dec 20, 2019 at 10:18 AM Ernest Burghardt <
>>>>>>>>> 
>>>>>>>>> eburgha...@pivotal.io>
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> I'm a proponent of using squash-and-merge, and once a person
>> has
>>>>>>>>> 
>>>>>>>>> chosen
>>>>>>>>> 
>>>>>>>>> this option once it comes up by default afterwards...
>>>>>>>>> 
>>>>>>>>> Owen,  I don't think you have consensus to put forth this PR,
>>>>>>>>> 
>>>>>>>>> there
>>>>>>>>> 
>>>>>>>>> are
>>>>>>>>> 
>>>>>>>>> -1s
>>>>>>>>> 
>>>>>>>>> above... (early voting)
>>>>>>>>> 
>>>>>>>>> maybe we'll be better off socializing the norm of
>>> squash-and-merge
>>>>>>>>> 
>>>>>>>>> and
>>>>>>>>> 
>>>>>>>>> gaining a natural consensus that way...
>>>>>>>>> 
>>>>>>>>> On Fri, Dec 20, 2019 at 10:07 AM Owen Nichols <
>>>>>>>>> 
>>>>>>>>> onich...@pivotal.io
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> The proposed action manifests as a commit to the Geode git
>>>>>>>>> 
>>>>>>>>> repository,
>>>>>>>>> 
>>>>>>>>> so
>>>>>>>>> 
>>>>>>>>> a PR is an acceptable vehicle for voting in this case.
>>>>>>>>> 
>>>>>>>>> On Dec 20, 2019, at 9:38 AM, Bruce Schuchardt <
>>>>>>>>> 
>>>>>>>>> bschucha...@pivotal.io>
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> I see a lot of plus-ones and a "voting deadline" on this
>> DISCUSS
>>>>>>>>> 
>>>>>>>>> thread
>>>>>>>>> 
>>>>>>>>> and a request to "vote" using a PR.  This all seems out of
>> order
>>>>>>>>> 
>>>>>>>>> to
>>>>>>>>> 
>>>>>>>>> me.
>>>>>>>>> 
>>>>>>>>> Our votes are supposed to be on the email list, aren't they?
>> and
>>>>>>>>> 
>>>>>>>>> I
>>>>>>>>> 
>>>>>>>>> haven't
>>>>>>>>> 
>>>>>>>>> seen a VOTE request.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On 12/20/19 9:33 AM, Nabarun Nag wrote:
>>>>>>>>> 
>>>>>>>>> +1
>>>>>>>>> 
>>>>>>>>> On Fri, Dec 20, 2019 at 9:25 AM Owen Nichols <
>>>>>>>>> 
>>>>>>>>> onich...@pivotal.io
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Based on the feedback so far, I will amend the proposal to
>>>>>>>>> 
>>>>>>>>> drop
>>>>>>>>> 
>>>>>>>>> item
>>>>>>>>> 
>>>>>>>>> 2).
>>>>>>>>> 
>>>>>>>>> Therefore, the current ability to create merge commits using
>>>>>>>>> 
>>>>>>>>> command-line
>>>>>>>>> 
>>>>>>>>> git will remain available.
>>>>>>>>> 
>>>>>>>>> The proposal as amended is now:
>>>>>>>>> 
>>>>>>>>> Change GitHub settings to make "Squash and merge" the default
>>>>>>>>> (by removing “Create a merge commit” option).
>>>>>>>>> 
>>>>>>>>> Update the PR template to change the text "Is your initial
>>>>>>>>> 
>>>>>>>>> contribution
>>>>>>>>> 
>>>>>>>>> a single, squashed commit” to “Is your initial contribution
>>>>>>>>> 
>>>>>>>>> squashed
>>>>>>>>> 
>>>>>>>>> for
>>>>>>>>> 
>>>>>>>>> ease of review (e.g. a single commit, or a ‘refactoring’
>>>>>>>>> 
>>>>>>>>> commit
>>>>>>>>> 
>>>>>>>>> plus a
>>>>>>>>> 
>>>>>>>>> ‘fix’ commit)"
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> As Naba suggested, we can try it, and if we don’t like it,
>>>>>>>>> 
>>>>>>>>> it’s
>>>>>>>>> 
>>>>>>>>> simple
>>>>>>>>> 
>>>>>>>>> to
>>>>>>>>> 
>>>>>>>>> revert.
>>>>>>>>> 
>>>>>>>>> I’ve create a PR for the proposed change here:
>>>>>>>>> https://github.com/apache/geode/pull/4513
>>>>>>>>> 
>>>>>>>>> Please use the PR to vote for against this proposal.  It will
>>>>>>>>> 
>>>>>>>>> not
>>>>>>>>> 
>>>>>>>>> be
>>>>>>>>> 
>>>>>>>>> merged before the VOTING DEADLINE of DEC 31 (if no -1’s at
>>>>>>>>> 
>>>>>>>>> that
>>>>>>>>> 
>>>>>>>>> time)
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Dec 20, 2019, at 8:31 AM, Ju@N <jujora...@gmail.com>
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> +1
>>>>>>>>> 
>>>>>>>>> On Fri 20 Dec 2019 at 16:18, Owen Nichols <
>>>>>>>>> 
>>>>>>>>> onich...@pivotal.io>
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Hi Bruce, this proposal will not waste a single second of
>>>>>>>>> 
>>>>>>>>> your
>>>>>>>>> 
>>>>>>>>> time.  It
>>>>>>>>> 
>>>>>>>>> just prevents people from accidentally pressing a button
>>>>>>>>> 
>>>>>>>>> that
>>>>>>>>> 
>>>>>>>>> we
>>>>>>>>> 
>>>>>>>>> have
>>>>>>>>> 
>>>>>>>>> already agreed should never be pressed, but because we never
>>>>>>>>> 
>>>>>>>>> configured
>>>>>>>>> 
>>>>>>>>> our
>>>>>>>>> 
>>>>>>>>> GitHub to match our stated policy, is currently the default.
>>>>>>>>> 
>>>>>>>>> However, it will save a lot of time and frustration for
>>>>>>>>> 
>>>>>>>>> anyone
>>>>>>>>> 
>>>>>>>>> needing
>>>>>>>>> 
>>>>>>>>> to
>>>>>>>>> 
>>>>>>>>> bisect failures, revert, or cherry-pick changes, which has
>>>>>>>>> 
>>>>>>>>> merit
>>>>>>>>> 
>>>>>>>>> even if
>>>>>>>>> 
>>>>>>>>> you personally never do any of those three things.
>>>>>>>>> 
>>>>>>>>> Please start a separate thread if you would like to revisit
>>>>>>>>> 
>>>>>>>>> the
>>>>>>>>> 
>>>>>>>>> community
>>>>>>>>> 
>>>>>>>>> decision to require passing PR checks.
>>>>>>>>> 
>>>>>>>>> On Dec 20, 2019, at 7:49 AM, Bruce Schuchardt <
>>>>>>>>> 
>>>>>>>>> bschucha...@pivotal.io>
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> I agree with Jake.  I would go further by saying that I see
>>>>>>>>> 
>>>>>>>>> very
>>>>>>>>> 
>>>>>>>>> little
>>>>>>>>> 
>>>>>>>>> merit in this proposal.  I think we're getting more and more
>>>>>>>>> 
>>>>>>>>> bureaucratic
>>>>>>>>> 
>>>>>>>>> in our process and that it stifles productivity.  I was
>>>>>>>>> 
>>>>>>>>> recently
>>>>>>>>> 
>>>>>>>>> forced
>>>>>>>>> 
>>>>>>>>> to
>>>>>>>>> 
>>>>>>>>> spend three days fixing tests in which I had changed an
>>>>>>>>> 
>>>>>>>>> import
>>>>>>>>> 
>>>>>>>>> statement
>>>>>>>>> 
>>>>>>>>> before they would pass stress testing.  I'm glad the tests
>>>>>>>>> 
>>>>>>>>> now
>>>>>>>>> 
>>>>>>>>> pass
>>>>>>>>> 
>>>>>>>>> reliably but I was very frustrated by the process.
>>>>>>>>> 
>>>>>>>>> On 12/19/19 4:49 PM, Jacob Barrett wrote:
>>>>>>>>> 
>>>>>>>>> I’m in agreement with Dan. Changes to the infrastructure
>>>>>>>>> 
>>>>>>>>> to
>>>>>>>>> 
>>>>>>>>> flat
>>>>>>>>> 
>>>>>>>>> out
>>>>>>>>> 
>>>>>>>>> prevent things that should be self policing is annoying.
>>>>>>>>> 
>>>>>>>>> This
>>>>>>>>> 
>>>>>>>>> PR
>>>>>>>>> 
>>>>>>>>> review
>>>>>>>>> 
>>>>>>>>> lock we have had already cost us valuable time waiting for
>>>>>>>>> 
>>>>>>>>> PR
>>>>>>>>> 
>>>>>>>>> pipelines
>>>>>>>>> 
>>>>>>>>> to
>>>>>>>>> 
>>>>>>>>> pass that have no relevance to the commit, like CI work: I’d
>>>>>>>>> 
>>>>>>>>> hat
>>>>>>>>> 
>>>>>>>>> to
>>>>>>>>> 
>>>>>>>>> see
>>>>>>>>> 
>>>>>>>>> yet
>>>>>>>>> 
>>>>>>>>> another process enforced that Kees us from getting work done
>>>>>>>>> 
>>>>>>>>> when
>>>>>>>>> 
>>>>>>>>> necessary.
>>>>>>>>> 
>>>>>>>>> -Jake
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Dec 19, 2019, at 4:43 PM, Dan Smith <
>>>>>>>>> 
>>>>>>>>> dsm...@pivotal.io
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> -1 to (1) and (2).
>>>>>>>>> 
>>>>>>>>> I think merge commits are appropriate in certain
>>>>>>>>> 
>>>>>>>>> circumstances,
>>>>>>>>> 
>>>>>>>>> so I
>>>>>>>>> 
>>>>>>>>> don't
>>>>>>>>> 
>>>>>>>>> think we should make a blanket restriction. In fact I
>>>>>>>>> 
>>>>>>>>> think
>>>>>>>>> 
>>>>>>>>> our
>>>>>>>>> 
>>>>>>>>> release
>>>>>>>>> 
>>>>>>>>> process involves some merges.
>>>>>>>>> 
>>>>>>>>> I think setting standards on what is reasonable to be an
>>>>>>>>> 
>>>>>>>>> individual
>>>>>>>>> 
>>>>>>>>> commit
>>>>>>>>> 
>>>>>>>>> will do a lot more to clean up our history than blocking
>>>>>>>>> 
>>>>>>>>> merges.
>>>>>>>>> 
>>>>>>>>> We'd
>>>>>>>>> 
>>>>>>>>> rather not see commits like "Spotless Apply" in the
>>>>>>>>> 
>>>>>>>>> history,
>>>>>>>>> 
>>>>>>>>> but
>>>>>>>>> 
>>>>>>>>> if
>>>>>>>>> 
>>>>>>>>> reasonably separate and well written commits come in as
>>>>>>>>> 
>>>>>>>>> part
>>>>>>>>> 
>>>>>>>>> of
>>>>>>>>> 
>>>>>>>>> a
>>>>>>>>> 
>>>>>>>>> merge, I
>>>>>>>>> 
>>>>>>>>> think that's fine.
>>>>>>>>> 
>>>>>>>>> -Dan
>>>>>>>>> 
>>>>>>>>> On Thu, Dec 19, 2019 at 4:27 PM Jinmei Liao <
>>>>>>>>> 
>>>>>>>>> jil...@pivotal.io
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> +1
>>>>>>>>> 
>>>>>>>>> On Thu, Dec 19, 2019, 4:05 PM Owen Nichols <
>>>>>>>>> 
>>>>>>>>> onich...@pivotal.io
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> I’d like to advance this topic from an informal
>>>>>>>>> 
>>>>>>>>> request/discussion
>>>>>>>>> 
>>>>>>>>> to a
>>>>>>>>> 
>>>>>>>>> discussion of a concrete proposal.
>>>>>>>>> 
>>>>>>>>> To recap, it sounds like there is general agreement
>>>>>>>>> 
>>>>>>>>> that
>>>>>>>>> 
>>>>>>>>> commit
>>>>>>>>> 
>>>>>>>>> history
>>>>>>>>> 
>>>>>>>>> on
>>>>>>>>> 
>>>>>>>>> develop should be linear (no merge commits), and that
>>>>>>>>> 
>>>>>>>>> the
>>>>>>>>> 
>>>>>>>>> biggest
>>>>>>>>> 
>>>>>>>>> obstacle
>>>>>>>>> 
>>>>>>>>> to this is that the PR merge button in GitHub creates a
>>>>>>>>> 
>>>>>>>>> merge
>>>>>>>>> 
>>>>>>>>> commit
>>>>>>>>> 
>>>>>>>>> by
>>>>>>>>> 
>>>>>>>>> default.
>>>>>>>>> 
>>>>>>>>> I propose the following changes:
>>>>>>>>> 1) Change GitHub settings to remove the ability to
>>>>>>>>> 
>>>>>>>>> create
>>>>>>>>> 
>>>>>>>>> a
>>>>>>>>> 
>>>>>>>>> merge
>>>>>>>>> 
>>>>>>>>> commit.
>>>>>>>>> 
>>>>>>>>> This will make Squash & Merge the default.
>>>>>>>>> 
>>>>>>>>> 2) Change GitHub settings to require linear history on
>>>>>>>>> 
>>>>>>>>> develop.
>>>>>>>>> 
>>>>>>>>> This
>>>>>>>>> 
>>>>>>>>> prevents merge commits via command-line (not
>>>>>>>>> 
>>>>>>>>> recommended,
>>>>>>>>> 
>>>>>>>>> but
>>>>>>>>> 
>>>>>>>>> wiki
>>>>>>>>> 
>>>>>>>>> still
>>>>>>>>> 
>>>>>>>>> has instructions for merging PRs this way).
>>>>>>>>> 
>>>>>>>>> 3) Update the PR template to change the text "Is your
>>>>>>>>> 
>>>>>>>>> initial
>>>>>>>>> 
>>>>>>>>> contribution
>>>>>>>>> 
>>>>>>>>> a single, squashed commit” to “Is your initial
>>>>>>>>> 
>>>>>>>>> contribution
>>>>>>>>> 
>>>>>>>>> squashed
>>>>>>>>> 
>>>>>>>>> for
>>>>>>>>> 
>>>>>>>>> ease of review (e.g. a single commit, or a
>>>>>>>>> 
>>>>>>>>> ‘refactoring’
>>>>>>>>> 
>>>>>>>>> commit
>>>>>>>>> 
>>>>>>>>> plus
>>>>>>>>> 
>>>>>>>>> a
>>>>>>>>> 
>>>>>>>>> ‘fix’ commit)"
>>>>>>>>> 
>>>>>>>>> For clarity, I am proposing no-change in the following
>>>>>>>>> 
>>>>>>>>> areas:
>>>>>>>>> 
>>>>>>>>> i) Leave Rebase & Merge as an option for PRs that have
>>>>>>>>> 
>>>>>>>>> been
>>>>>>>>> 
>>>>>>>>> structured to
>>>>>>>>> 
>>>>>>>>> benefit from it (this can make it easier in a bisect to
>>>>>>>>> 
>>>>>>>>> see
>>>>>>>>> 
>>>>>>>>> whether
>>>>>>>>> 
>>>>>>>>> the
>>>>>>>>> 
>>>>>>>>> refactoring or the “fix” broke something).
>>>>>>>>> ii) Leave existing wording in the wiki as-is [stating
>>>>>>>>> 
>>>>>>>>> that
>>>>>>>>> 
>>>>>>>>> squashing
>>>>>>>>> 
>>>>>>>>> is
>>>>>>>>> 
>>>>>>>>> preferred].
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Please comment via this email thread.
>>>>>>>>> -Owen
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Dec 16, 2019, at 10:49 AM, Kirk Lund <
>>>>>>>>> 
>>>>>>>>> kl...@apache.org>
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> I think it's already resolved Udo ;)
>>>>>>>>> 
>>>>>>>>> Here's the problem, if I fixup a dunit test by
>>>>>>>>> 
>>>>>>>>> removing
>>>>>>>>> 
>>>>>>>>> all
>>>>>>>>> 
>>>>>>>>> uses
>>>>>>>>> 
>>>>>>>>> of
>>>>>>>>> 
>>>>>>>>> "this."
>>>>>>>>> 
>>>>>>>>> and I rename the dunit test, then git doesn't remember
>>>>>>>>> 
>>>>>>>>> that
>>>>>>>>> 
>>>>>>>>> the
>>>>>>>>> 
>>>>>>>>> file
>>>>>>>>> 
>>>>>>>>> is a
>>>>>>>>> 
>>>>>>>>> rename -- it forever afterwards interprets it as a new
>>>>>>>>> 
>>>>>>>>> file
>>>>>>>>> 
>>>>>>>>> that I
>>>>>>>>> 
>>>>>>>>> created
>>>>>>>>> 
>>>>>>>>> if I touch more than 50% of the lines (which "this."
>>>>>>>>> 
>>>>>>>>> can
>>>>>>>>> 
>>>>>>>>> easily
>>>>>>>>> 
>>>>>>>>> do). If
>>>>>>>>> 
>>>>>>>>> we
>>>>>>>>> 
>>>>>>>>> squash two commits: the rename and the cleanup of that
>>>>>>>>> 
>>>>>>>>> dunit
>>>>>>>>> 
>>>>>>>>> test
>>>>>>>>> 
>>>>>>>>> --
>>>>>>>>> 
>>>>>>>>> then
>>>>>>>>> 
>>>>>>>>> we effectively lose the history of that file and it
>>>>>>>>> 
>>>>>>>>> shows
>>>>>>>>> 
>>>>>>>>> that
>>>>>>>>> 
>>>>>>>>> I
>>>>>>>>> 
>>>>>>>>> created
>>>>>>>>> 
>>>>>>>>> a
>>>>>>>>> 
>>>>>>>>> new file.
>>>>>>>>> 
>>>>>>>>> Also for the record, I've been working on Geode since
>>>>>>>>> 
>>>>>>>>> the
>>>>>>>>> 
>>>>>>>>> beginning
>>>>>>>>> 
>>>>>>>>> and I
>>>>>>>>> 
>>>>>>>>> was never made aware of this change in our process. I
>>>>>>>>> 
>>>>>>>>> never
>>>>>>>>> 
>>>>>>>>> voted
>>>>>>>>> 
>>>>>>>>> on
>>>>>>>>> 
>>>>>>>>> it.
>>>>>>>>> 
>>>>>>>>> I'm not a big fan of changing various details in our
>>>>>>>>> 
>>>>>>>>> process
>>>>>>>>> 
>>>>>>>>> every
>>>>>>>>> 
>>>>>>>>> single
>>>>>>>>> 
>>>>>>>>> week. It's very easy to miss these discussions unless
>>>>>>>>> 
>>>>>>>>> someone
>>>>>>>>> 
>>>>>>>>> points it
>>>>>>>>> 
>>>>>>>>> out
>>>>>>>>> 
>>>>>>>>> to me.
>>>>>>>>> 
>>>>>>>>> On Mon, Dec 16, 2019 at 10:34 AM Udo Kohlmeyer <
>>>>>>>>> 
>>>>>>>>> ukohlme...@pivotal.io>
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> I'm not sure what this discussion is about... WE, as
>>>>>>>>> 
>>>>>>>>> a
>>>>>>>>> 
>>>>>>>>> community,
>>>>>>>>> 
>>>>>>>>> have
>>>>>>>>> 
>>>>>>>>> agreed in common practices, in two place no less...
>>>>>>>>> 
>>>>>>>>> 1) Quoting our PR template
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> For all changes:
>>>>>>>>> 
>>>>>>>>> *
>>>>>>>>> 
>>>>>>>>> Is there a JIRA ticket associated with this PR? Is it
>>>>>>>>> 
>>>>>>>>> referenced
>>>>>>>>> 
>>>>>>>>> in
>>>>>>>>> 
>>>>>>>>> the commit message?
>>>>>>>>> 
>>>>>>>>> *
>>>>>>>>> 
>>>>>>>>> Has your PR been rebased against the latest commit
>>>>>>>>> 
>>>>>>>>> within
>>>>>>>>> 
>>>>>>>>> the
>>>>>>>>> 
>>>>>>>>> target
>>>>>>>>> 
>>>>>>>>> branch (typically|develop|)?
>>>>>>>>> 
>>>>>>>>> *
>>>>>>>>> 
>>>>>>>>> ***Is your initial contribution a single, squashed
>>>>>>>>> 
>>>>>>>>> commit?*
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> *
>>>>>>>>> 
>>>>>>>>> Does|gradlew build|run cleanly?
>>>>>>>>> 
>>>>>>>>> *
>>>>>>>>> 
>>>>>>>>> Have you written or updated unit tests to verify your
>>>>>>>>> 
>>>>>>>>> changes?
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> *
>>>>>>>>> 
>>>>>>>>> If adding new dependencies to the code, are these
>>>>>>>>> 
>>>>>>>>> dependencies
>>>>>>>>> 
>>>>>>>>> licensed in a way that is compatible for inclusion
>>>>>>>>> 
>>>>>>>>> underASF
>>>>>>>>> 
>>>>>>>>> 2.0
>>>>>>>>> 
>>>>>>>>> <
>>>>>>>>> 
>>>>>>>>> http://www.apache.org/legal/resolved.html#category-a
>>>>>>>>> 
>>>>>>>>> ?
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On our PR template we call out that the initial PR
>>>>>>>>> 
>>>>>>>>> commit
>>>>>>>>> 
>>>>>>>>> should
>>>>>>>>> 
>>>>>>>>> be
>>>>>>>>> 
>>>>>>>>> squashed.
>>>>>>>>> 
>>>>>>>>> 2)
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>> https://cwiki.apache.org/confluence/display/GEODE/Code+contributions
>>>>>>>>> 
>>>>>>>>> <
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>> https://cwiki.apache.org/confluence/display/GEODE/Code+contributions
>>>>>>>>> 
>>>>>>>>> -- See "Accepting a PR Using the Command Line" -
>>>>>>>>> 
>>>>>>>>> Point
>>>>>>>>> 
>>>>>>>>> #3.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> @Kirk, if each of your commits "stands alone", I
>>>>>>>>> 
>>>>>>>>> commend
>>>>>>>>> 
>>>>>>>>> you
>>>>>>>>> 
>>>>>>>>> on
>>>>>>>>> 
>>>>>>>>> the
>>>>>>>>> 
>>>>>>>>> diligence, but in reality, they should either then be
>>>>>>>>> 
>>>>>>>>> stand
>>>>>>>>> 
>>>>>>>>> alone
>>>>>>>>> 
>>>>>>>>> PR's
>>>>>>>>> 
>>>>>>>>> or just extra work created for yourself.
>>>>>>>>> 
>>>>>>>>> If we want to change the way we have agreed upon we
>>>>>>>>> 
>>>>>>>>> submit/commit/merge
>>>>>>>>> 
>>>>>>>>> changes back into develop... Then this is another
>>>>>>>>> 
>>>>>>>>> discussion
>>>>>>>>> 
>>>>>>>>> thread,
>>>>>>>>> 
>>>>>>>>> until then, I think we should all remind ourselves on
>>>>>>>>> 
>>>>>>>>> our
>>>>>>>>> 
>>>>>>>>> agreed
>>>>>>>>> 
>>>>>>>>> contributions code of conduct.
>>>>>>>>> 
>>>>>>>>> --Udo
>>>>>>>>> 
>>>>>>>>> On 12/16/19 9:59 AM, Nabarun Nag wrote:
>>>>>>>>> 
>>>>>>>>> Kirk, I believe that creating a Pull Request with
>>>>>>>>> 
>>>>>>>>> multiple
>>>>>>>>> 
>>>>>>>>> commits is
>>>>>>>>> 
>>>>>>>>> ok.
>>>>>>>>> 
>>>>>>>>> It's just in the end that when it's being pushed to
>>>>>>>>> 
>>>>>>>>> develop
>>>>>>>>> 
>>>>>>>>> branch,
>>>>>>>>> 
>>>>>>>>> it
>>>>>>>>> 
>>>>>>>>> needs to be squash merged. I believe that is what
>>>>>>>>> 
>>>>>>>>> you
>>>>>>>>> 
>>>>>>>>> have
>>>>>>>>> 
>>>>>>>>> mentioned
>>>>>>>>> 
>>>>>>>>> in
>>>>>>>>> 
>>>>>>>>> the
>>>>>>>>> 
>>>>>>>>> first paragraph, and I am more than happy with that.
>>>>>>>>> If you can see in the first screenshot comparison
>>>>>>>>> 
>>>>>>>>> that
>>>>>>>>> 
>>>>>>>>> I
>>>>>>>>> 
>>>>>>>>> had
>>>>>>>>> 
>>>>>>>>> attached
>>>>>>>>> 
>>>>>>>>> in
>>>>>>>>> 
>>>>>>>>> the first email in this thread is what I want to
>>>>>>>>> 
>>>>>>>>> avoid.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> Thank you for your feedback.
>>>>>>>>> 
>>>>>>>>> Regards
>>>>>>>>> Naba
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Mon, Dec 16, 2019 at 9:47 AM Kirk Lund <
>>>>>>>>> 
>>>>>>>>> kl...@apache.org>
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> Whenever I submit a PR with multiple commits that I
>>>>>>>>> 
>>>>>>>>> intend
>>>>>>>>> 
>>>>>>>>> to
>>>>>>>>> 
>>>>>>>>> rebase
>>>>>>>>> 
>>>>>>>>> to
>>>>>>>>> 
>>>>>>>>> develop, I always try to ensure that each commit
>>>>>>>>> 
>>>>>>>>> stands
>>>>>>>>> 
>>>>>>>>> alone
>>>>>>>>> 
>>>>>>>>> as
>>>>>>>>> 
>>>>>>>>> is
>>>>>>>>> 
>>>>>>>>> (compiles and passes tests). Separating file
>>>>>>>>> 
>>>>>>>>> renames
>>>>>>>>> 
>>>>>>>>> and
>>>>>>>>> 
>>>>>>>>> refactoring
>>>>>>>>> 
>>>>>>>>> from
>>>>>>>>> 
>>>>>>>>> behavior changes into different commits seems very
>>>>>>>>> 
>>>>>>>>> valuable
>>>>>>>>> 
>>>>>>>>> to
>>>>>>>>> 
>>>>>>>>> me,
>>>>>>>>> 
>>>>>>>>> and
>>>>>>>>> 
>>>>>>>>> I've
>>>>>>>>> 
>>>>>>>>> had trouble getting people to review PRs without
>>>>>>>>> 
>>>>>>>>> this
>>>>>>>>> 
>>>>>>>>> separation
>>>>>>>>> 
>>>>>>>>> (but
>>>>>>>>> 
>>>>>>>>> it
>>>>>>>>> 
>>>>>>>>> could be squashed as it's merged to develop).
>>>>>>>>> 
>>>>>>>>> It sounds to me like the real problem is (a) some
>>>>>>>>> 
>>>>>>>>> PRs
>>>>>>>>> 
>>>>>>>>> have
>>>>>>>>> 
>>>>>>>>> multiple
>>>>>>>>> 
>>>>>>>>> commits
>>>>>>>>> 
>>>>>>>>> that don't compile or don't pass tests, and (b)
>>>>>>>>> 
>>>>>>>>> some
>>>>>>>>> 
>>>>>>>>> PRs
>>>>>>>>> 
>>>>>>>>> that
>>>>>>>>> 
>>>>>>>>> should
>>>>>>>>> 
>>>>>>>>> be
>>>>>>>>> 
>>>>>>>>> merged with squash are not (by accident most
>>>>>>>>> 
>>>>>>>>> likely).
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> I can submit multiple PRs instead of one PR with
>>>>>>>>> 
>>>>>>>>> multiple
>>>>>>>>> 
>>>>>>>>> commits.
>>>>>>>>> 
>>>>>>>>> So
>>>>>>>>> 
>>>>>>>>> I'll
>>>>>>>>> 
>>>>>>>>> change my response to -0 if that helps prevent
>>>>>>>>> 
>>>>>>>>> commits
>>>>>>>>> 
>>>>>>>>> to
>>>>>>>>> 
>>>>>>>>> develop
>>>>>>>>> 
>>>>>>>>> that
>>>>>>>>> 
>>>>>>>>> don't compile or pass tests. Without preventing
>>>>>>>>> 
>>>>>>>>> rebase
>>>>>>>>> 
>>>>>>>>> or
>>>>>>>>> 
>>>>>>>>> merge
>>>>>>>>> 
>>>>>>>>> commits
>>>>>>>>> 
>>>>>>>>> from github, I'm not sure how we can really enforce
>>>>>>>>> 
>>>>>>>>> this
>>>>>>>>> 
>>>>>>>>> or
>>>>>>>>> 
>>>>>>>>> prevent
>>>>>>>>> 
>>>>>>>>> (b)
>>>>>>>>> 
>>>>>>>>> above.
>>>>>>>>> 
>>>>>>>>> On Fri, Dec 13, 2019 at 3:38 PM Alexander Murmann <
>>>>>>>>> 
>>>>>>>>> amurm...@pivotal.io>
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> I wonder if Kirk's and Naba's statements are
>>>>>>>>> 
>>>>>>>>> necessarily
>>>>>>>>> 
>>>>>>>>> at
>>>>>>>>> 
>>>>>>>>> odds.
>>>>>>>>> 
>>>>>>>>> Make the change easy (warning: this may be hard),
>>>>>>>>> 
>>>>>>>>> then
>>>>>>>>> 
>>>>>>>>> make
>>>>>>>>> 
>>>>>>>>> the
>>>>>>>>> 
>>>>>>>>> easy
>>>>>>>>> 
>>>>>>>>> change."
>>>>>>>>> 
>>>>>>>>> -Kent Beck
>>>>>>>>> 
>>>>>>>>> Following Kent Beck's advise might reasonably
>>>>>>>>> 
>>>>>>>>> split
>>>>>>>>> 
>>>>>>>>> into
>>>>>>>>> 
>>>>>>>>> two
>>>>>>>>> 
>>>>>>>>> commits.
>>>>>>>>> 
>>>>>>>>> One
>>>>>>>>> 
>>>>>>>>> refactor commit and a separate commit that
>>>>>>>>> 
>>>>>>>>> introduces
>>>>>>>>> 
>>>>>>>>> the
>>>>>>>>> 
>>>>>>>>> actual
>>>>>>>>> 
>>>>>>>>> change.
>>>>>>>>> 
>>>>>>>>> They should be individually revertible and might
>>>>>>>>> 
>>>>>>>>> be
>>>>>>>>> 
>>>>>>>>> easier
>>>>>>>>> 
>>>>>>>>> understood
>>>>>>>>> 
>>>>>>>>> if
>>>>>>>>> 
>>>>>>>>> split out. I vividly remember a change on our code
>>>>>>>>> 
>>>>>>>>> base
>>>>>>>>> 
>>>>>>>>> where
>>>>>>>>> 
>>>>>>>>> someone
>>>>>>>>> 
>>>>>>>>> did a
>>>>>>>>> 
>>>>>>>>> huge amount of refactoring that resulted than in
>>>>>>>>> 
>>>>>>>>> one
>>>>>>>>> 
>>>>>>>>> parameter
>>>>>>>>> 
>>>>>>>>> changing
>>>>>>>>> 
>>>>>>>>> in
>>>>>>>>> 
>>>>>>>>> order to get the desired functionality change. If
>>>>>>>>> 
>>>>>>>>> that
>>>>>>>>> 
>>>>>>>>> was
>>>>>>>>> 
>>>>>>>>> in
>>>>>>>>> 
>>>>>>>>> one
>>>>>>>>> 
>>>>>>>>> commit,
>>>>>>>>> 
>>>>>>>>> it would be hard to see the actual change. If
>>>>>>>>> 
>>>>>>>>> split
>>>>>>>>> 
>>>>>>>>> out,
>>>>>>>>> 
>>>>>>>>> it's
>>>>>>>>> 
>>>>>>>>> beautiful
>>>>>>>>> 
>>>>>>>>> and
>>>>>>>>> 
>>>>>>>>> crystal clear.
>>>>>>>>> 
>>>>>>>>> I am unsure how that would be reflected in terms
>>>>>>>>> 
>>>>>>>>> of
>>>>>>>>> 
>>>>>>>>> JIRA
>>>>>>>>> 
>>>>>>>>> ticket
>>>>>>>>> 
>>>>>>>>> references.
>>>>>>>>> 
>>>>>>>>> Usually we assume that if there is a commit with
>>>>>>>>> 
>>>>>>>>> the
>>>>>>>>> 
>>>>>>>>> ticket
>>>>>>>>> 
>>>>>>>>> number,
>>>>>>>>> 
>>>>>>>>> the
>>>>>>>>> 
>>>>>>>>> issue is resolved. Maybe the key here is to create
>>>>>>>>> 
>>>>>>>>> a
>>>>>>>>> 
>>>>>>>>> separate
>>>>>>>>> 
>>>>>>>>> refactoring
>>>>>>>>> 
>>>>>>>>> ticket.
>>>>>>>>> 
>>>>>>>>> Would that allow us to have our cake and eat it
>>>>>>>>> 
>>>>>>>>> too?
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Fri, Dec 13, 2019 at 3:16 PM Nabarun Nag <
>>>>>>>>> 
>>>>>>>>> n...@pivotal.io>
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> It is to help with bisect operations when things
>>>>>>>>> 
>>>>>>>>> start
>>>>>>>>> 
>>>>>>>>> failing
>>>>>>>>> 
>>>>>>>>> ...
>>>>>>>>> 
>>>>>>>>> helps
>>>>>>>>> 
>>>>>>>>> us
>>>>>>>>> 
>>>>>>>>> it revert and build faster.
>>>>>>>>> also with cherry picking features / fixes to
>>>>>>>>> 
>>>>>>>>> previous
>>>>>>>>> 
>>>>>>>>> versions
>>>>>>>>> 
>>>>>>>>> .
>>>>>>>>> 
>>>>>>>>> And keeping the git history clean with no
>>>>>>>>> 
>>>>>>>>> unnecessary
>>>>>>>>> 
>>>>>>>>> “merge
>>>>>>>>> 
>>>>>>>>> commits”.
>>>>>>>>> 
>>>>>>>>> Regards
>>>>>>>>> Naba
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> On Fri, Dec 13, 2019 at 2:25 PM Kirk Lund <
>>>>>>>>> 
>>>>>>>>> kl...@apache.org>
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> -1 I really like to sometimes have more than 1
>>>>>>>>> 
>>>>>>>>> commit
>>>>>>>>> 
>>>>>>>>> in
>>>>>>>>> 
>>>>>>>>> a
>>>>>>>>> 
>>>>>>>>> PR
>>>>>>>>> 
>>>>>>>>> and
>>>>>>>>> 
>>>>>>>>> keep
>>>>>>>>> 
>>>>>>>>> them
>>>>>>>>> 
>>>>>>>>> separate when they merge to develop
>>>>>>>>> 
>>>>>>>>> On Tue, Oct 22, 2019 at 5:12 PM Nabarun Nag <
>>>>>>>>> 
>>>>>>>>> n...@pivotal.io>
>>>>>>>>> 
>>>>>>>>> wrote:
>>>>>>>>> 
>>>>>>>>> Hi Geode Committers,
>>>>>>>>> 
>>>>>>>>> A kind request for using squash commit instead
>>>>>>>>> 
>>>>>>>>> of
>>>>>>>>> 
>>>>>>>>> using
>>>>>>>>> 
>>>>>>>>> merge.
>>>>>>>>> 
>>>>>>>>> This will really help us in our bisect
>>>>>>>>> 
>>>>>>>>> operations
>>>>>>>>> 
>>>>>>>>> when a
>>>>>>>>> 
>>>>>>>>> regression/flakiness in the product is
>>>>>>>>> 
>>>>>>>>> introduced.
>>>>>>>>> 
>>>>>>>>> We
>>>>>>>>> 
>>>>>>>>> can
>>>>>>>>> 
>>>>>>>>> automate
>>>>>>>>> 
>>>>>>>>> and
>>>>>>>>> 
>>>>>>>>> go
>>>>>>>>> 
>>>>>>>>> through fewer commits faster, avoiding commits
>>>>>>>>> 
>>>>>>>>> like
>>>>>>>>> 
>>>>>>>>> "spotless
>>>>>>>>> 
>>>>>>>>> fix"
>>>>>>>>> 
>>>>>>>>> and
>>>>>>>>> 
>>>>>>>>> "re-trigger precheck-in" or other minor commits
>>>>>>>>> 
>>>>>>>>> in
>>>>>>>>> 
>>>>>>>>> the
>>>>>>>>> 
>>>>>>>>> merged
>>>>>>>>> 
>>>>>>>>> branch.
>>>>>>>>> 
>>>>>>>>> Also, please use the commit format : (helps us
>>>>>>>>> 
>>>>>>>>> to
>>>>>>>>> 
>>>>>>>>> know
>>>>>>>>> 
>>>>>>>>> who
>>>>>>>>> 
>>>>>>>>> worked
>>>>>>>>> 
>>>>>>>>> on
>>>>>>>>> 
>>>>>>>>> it,
>>>>>>>>> 
>>>>>>>>> what is the history)
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> *                GEODE-xxxx: <brief intro >
>>>>>>>>> * explanation line 1
>>>>>>>>> 
>>>>>>>>> *
>>>>>>>>> 
>>>>>>>>> explanation
>>>>>>>>> 
>>>>>>>>> line
>>>>>>>>> 
>>>>>>>>> 2*
>>>>>>>>> 
>>>>>>>>> This is not a rule or anything, but a request
>>>>>>>>> 
>>>>>>>>> to
>>>>>>>>> 
>>>>>>>>> help
>>>>>>>>> 
>>>>>>>>> out
>>>>>>>>> 
>>>>>>>>> your
>>>>>>>>> 
>>>>>>>>> fellow
>>>>>>>>> 
>>>>>>>>> committers in quickly detecting a problem.
>>>>>>>>> 
>>>>>>>>> For inspiration, we can look into Apache Kafka
>>>>>>>>> 
>>>>>>>>> /
>>>>>>>>> 
>>>>>>>>> Spark
>>>>>>>>> 
>>>>>>>>> where
>>>>>>>>> 
>>>>>>>>> they
>>>>>>>>> 
>>>>>>>>> have
>>>>>>>>> 
>>>>>>>>> a
>>>>>>>>> 
>>>>>>>>> complete linear graph for their main branch
>>>>>>>>> 
>>>>>>>>> HEAD
>>>>>>>>> 
>>>>>>>>> [see
>>>>>>>>> 
>>>>>>>>> attachment]
>>>>>>>>> 
>>>>>>>>> Regards
>>>>>>>>> Naba.
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> --
>>>>>>>>> 
>>>>>>>>> Ju@N
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> 
>>>>>>>>> --
>>>>>>>>> Cheers
>>>>>>>>> 
>>>>>>>>> Jinmei
>>>>>>>> 
>>>>>>>> 
>>>>>> 
>>>>>> 
>>>>> 
>>>> 
>>> 
>> 

Reply via email to