voting in gerrit: merge at +3? (+2+1 / +1+1+1)

Neels Hofmeyr nhofmeyr at sysmocom.de
Tue Nov 13 17:16:02 UTC 2018


> "How many developers are required to write a prolog program than sums three
> numbers?"

Answer: none, they are responsible community members.

This works pretty well at subversion.apache.org, where everyone who is accepted
as committer (often happens like after the first five patches or so) can
directly commit to trunk and wreak havoc if they were so inclined, but since
you don't want to stir up the community against you nor want your patches
reverted, you adhere to the votes of the others on the ML.

I think just giving +2 permissions to "everyone" is the easiest and socially
most beautiful solution: rely on social policy rather than enforcing UI.

That would mean in practice: everyone that is considered a reviewer
automatically gets permission to cast +2 votes, and we simply ask everyone to
adhere to otiquette ("Osmocom etiquette"), to only give +2 when, say, two
others have already cast a +1. If there are any mistakes happening because of
that, we can always revert; we can look in gerrit who cast the vote and come
back at this person and complain. This also implies that if someone is
absolutely sure, she can +2 directly, things get merged and since it is
obviously correct, no-one will come back and complain about it. This way would
not require an add-up plugin and wouldn't introduce gerrit upgrade problems or
prolog error message parsing difficulties or whatnot. Everyone would have the
power to fast-track important or trivial patches without bothering anyone else
or blocking own work. And everyone will in awe refrain from abusing these
powers. If one of the community gurus is convinced, they can still issue
immediate +2. If no guru shows up, two or three others can still legitimately
reach a +2. Or even, if >=3 reviewers cast a +1, the original poster sees that
and decides "that's sufficient" and casts +2 herself to merge.

A minor drawback I see is in the UI: I usually want to quickly see in the
overview what patches make sense to take a closer look at now. But even if 10
people cast a +1, the gerrit UI will only show a "+1" in the overview. Also, if
one of those is a -1, I think it still shows "+1". So I would welcome listing
all the individual votes in the overview list, like "-1,+1x10" -- not sure if
that makes sense to implement in a plugin, probably not. Part of this problem
goes away when a reviewer casts +2, then the overview will show "+2". But we
still lose the "-1" part. A workaround is to always click and open every
individual issue... that then shows each single vote of course. I think this
minor drawback will still exist if we add up votes: not seeing -1s immediately.

A similar problem I have, independently from above, is that in the overview it
is not visible whether my issue had a comment or not. It goes like this: I
review a patch, and have a question / remark / tweak. Then I don't really want
to vote -1, because that sounds so negative. I don't want to discourage, I
rather want to be interested and get a reply. So then I just comment. But on
the list of patches, nothing indicates that there is a comment; maybe someone
else has voted +2, and the patch gets merged from some other later patch
("Submit including parents") without the comment being seen. Also, if someone
cast +2 (or if we add up, when sufficient votes are in), then I still cannot
see that there is a -1 and might merge the patch without noticing the question.
The only solution now is to click on each individual patch and check one by one
whether there are remarks; or to read every single gerrit mail, which I don't
do anymore. That's why I prefer that if someone asks even a trivial question on
my patch, to please mark -1. Instead, I would love to have some +0 or some '?'
indicator in the overview list of patches.  One workaround so far was to just
issue a +1, which says "yeah, looks ok, but you can't just merge
including-all-parents yet, first think about my question on the third patch
down". If we add up votes, that would not work anymore, because that +1 already
means that I would merge this.  Not sure if there is an easy solution.

In summary,
I would give all "known users" +2 powers and have an otiquette;
Otherwise I'd be ok with trying the add-up plugin.

In all cases I will still have cumbersome issues with the gerrit UI and will
have to open each patch individually.

~N
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://lists.osmocom.org/pipermail/openbsc/attachments/20181113/d1129e26/attachment.bin>


More information about the OpenBSC mailing list