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

Reply via email to