"allow maintainers to edit" by default is enabled. Then the proposed
workflow looks reasonable to me now.


-Rui

On Tue, Jul 9, 2019 at 11:26 AM Kenneth Knowles <k...@apache.org> wrote:

> If you "allow maintainers to edit" the PR, it is easy for any committer to
> fix up the commits and merge. They should not have to ask you to do it,
> unless it is not obvious what to do.
>
> Kenn
>
> On Tue, Jul 9, 2019 at 11:05 AM Rui Wang <ruw...@google.com> wrote:
>
>> At least for me, because I usually don't know when PR review is done, in
>> order to make PR to be merged into Beam repo faster, I keep squashing
>> commits every time so that committers can review and then merge at a time,
>> otherwise committers could approve a PR but then ask squashing commits,
>> which leads to another ping and wait round.
>>
>> Thus I prefer committers do squash and merge, which will reduce PR
>> authors' load during PR review process.
>>
>>
>> -Rui
>>
>>
>> On Mon, Jul 8, 2019 at 5:44 PM Valentyn Tymofieiev <valen...@google.com>
>> wrote:
>>
>>> Rui, committer guide[1] does say that all commits are standalone changes:
>>>
>>> We prefer small independent, incremental PRs with descriptive, isolated
>>>> commits. Each commit is a single clear change.
>>>>
>>>
>>> However in my opinion, this recommendation applies to moments when a PR
>>> is first sent for review, and when a PR is being merged. Committer guide
>>> also mentions that during review iterations authors may add review-related
>>> commits.
>>>
>>> the pull request may have a collection of review-related commits that
>>>> are not meaningful to preserve in the history. The reviewer should give the
>>>> LGTM and then request that the author of the pull request rebase, squash,
>>>> split, etc, the commits, so that the history is most useful.
>>>
>>>
>>> Review-related commits don't have to be isolated independent changes,
>>> and perhaps committer guide and contributor guide [2] should spell out
>>> clearly that authors should not feel pressure to make review commits look
>>> like meaningful changes of their own when it does not make sense to do.  By
>>> the end of the review, review commits should be squashed by a committer or
>>> by the author.
>>>
>>> I think there are some incentives to always squash-and-force-push:
>>> - Committer will not ask the author to squash commits if there is only
>>> one commit.
>>> - We don't have to wait for another round of tests to pass on the final
>>> PR.
>>>
>>> Both concerns are addressed if a committer follows squash-and-merge
>>> workflow.
>>>
>>> [1] https://beam.apache.org/contribute/committer-guide
>>> <https://beam.apache.org/contribute/committer-guide/#pull-request-review-objectives>
>>> [2] https://beam.apache.org/contribute/
>>>
>>> On Mon, Jul 8, 2019 at 11:33 AM Rui Wang <ruw...@google.com> wrote:
>>>
>>>> Myself usually follows the pattern of "authors force-push their changes
>>>> during every review iteration". The reason is after reading [1], I found
>>>> it's hard to maintain a multiple commits PR as it's hard to create isolated
>>>> commits for different logical pieces of code in practice. Therefore in
>>>> practice I keep squash commits (and then have to force-push) to create at
>>>> least a single isolated commit.
>>>>
>>>>
>>>>
>>>> [1]
>>>> https://beam.apache.org/contribute/committer-guide/#pull-request-review-objectives
>>>>
>>>> -Rui
>>>>
>>>> On Mon, Jul 8, 2019 at 11:25 AM Udi Meiri <eh...@google.com> wrote:
>>>>
>>>>> I think there are already some guidelines here:
>>>>> https://beam.apache.org/contribute/committer-guide/#pull-request-review-objectives
>>>>>  (maybe
>>>>> we could point to them from the PR template?)
>>>>> Yes, it is acceptable to ask for squash or if it's ok to squash to a
>>>>> single commit.
>>>>>
>>>>> On Mon, Jul 8, 2019 at 11:14 AM Valentyn Tymofieiev <
>>>>> valen...@google.com> wrote:
>>>>>
>>>>>> I have observed a pattern where authors force-push their changes
>>>>>> during every review iteration, so that a pull request always contains one
>>>>>> commit. This creates the following problems:
>>>>>>
>>>>>> 1. It is hard to see what has changed between review iterations.
>>>>>> 2. Sometimes authors  make changes in parts of pull requests that the
>>>>>> reviewer did not comment on, and such changes may be unnoticed by the
>>>>>> reviewer.
>>>>>> 3. After a force-push, comments made by reviewers on earlier commit
>>>>>> are hard to find.
>>>>>>
>>>>>> A better workflow may be to:
>>>>>> 1. Between review iterations authors push changes in new commit(s),
>>>>>> but also keep the original commit.
>>>>>> 2. If a follow-up commit does not constitute a meaningful change of
>>>>>> its own, it should be prefixed with "fixup: ".
>>>>>> 3. Once review has finished either:
>>>>>> - Authors squash fixup commits after all reviewers have approved the
>>>>>> PR per request of a reviewer.
>>>>>> - Committers squash fixup commits during merge.
>>>>>>
>>>>>> I am curious what thoughts or suggestions others have. In particular:
>>>>>> 1. Should we document guidelines for iterating on PRs in our
>>>>>> contributor guide?
>>>>>> 2. Is it acceptable for a reviewer to ask the author to rebase
>>>>>> squashed changes that were force-pushed to address review feedback onto
>>>>>> their original commits to simplify the rest of the review?
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>> Related discussion:
>>>>>> [1] Committer Guidelines / Hygene before merging PRs
>>>>>> https://lists.apache.org/thread.html/6d922820d6fc352479f88e5c8737f2c8893ddb706a1e578b50d28948@%3Cdev.beam.apache.org%3E
>>>>>>
>>>>>

Reply via email to