Yes, I got freaked out somehow this morning by thinking I had accidentally
clicked the wrong button to include all the individual commits in my PR to
the develop branch, (luckily it's just a wrong view). I would think disable
that button would be a good idea.

On Thu, Dec 19, 2019 at 5:04 PM Nabarun Nag <n...@pivotal.io> wrote:

> Hi all,
>
> This is not a blanket restriction.
> My suggestion, like last time, lets try it out and this time we don't even
> need Apache Infra to step in. Feels like it has been requested in multiple
> INFRA JIRAs by so many Apache projects to enable only the squash merge
> button and disable the others, that this setting has been moved to a simple
> entry in .asf.yml file in root git repository
>
> Again this is a setting only for the develop branch. And can be reversed
> with a simple commit.
>
> I agree too much policing is a bad thing, but I want to look at it as a
> safeguard. I have spoken to multiple developers who have mentioned they
> clicked the wrong button in a hurry or the page refreshed and the commit
> got merged in a wrong way.
>
> Regards
> Naba
>
> Reference :
>
> https://cwiki.apache.org/confluence/display/INFRA/.asf.yaml+features+for+git+repositories
> Merge buttons
>
> Projects can enable/disable the "merge PR" button in the GitHub UI and
> configure which actions should be allowed by adding the following
> configuration (or derivatives thereof):
> github:
>   enabled_merge_buttons:
>     # enable squash button:
>     squash:  true
>     # enable merge button:
>     merge:   true
>     # disable rebase button:
>     rebase:  false
>
>
> On Thu, 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.
> > >>>>>>>>>>>>
> > >>>>>>>>>>>>
> > >>>>>>>>>>>>
> > >>>>>>
> > >>>>
> > >>>>
> > >>>
> >
> >
>


-- 
Cheers

Jinmei

Reply via email to