On Thu, Apr 4, 2019 at 3:18 PM Etienne Chauchot <echauc...@apache.org> wrote: > > Brain, > It is good that you automated commits quality checks, thanks. > > But it don't agree with reducing the commit history of a PR to only one > commit, I was just referring about meaningless commits such as fixup, > checktyle, spotless ... I prefer not to squash everything and only squash > meaningless commits because: > - sometimes small related fixes to different parts (with different jiras) are > done in the same PR and they should stay separate commits because they deal > with different problems > - more important, keeping the commit at a relative small size but still > isolable is better to track bugs/regressions (among other things during > bisect sessions) that if the commit is big.
Agreed, we should not enforce one commit per PR; there are many good reasons to break a PR into multiple commits. > Le vendredi 22 mars 2019 à 09:38 -0700, Brian Hulette a écrit : > > It sounds like maybe we've already reached a consensus that committers just > need to be more vigilant about squashing fixup commits, and hopefully > automate it as much as possible. But I just thought I'd also point out how > the arrow project handles this as a point of reference, since it's kind of > interesting. > > They've written a merge_arrow_pr.py script [1], which committers run to merge > a PR. It enforces that the PR has an associated JIRA in the title, squashes > the entire PR into a single commit, and closes the associated JIRA with the > appropriate fix version. > > As a result, the commit granularity is equal to the granularity of PRs, JIRAs > are always linked to PRs, and the commit history on master is completely > linear (they also have to force push master after releases in order to > maintain this, which is the subject of much consternation and debate). > > The simplicity of 1 PR = 1 commit is a nice way to avoid the manual > intervention required to squash fixup commits and enforce that every commit > has passed CI, but it does have down-sides as Etienne already pointed out. > > Brian > > [1] https://github.com/apache/arrow/blob/master/dev/merge_arrow_pr.py > > > On Fri, Mar 22, 2019 at 7:46 AM Mikhail Gryzykhin > <gryzykhin.mikh...@gmail.com> wrote: > > I agree with keeping history clean. > > Although, Small commits like address PR comments are useful during review > process. They allow reviewer to see only new changes, not review whole diff > again. Best to squash then before/on merge though. > > On Fri, Mar 22, 2019, 07:34 Ismaël Mejía <ieme...@gmail.com> wrote: > > > I like the extra delimitation the brackets give, worth the two extra > > characters to me. More importantly, it's nice to have consistency, and > > the only way to be consistent with the past is leave them there. > > My point with the brackets is that we are 'getting close' to 10K issue > so we will then have 3 chars less, probably it does not change much > but still. > > On Fri, Mar 22, 2019 at 3:19 PM Robert Bradshaw <rober...@google.com> wrote: > > > > On Fri, Mar 22, 2019 at 3:02 PM Ismaël Mejía <ieme...@gmail.com> wrote: > > > > > > It is good to remind committers of their responsability on the > > > 'cleanliness' of the merged code. Github sadly does not have an easy > > > interface to do this and this should be done manually in many cases, > > > sadly I have seen many committers just merging code with multiple > > > 'fixup' style commits by clicking Github's merge button. Maybe it is > > > time to find a way to automatically detect these cases and disallow > > > the merge or maybe we should reconsider the policy altogether if they > > > are people who don't see the value of this. > > > > I agree about keeping our history clean and useful, and think those > > four points summarize things well (but a clarification on fixup > > commits would be good). > > > > +1 to an automated check that there are many extraneous commits. > > Anything the person hitting the merge button would easily see before > > doing the merge. > > > > > I would like to propose a small modification to the commit title style > > > on that guide. We use two brackets to enclose the issue id, but that > > > really does not improve much the readibility and uses 2 extra spaces > > > of the already short space title, what about getting rid of them? > > > > > > Current style: "[BEAM-XXXX] Commit title" > > > Proposed style: "BEAM-XXXX Commit title" > > > > > > Any ideas or opinons pro/con ? > > > > I like the extra delimitation the brackets give, worth the two extra > > characters to me. More importantly, it's nice to have consistency, and > > the only way to be consistent with the past is leave them there. > > > > > On Fri, Mar 22, 2019 at 2:32 PM Etienne Chauchot <echauc...@apache.org> > > > wrote: > > > > > > > > Thanks Alexey to point this out. I did not know about these 4 points in > > > > the guide. I agree with them also. I would just add "Avoid keeping in > > > > history formatting messages such as checktyle or spotless fixes" > > > > If it is ok, I'll submit a PR to add this point. > > > > Le vendredi 22 mars 2019 à 11:33 +0100, Alexey Romanenko a écrit : > > > > > > > > Etienne, thanks for bringing this topic. > > > > > > > > I think it was already discussed several times before and we have > > > > finally came to what we have in the current Committer guide > > > > “Granularity of changes" [1]. > > > > > > > > Personally, I completely agree with these 4 rules presented there. The > > > > main concern is that all committers should follow them as well, > > > > otherwise we still have sometimes a bunch of small commits with > > > > inexpressive messages (I believe they were added during review process > > > > and were not squashed before merging). > > > > > > > > In my opinion, the most important rule is that every commit should be > > > > atomic in terms of added/fixed functionality and rolling it back should > > > > not break master branch. > > > > > > > > [1] > > > > https://beam.apache.org/contribute/committer-guide/#pull-request-review-objectives > > > > > > > > > > > > On 22 Mar 2019, at 10:16, Etienne Chauchot <echauc...@apache.org> wrote: > > > > > > > > Hi all, > > > > It has already been discussed partially but I would like that we agree > > > > on the commit granularity that we want in our history. > > > > Some features were squashed to only one commit which seems a bit too > > > > granular to me for a big feature. > > > > On the contrary I see PRs with very small commits such as "apply > > > > spotless" or "fix checkstyle". > > > > > > > > IMHO I think a good commit size is an isolable portion of a feature > > > > such as for ex "implement Read part of Kudu IO" or "reduce concurrency > > > > in Test A". Such a granularity allows to isolate problems easily (git > > > > bisect for ex) and rollback only a part if necessary. > > > > WDYT about: > > > > - squashing non meaningful commits such as "apply review comments" (and > > > > rather state what they do and group them if needed), or "apply > > > > spotless" or "fix checkstyle" > > > > - trying to stick to a commit size as described above > > > > > > > > => and of course update the contribution guide at the end > > > > ? > > > > > > > > Best > > > > Etienne > > > > > > > >