If the appropriate or necessary process is a merge then this proposal prevents that. I am not interested in any hard restrictions like this. You proposal in response to dan is not palatable by disabling merges via github but allowing it manually.
> On Dec 19, 2019, at 4:54 PM, Owen Nichols <onich...@pivotal.io> wrote: > > 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. >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>>>>>>>> >>>>>>> >>>>> >>>>> >>>> >