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