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 > >>> > >