by voting with the lowest value in one voting category one can block the submit
(e.g. -1 in Verified category or -2 in Code Review category). As some of our
users recently found out, project owners might simply delete such negative
votings by removing the reviewer who did the veto voting from the reviewers
list and submit anyway. I wonder if this is intended or if it just works by
chance.
For our scenario this is actually a useful functionality. We use the Hudson
Gerrit Plugin to automatically vote in the Verified category with -1 if the
build or test fail. However some teams have some unstable tests that break the
build once in a while. In this case the project owners might want to overrule
the voting of the Hudson Gerrit Plugin and submit anyway. They can do this by
removing the user of the Hudson Gerrit Plugin from the reviewers list.
Just want to confirm whether this intended to be used like this.
Since project owners anyway can revoke all the access rights to give veto
votings this should be ok, shouldn't it?
Best regards,
Edwin
Both. :-)
I argued against being able to delete a blocking negative score, but
got overridden by folks pointing out you can just amend the commit to
get a new SHA-1, delete Change-Id to get a new Change-Id, upload that
as a new change, and get a different reviewer who is oblivious to the
old review to approve the change and put it in anyway.
Given that, we went with allowing the deletion of the reviewer.
Deleting a reviewer also deletes their scores, because "being a
reviewer" and "having a score" are in fact the same database record.
Deleting one implies deleting the other. So its by chance that
deleting a reviewer deletes the score... but its also intended because
this is one way to override the score.
It would be better if we could still have a record that a reviewer had
voted, but make them somehow "inactive" when they are removed, but the
database doesn't have a way to store that right now.
> For our scenario this is actually a useful functionality. We use the Hudson
> Gerrit Plugin to automatically vote in the Verified category with -1 if the
> build or test fail. However some teams have some unstable tests that break the
> build once in a while. In this case the project owners might want to overrule
> the voting of the Hudson Gerrit Plugin and submit anyway. They can do this by
> removing the user of the Hudson Gerrit Plugin from the reviewers list.
Yup.
> Just want to confirm whether this intended to be used like this.
> Since project owners anyway can revoke all the access rights to give veto
> votings this should be ok, shouldn't it?
Yup. That was another reason why allowing deleting of a reviewer to
undo their blocking vote was OK. The project owner could just adjust
access rights to remove blocking permission from the reviewer.
2010/10/18 Shawn Pearce <s...@google.com>:
I don't disagree with you. I think I already explained our use case.
It is not about overruling a blocking vote of a natural person (with
which you should of course discuss and argument until some agreement
is reached), but about overruling a system user. In our case it's a
Hudson build job which does the voting in the Verified category. For a
failing build the build job votes with -1. It's good that this vote is
blocking since normally you don't want to submit anything which
doesn't build. However there are some exceptional cases in which the
build fails not due to the change but due to unstable build
environment or tests. In such a case a project owner might remove the
blocking vote of the build job after analyzing the build failure and
verifying that it was not cause by the change. Of course also here the
better approach would be to repeat the build until it is successful
and a positive vote is given by the build job. However in our current
stup this is not possible since the build job is currently only able
to build the latest pushed change of the project. So at the moment we
can't easily repeat the build for an older change.
Nevertheless if it's possible to overrule a blocking vote by removing
the reviewer I think it should be a more explicit operation than it is
now. This operation should be properly loged so that one can see: Who
was overruling whom? What was the vote that was overruled? Why was
this done?
Best regards,
Edwin
2010/10/19 Fredrik Luthander <fredrik....@sonyericsson.com>:
> --
> To unsubscribe, email repo-discuss...@googlegroups.com
> More info at http://groups.google.com/group/repo-discuss?hl=en
>
Not sure how much helpful, but we avoid such situation by below scenario in Hudson.
Our Hudson gives +1 Verify on successful build but gives -1 Code review on failure instead of -1 verify. Now there are Quality board members with verify rights who can pitch in on scenarios like you mentioned to save the gerrit change.
--
Matthias
We are using our own developed and contributed plug-in gerrit-trigger plugin. You can find the plugin details here http://wiki.hudson-ci.org/display/HUDSON/Gerrit+Trigger . Its easy to configure and define the process for Gerrit-Hudson integration. Also you can see some information about the usage at digg also. http://about.digg.com/blog/continuous-deployment-code-review-and-pre-tested-commits-digg4
Huh? I'm not sure I understand what you are asking.
> Or better: can the owner of the change remove the veto? Or that's blocked
> somehow?
Yes. The owner of a change is able to remove a reviewer. Which would
also remove the blocking vote.