Gentoo Archives: gentoo-catalyst

From: Peter Stuge <peter@×××××.se>
To: Matt Turner <mattst88@g.o>
Cc: gentoo-catalyst@l.g.o, zerochaos@g.o, Sebastian Pipping <sping@g.o>, "Jorge Manuel B. S. Vicetto" <jmbsvicetto@×××××.com>
Subject: Re: [gentoo-catalyst] On catalyst's development process
Date: Mon, 10 Dec 2012 03:02:14
Message-Id: 20121210024922.20297.qmail@stuge.se
In Reply to: [gentoo-catalyst] On catalyst's development process by Matt Turner
1 Sorry for the long mail. I am hugely supportive of using Gerrit.
2
3
4 Matt Turner wrote:
5 > I find this model tedious
6
7 Why tedious? It sounds like patches do get near-instant review, which
8 is highly desirable if at all possible.
9
10
11 > and lends itself to rapid-fire question and answer debate about a
12 > proposed change, partly due to the medium,
13
14 Why is that a bad thing?
15
16
17 > partly due to pastebin'd patches having a significantly lesser
18 > chance of containing a meaningful commit summary.
19
20 Why does that matter much? I expect that they will come with a good
21 commit message when they go into the repo?
22
23
24 > I claim that if patches were sent to the mailing list they would
25 > receive better review from a larger reviewer base and the committed
26 > results would contain fewer errors.
27
28 Sorry, but I do not agree at all.
29
30 I am a very strong proponent of code review being a hard requirement
31 for anything being included in any repository. I have used various
32 systems for accomplishing or encouraging review in a few different
33 teams.
34
35 As much as I wish that code quality and code review would only
36 require the right process, it doesn't. It all comes down to the
37 people. No matter what the process is, if people want to commit
38 then they will commit.
39
40
41 > The process of git format-patch/send-email forces the author to at
42 > least look at the patch before committing,
43
44 No? The process of git diff or git show allows the author to look at
45 the patch before publishing it, but it is absolutely impossible to
46 force an author to critically review anything. Authors will review
47 their commits only if they want to, and if they want to they do not
48 need to be forced. Unfortunately my experience is that nearly noone
49 wants to, or can, review code. Neither their own nor someone else's.
50
51
52 > and reviewers are likely to give a better review to something they
53 > find on a mailing list than in IRC.
54
55 I disagree with this too. I think the reviewers should consider how
56 on IRC they are actually *in* the process of the developer doing the
57 work, that is the absolutely ideal spot for review. Once the email is
58 out, the developer has task switched away from that commit.
59
60 Another way to view this is that somehow email-driven review by
61 neccessity means longer idle periods between each run of the task for
62 everyone involved, both developer and reviewers. I find this
63 extremely undesirable. I prefer working fast and hard on something,
64 finish it perfectly, and move on. I think the key to success with
65 that is to have small enough somethings that there are no blockers.
66
67 I want review to be part of it, I really do want review, but that
68 requires people who are open to task switching and review sprinting,
69 if you will, for my commit.
70
71
72 > At least personally, I find that I'm much more likely to forget
73 > about something asked of me on IRC than via email.
74
75 IMO the problem with email is that the queue is very very long and
76 for many people (at least for me) it is constantly growing.
77
78
79 > Patch review isn't about a power structure. It's about maintaining
80 > quality and catching mistakes before they could affect anyone.
81
82 Of course. But unfortunately everyone who does not already want to do
83 review percept review to be *exactly* about a power structure. There
84 is a huge gap, and closing that gap is a difficult training problem,
85 which has nothing to do with coding or reviewing. :(
86
87
88 > git is also not a review tool. Once it's in git, it's history, and I
89 > don't like my mistakes being part of historical record. :)
90
91 Yes and no. Gerrit is a git-native review tool. It allows to iterate
92 changes at the cost of a Change-Id line in the commit message so that
93 mistakes do not have to make it into the repository.
94
95
96 > Chrome, I think, and other Google projects use a web-based review
97 > tool called gerrit.
98
99 Gerrit originated from the Android project.
100
101 Note that Gerrit is *not* strictly web-based.
102
103 Gerrit is a Java .war file with lots of stuff built-in, it does offer
104 an HTTP server, but it also offers an SSH server as well as a Git
105 server. It has native implementations of all these protocols and it
106 allows to create very nice - though not perfect - workflows.
107
108 I am a huge fan of Gerrit. It is by far the best system for code
109 review that I have seen.
110
111
112 > Either of these would be large improvements, with the mailing list
113 > system having lower cost and probably the same effectiveness.
114
115 The way I like to use Gerrit is as follows:
116
117 I use git to push my commit(s) to Gerrit.
118 Gerrit sends email(s) to the mailing list including the commitdiff.
119 People can use the web interface *or* SSH to comment on the commit.
120 People can use the web interface *or* SSH to include or veto the commit.
121
122 There are two major things that Gerrit is missing:
123
124 * The web interface allows making inline comments on every diff line.
125 The SSH interface does not allow making inline comments.
126
127 * When coupling Gerrit with a tool like Jenkins to do verification of
128 commits (anything from a build smoke test to running test suites)
129 it is unfortunately not possible to instruct Gerrit to include a
130 commit until *after* the verification has completed. I am missing
131 the possibility to say "if verification passes, please include."
132 It can kinda-sorta be accomplished, but not as nicely as I'd like.
133
134 Those two problems aside, I very much like using Gerrit, and in at
135 least two projects where it has been introduced it has in fact led
136 to more review and participation.
137
138 In both projects it has done nothing (and can do nothing) to keep the
139 people who do not care much about code quality from committing shit.
140
141 The only way to filter what goes into the repo is by skilled human.
142
143 Skilled humans are rare, and on top of that everyone who cares less
144 about code quality than the skilled human will get pissed off by how
145 (perceived) negative and/or critical and/or conservative and/or
146 demanding the skilled human is. That's also not a lot of fun.
147
148
149 //Peter

Replies

Subject Author
Re: [gentoo-catalyst] On catalyst's development process Matt Turner <mattst88@g.o>