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