This proposal in no way prevents you from getting work done.  Squash is always 
enabled and always the most acceptable way to bring changes to develop.

Please start a separate thread if you would like to revisit the community 
decision to require passing PR checks.

> On Dec 19, 2019, at 4:49 PM, Jacob Barrett <jbarr...@pivotal.io> 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.
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>>>>>>>> 
>>>>>> 
>>>> 
>>>> 
>>> 

Reply via email to