Aaron ,

Is it not the case currently? If I am working on a feature modifying class
X and another developer makes some refactoring changes on class X and
pushes it to develop, won't I have to resolve the merge commits anyway.


Regards
Naba


On Tue, Dec 31, 2019 at 6:01 PM Aaron Lindsey <aaronlind...@apache.org>
wrote:

> Suppose I’m refactoring the same classes I’m touching for the feature. I
> do the refactoring on one branch and submit a PR for that. Then I implement
> the feature on another branch which is based on develop and does not have
> the refactoring changes since those are not merged yet. I’ll have to
> resolve conflicts on the second PR that I merge.
>
> Having interdependent PRs where one PR branch is based on another PR
> branch is not something I’ve tried. That requires more overhead in having
> to create more PRs and branches. And if you have N interdependent PRs, you
> have to do N-1 merges each time a PR is merged to develop (to update the
> other branches). It could be done, but is it worth the hassle?
>
> One more point about rebase-and-merge is that it seems like this would
> make bisecting a failure easier since there would be smaller commits.
>
> Aaron
>
> > On Dec 31, 2019, at 5:41 PM, Owen Nichols <onich...@pivotal.io> wrote:
> >
> > Can you elaborate on why you would have to deal with conflicts if the
> > refactoring work was kept as a separate PR from the fix?
> >
> > As with many git workflows, there’s an easy way and a hard way to manage
> > interdependent PRs (tl;dr only merge, never rebase!). I wonder if this
> > points out an opportunity for a “tips and tricks” page on the Geode wiki.
> >
> > On Tue, Dec 31, 2019 at 5:22 PM Aaron Lindsey <aaronlind...@apache.org>
> > wrote:
> >
> >> -0.9
> >>
> >> I’m not in favor of the revised proposal that disallows
> rebase-and-merge.
> >> Say I am working on a PR and I have a refactor commit and another commit
> >> which implements a new feature. I don’t want those commits to get
> squashed
> >> because that makes it hard to understand the diff. However, if I make
> those
> >> commits as two separate PRs then I am going to have to deal with
> conflicts.
> >>
> >> I’m not sure when we made it a rule that every commit in develop had to
> >> compile and pass tests. I know we implemented a rule that all PRs had to
> >> pass certain checks, but I never thought that rule implied all commits
> had
> >> to pass those checks.
> >>
> >> In general I just don’t see the problem with rebase-and-merge and this
> >> feels like an unnecessary restriction, but I will go with it if that’s
> what
> >> everyone wants to do.
> >>
> >> Aaron
> >>
> >>> On Dec 31, 2019, at 3:09 PM, Owen Nichols <onich...@pivotal.io> wrote:
> >>>
> >>> To recap, this proposal is now revised to remove 2 of the 3 merge
> options
> >>> from GitHub, leaving only Squash and Merge.  PR #4513
> >>> <https://github.com/apache/geode/pull/4513> serves as an exhibit of
> >> what is
> >>> proposed (it is not to be merged unless discussion leads to consensus
> >> and a
> >>> successful vote).  Please use the dev list (not the PR) for all
> >> discussion
> >>> (and voting, if we get that far).
> >>>
> >>> Squash and merge is already used almost exclusively by the Geode
> >> community,
> >>> with any exceptions tending to be accidental more often than
> intentional.
> >>> However, some have raised the concern that implementing this
> restriction
> >>> could result in harm or wasted time.  Can someone give an example of a
> >> such
> >>> a scenario?
> >>>
> >>> It seems there is a divide here between junior and senior community
> >>> members.  Newer committers appreciate additional guardrails to protect
> >> them
> >>> from accidentally doing the wrong thing, while those with more
> experience
> >>> want to be able to work unencumbered by restrictions of any kind.
> >>>
> >>> Our welcome email to new committers states “We like to work on trust
> >> rather
> >>> than unnecessary constraints...Being a committer enables you to more
> >> easily
> >>> make changes without needing to go through the patch submission
> process”.
> >>> I can see this as an argument against this proposal (perhaps even an
> >>> argument against any form of branch protection).
> >>>
> >>> In the scheme of things, this proposal makes very little difference.
> >> There
> >>> are still other ways to get non-compiling commits onto develop (e.g.
> >>> waiting a long time between running PR checks and merging to develop).
> >>> What’s more important is working well together as a community. So,
> >> perhaps
> >>> what’s best for the community is to encourage working on trust rather
> >> than
> >>> unnecessary constraints.
> >>>
> >>> -Owen
> >>>
> >>> On Dec 31, 2019, at 10:56 AM, Kirk Lund <kl...@apache.org> wrote:
> >>>
> >>> I'm happy to file multiple PRs when I need to merge multiple commits to
> >>> develop.
> >>>
> >>> On Mon, Dec 30, 2019 at 5:45 PM Mark Hanson <mhan...@pivotal.io>
> wrote:
> >>>
> >>> This change to disable all but squash-merge would be really easy to
> >>> revert. How about we try it for a while and see? If people decide it is
> >>> really limiting them, we can change it back. Let’s do it for 1 month
> and
> >>> see how it goes. Does that sound reasonable?
> >>>
> >>> Thanks,
> >>> Mark
> >>>
> >>> On Dec 30, 2019, at 5:25 PM, Owen Nichols <onich...@pivotal.io> wrote:
> >>>
> >>> Given that we adopted <
> >>>
> >>>
> >>
> https://lists.apache.org/thread.html/c3eb5c028cb3a4d76024f928a7a33c0311228f5dbbcaa86287bf5826@%3Cdev.geode.apache.org%3E
> >>>>
> >>> and still wish to continue <
> >>>
> >>
> https://lists.apache.org/thread.html/8795697c1ad57068c053b48b4b1845005f3ade0be777e679eafe95db@%3Cdev.geode.apache.org%3E
> >>>>
> >>> having branch protection rules to ensure every commit landing in
> develop
> >>> has passed the required PR checks, it seems like that decision alone
> >>> mandates that we disable all merge mechanisms other than
> >> squash-and-merge.
> >>>
> >>>
> >>> Allowing merge commits or rebase merges bypasses branch protection for
> >>>
> >>> all commits other than the final one in the merge or rebase set.  Given
> >>> that we decided <
> >>>
> >>
> https://lists.apache.org/thread.html/1ba19d9aeb206148c922afdd182ba322d6f128bbb83983f2f72a108e@%3Cdev.geode.apache.org%3E
> >>>>
> >>> that bypassing PR checks should never be allowed, keeping this loophole
> >>> open seems untenable.
> >>>
> >>>
> >>> This is not just hypothetical — this loophole is causing real problems.
> >>>
> >>> We now have commits on develop that don’t compile.  For example:
> >>>
> >>> git checkout 19eee7821322a1301f16bdcd31fd3b8c872a41b6
> >>> ./gradlew devBuild
> >>> ...spotlessJava FAILED
> >>> We implemented branch protections to make this impossible, right?
> >>>
> >>> We can very easily close this loophole by disabling all but the
> >>>
> >>> Squash&Merge button for PRs.  This will not make more work for any
> >>> developer.  If you want to get multiple commits onto develop, simply
> >> submit
> >>> each as a separate PR — that is the only way to assure that required PR
> >>> checks have passed for each.
> >>>
> >>>
> >>> On the other hand, if we as a Geode community feel strongly that
> >>>
> >>> bypassing branch protection via merge commits and rebase commits is
> >>> important to allow, why not also allow arbitrary overrides (or get rid
> of
> >>> branch protection entirely)?
> >>>
> >>>
> >>> -Owen
> >>>
> >>> On Dec 20, 2019, at 12:31 PM, Blake Bender <bben...@pivotal.io> wrote:
> >>>
> >>> Just FWIW, the situation described of having multiple commits in a
> >>>
> >>> single
> >>>
> >>> PR with separate associated JIRA tickets is still kind of problematic.
> >>>
> >>> It
> >>>
> >>> could well be the case that the commits are interdependent, thus when
> >>> bisecting etc it's still not possible to revert the fix for a single
> >>> bug/feature/whatever atomically.  It's all good, though, I'm satisfied
> >>>
> >>> no
> >>>
> >>> one's forcing me to adopt practice I'm opposed to.  Apologies for
> >>>
> >>> getting
> >>>
> >>> my feathers a little ruffled, or if I ruffled anyone else's in return.
> >>>
> >>> Thanks,
> >>>
> >>> Blake
> >>>
> >>>
> >>> On Fri, Dec 20, 2019 at 12:18 PM Nabarun Nag <n...@pivotal.io> wrote:
> >>>
> >>> Hi Dan,
> >>>
> >>> When we do squash merge all the commit messages are preserved and also
> >>>
> >>> the
> >>>
> >>> co-authored tag works when we do squash merge.
> >>> So the authorship and history are preserved.
> >>>
> >>> In my own personal experience and reverts and pinpointing regression
> >>> failures are tough when the commits are spread out. Also, reverts are
> >>> easier when it is just one commit while we are bisecting failures.
> >>>
> >>>
> >>> Regards
> >>> Naba
> >>>
> >>> On Fri, Dec 20, 2019 at 12:07 PM Dan Smith <dsm...@pivotal.io> wrote:
> >>>
> >>> I'll change to -0.
> >>>
> >>> I think merge commits are a nice way to record history in some cases,
> >>>
> >>> and
> >>>
> >>> can also be a way to avoid messy conflicts that come with rebase.
> >>>
> >>> Merge
> >>>
> >>> commits also preserve authorship of commits (compared to
> >>>
> >>> squash-merge),
> >>>
> >>> which I think is valuable as an open source community that is trying
> >>>
> >>> to
> >>>
> >>> keep track of outside contributions.
> >>>
> >>> That said, if the rest of y'all feel it will help to disable the
> >>>
> >>> button,
> >>>
> >>> I
> >>>
> >>> won't stand in the way.
> >>>
> >>> -Dan
> >>>
> >>> On Fri, Dec 20, 2019 at 11:50 AM Anthony Baker <aba...@pivotal.io>
> >>>
> >>> wrote:
> >>>
> >>>
> >>> Whether we are talking about the geode/ repository or the
> >>>
> >>> geode-native/
> >>>
> >>> repository we are all one GEODE community.
> >>>
> >>> The idea of a native client team may matter in some contexts but in
> >>>
> >>> this
> >>>
> >>> space we are all GEODE contributors.
> >>>
> >>> Adopting a common approach across our repos will make it easier for
> >>>
> >>> new
> >>>
> >>> contributors to engage, learn our norms, and join our efforts.
> >>>
> >>> $0.02,
> >>> Anthony
> >>>
> >>>
> >>> On Dec 20, 2019, at 11:32 AM, Blake Bender <bben...@pivotal.io>
> >>>
> >>> wrote:
> >>>
> >>>
> >>> Is this a policy the native client team must abide by, as well?  It
> >>>
> >>> varies
> >>>
> >>> slightly with what we've been doing, and all other things being
> >>>
> >>> equal I
> >>>
> >>> see
> >>>
> >>> no reason for us to change that.  If I am to have any measure of
> >>>
> >>> control
> >>>
> >>> over the nc repository, I will definitely enforce a 1:1
> >>>
> >>> correspondence
> >>>
> >>> between commits to develop and JIRA tickets.  IMO, if your
> >>>
> >>> refactoring
> >>>
> >>> in a
> >>>
> >>> PR is sufficiently large or complex that it's difficult to tease it
> >>>
> >>> out
> >>>
> >>> from the bug you're fixing or feature you're implementing, it merits
> >>>
> >>> its
> >>>
> >>> own JIRA ticket and a separate PR.  If your "actual" fix then
> >>>
> >>> becomes
> >>>
> >>> dependent on the refactored code, that's a price I'm willing to pay
> >>>
> >>> to
> >>>
> >>> keep
> >>>
> >>> history clean.
> >>>
> >>> On the other hand, I see no real value in squashing to a single
> >>>
> >>> commit
> >>>
> >>> prior to submitting a PR, since your view of the changes on GitHub
> >>>
> >>> is
> >>>
> >>> essentially the same either way.  We haven't enforced this on the nc
> >>>
> >>> repo,
> >>>
> >>> and I'd prefer to keep it that way.
> >>>
> >>> Thanks,
> >>>
> >>> Blake
> >>>
> >>>
> >>> On Fri, Dec 20, 2019 at 10:29 AM Jinmei Liao <jil...@pivotal.io>
> >>>
> >>> wrote:
> >>>
> >>>
> >>> 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
> >>
> >>
>
>

Reply via email to