Describe labels and submit rules in project owner guide
Change-Id: I3f52692757811858c03b85820f8a718e0815ffce Signed-off-by: Edwin Kempin <edwin.kempin@sap.com>
This commit is contained in:
parent
788c121b36
commit
1781adb856
@ -275,10 +275,82 @@ development branches. You likely want to start with
|
|||||||
more restrictive policy if you are facing issues with the build and
|
more restrictive policy if you are facing issues with the build and
|
||||||
test stability of the destination branches.
|
test stability of the destination branches.
|
||||||
|
|
||||||
|
It is also possible to define the submit type dynamically via
|
||||||
|
link:#prolog-submit-type[Prolog]. This way you can use different submit
|
||||||
|
types for different branches.
|
||||||
|
|
||||||
Please note that there are other submit types available; they are
|
Please note that there are other submit types available; they are
|
||||||
described in the link:project-setup.html#submit_type[Submit Type]
|
described in the link:project-setup.html#submit_type[Submit Type]
|
||||||
section.
|
section.
|
||||||
|
|
||||||
|
[[labels]]
|
||||||
|
== Labels
|
||||||
|
|
||||||
|
The code review process includes that reviewers formally express their
|
||||||
|
opinion about a change by voting on different link:config-labels.html[
|
||||||
|
labels]. By default Gerrit comes with the
|
||||||
|
link:config-labels.html#label_Code-Review[Code-Review] label and many
|
||||||
|
Gerrit servers have the link:config-labels.html#label_Verified[Verified]
|
||||||
|
label configured globally. However projects can also define their own
|
||||||
|
link:config-labels.html#label_custom[custom labels] to formalize
|
||||||
|
project-specific workflows. For example if a project requires an IP
|
||||||
|
approval from a special IP-team, it can define an `IP-Review` label
|
||||||
|
and grant permissions to the IP-team to vote on this label.
|
||||||
|
|
||||||
|
The behavior of a label can be controlled by its
|
||||||
|
link:config-labels.html#label_function[function], e.g. it can be
|
||||||
|
configured whether a max positive voting on the label is required for
|
||||||
|
submit or if the voting on the label is optional.
|
||||||
|
|
||||||
|
By using a custom link:#submit-rules[submit rule] it can be controlled
|
||||||
|
per change whether a label is required for submit or not.
|
||||||
|
|
||||||
|
A useful feature on labels is the possibility to automatically copy
|
||||||
|
scores forward to new patch sets if it was a
|
||||||
|
link:config-labels.html#label_copyAllScoresOnTrivialRebase[trivial
|
||||||
|
rebase] or if link:config-labels.html#label_copyAllScoresIfNoCodeChange[
|
||||||
|
there was no code change] (e.g. only the commit message was edited).
|
||||||
|
|
||||||
|
[[submit-rules]]
|
||||||
|
== Submit Rules
|
||||||
|
|
||||||
|
A link:prolog-cookbook.html#SubmitRule[submit rule] in Gerrit is logic
|
||||||
|
that defines when a change is submittable. By default, a change is
|
||||||
|
submittable when it gets at least one highest vote on each label and
|
||||||
|
has no lowest vote (aka veto vote) on any label.
|
||||||
|
|
||||||
|
The submit rules in Gerrit are implemented in link:prolog-cookbook.html[
|
||||||
|
Prolog] and projects that need more flexibility can define their own
|
||||||
|
submit rules to decide when a change should be submittable. A good
|
||||||
|
link:prolog-cookbook.html#NonAuthorCodeReview[example] from the Prolog
|
||||||
|
cookbook shows how to allow submit only if a change has a
|
||||||
|
`Code-Review+2` vote from a person that is not the change author. This
|
||||||
|
way a four-eyes principle for the reviews can be enforced.
|
||||||
|
|
||||||
|
A Prolog submit rule has access to link:prolog-change-facts.html[
|
||||||
|
information] about the change for which it is testing the
|
||||||
|
submittability. Amongst others the list of the modified files can be
|
||||||
|
accessed, which allows special logic if certain files are touched. For
|
||||||
|
example, a common practice is to require a vote on an additional label,
|
||||||
|
like `Library-Compliance`, if the dependencies of the project are
|
||||||
|
changed.
|
||||||
|
|
||||||
|
[[prolog-submit-type]]
|
||||||
|
It is also possible to control the link:prolog-cookbook.html#SubmitType[
|
||||||
|
submit type] from Prolog. For example this can be used to define a more
|
||||||
|
restrictive submit type such as `Fast Forward Only` for stable branches
|
||||||
|
while using a more liberal submit type, e.g. `Merge If Necessary` with
|
||||||
|
content merge, for development branches. How this can be done can be
|
||||||
|
seen from an link:prolog-cookbook.html#SubmitTypePerBranch[example] in
|
||||||
|
the Prolog cookbook.
|
||||||
|
|
||||||
|
Submit rules are maintained in the link:prolog-cookbook.html#RulesFile[
|
||||||
|
rules.pl] file in the `refs/meta/config` branch of the project. How to
|
||||||
|
write submit rules is explained in the
|
||||||
|
link:prolog-cookbook.html#HowToWriteSubmitRules[Prolog cookbook]. There
|
||||||
|
is also good support for link:prolog-cookbook.html#TestingSubmitRules[
|
||||||
|
testing submit rules] while developing them.
|
||||||
|
|
||||||
GERRIT
|
GERRIT
|
||||||
------
|
------
|
||||||
Part of link:index.html[Gerrit Code Review]
|
Part of link:index.html[Gerrit Code Review]
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
= Gerrit Code Review - Prolog Submit Rules Cookbook
|
= Gerrit Code Review - Prolog Submit Rules Cookbook
|
||||||
|
|
||||||
|
[[SubmitRule]]
|
||||||
== Submit Rule
|
== Submit Rule
|
||||||
A 'Submit Rule' in Gerrit is logic that defines when a change is submittable.
|
A 'Submit Rule' in Gerrit is logic that defines when a change is submittable.
|
||||||
By default, a change is submittable when it gets at least one
|
By default, a change is submittable when it gets at least one
|
||||||
@ -26,6 +27,7 @@ project specific submit rules.
|
|||||||
link:http://gerrit-documentation.googlecode.com/svn/ReleaseNotes/ReleaseNotes-2.2.2.html[Gerrit
|
link:http://gerrit-documentation.googlecode.com/svn/ReleaseNotes/ReleaseNotes-2.2.2.html[Gerrit
|
||||||
2.2.2 ReleaseNotes] introduces Prolog support in Gerrit.
|
2.2.2 ReleaseNotes] introduces Prolog support in Gerrit.
|
||||||
|
|
||||||
|
[[SubmitType]]
|
||||||
== Submit Type
|
== Submit Type
|
||||||
A 'Submit Type' is a strategy that is used on submit to integrate the
|
A 'Submit Type' is a strategy that is used on submit to integrate the
|
||||||
change into the destination branch. Supported submit types are:
|
change into the destination branch. Supported submit types are:
|
||||||
@ -71,6 +73,7 @@ Instead of using the link:pgm-prolog-shell.html[prolog-shell] program one can
|
|||||||
also use the link:http://www.swi-prolog.org/[SWI-Prolog] environment. It
|
also use the link:http://www.swi-prolog.org/[SWI-Prolog] environment. It
|
||||||
provides a better shell interface and a graphical source-level debugger.
|
provides a better shell interface and a graphical source-level debugger.
|
||||||
|
|
||||||
|
[[RulesFile]]
|
||||||
== The rules.pl file
|
== The rules.pl file
|
||||||
This section explains how to create and edit project specific submit rules. How
|
This section explains how to create and edit project specific submit rules. How
|
||||||
to actually write the submit rules is explained in the next section.
|
to actually write the submit rules is explained in the next section.
|
||||||
@ -644,6 +647,7 @@ logic. The following pattern illustrates this technique:
|
|||||||
|
|
||||||
In the following examples both styles will be shown.
|
In the following examples both styles will be shown.
|
||||||
|
|
||||||
|
[[NonAuthorCodeReview]]
|
||||||
=== Example 8: Make change submittable only if `Code-Review+2` is given by a non author
|
=== Example 8: Make change submittable only if `Code-Review+2` is given by a non author
|
||||||
In this example we introduce a new label `Non-Author-Code-Review` and make it
|
In this example we introduce a new label `Non-Author-Code-Review` and make it
|
||||||
satisfied if there is at least one `Code-Review+2` from a non author. All other
|
satisfied if there is at least one `Code-Review+2` from a non author. All other
|
||||||
@ -977,6 +981,7 @@ rules.pl
|
|||||||
====
|
====
|
||||||
|
|
||||||
|
|
||||||
|
[[SubmitTypePerBranch]]
|
||||||
=== Example 2: `Fast Forward Only` for all `refs/heads/stable*` branches
|
=== Example 2: `Fast Forward Only` for all `refs/heads/stable*` branches
|
||||||
For all `refs/heads/stable.*` branches we would like to enforce the `Fast
|
For all `refs/heads/stable.*` branches we would like to enforce the `Fast
|
||||||
Forward Only` submit type. A reason for this decision may be a need to never
|
Forward Only` submit type. A reason for this decision may be a need to never
|
||||||
|
Loading…
Reference in New Issue
Block a user