+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

Reply via email to