On Fri, 2016-10-28 at 13:49 +0100, Chris Wilson wrote: > Some subsystem polices have a strict requirement that every patch must > have at least one reviewer before being approved for upstream. Since > encouraging review is good policy (great review is even better policy!) > enforce checking for a Reviewed-by when checkpath is run with --strict > (or with --review).
I rather dislike this as it imposes a rule outside of what's documented in SubmittingPatches. Ideally, please keep a private version of this. And unless and until SubmittingPatches is updated, please keep this separate from --strict. > Signed-off-by: Chris Wilson <ch...@chris-wilson.co.uk> > Cc: Andy Whitcroft <a...@canonical.com> > Cc: Joe Perches <j...@perches.com> > Cc: Joonas Lahtinen <joonas.lahti...@linux.intel.com> > --- > scripts/checkpatch.pl | 17 ++++++++++++++++- > 1 file changed, 16 insertions(+), 1 deletion(-) > > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl > index a8368d1c4348..9eaa5a4fbbc0 100755 > --- a/scripts/checkpatch.pl > +++ b/scripts/checkpatch.pl > @@ -21,6 +21,7 @@ use Getopt::Long qw(:config no_auto_abbrev); > my $quiet = 0; > my $tree = 1; > my $chk_signoff = 1; > +my $chk_review = 0; > my $chk_patch = 1; > my $tst_only; > my $emacs = 0; > @@ -69,6 +70,7 @@ Options: > -q, --quiet quiet > --no-tree run without a kernel tree > --no-signoff do not check for 'Signed-off-by' line > + --review check for 'Reviewed-by' line > --patch treat FILE as patchfile (default) > --emacs emacs compile window format > --terse one line per report > @@ -183,6 +185,7 @@ GetOptions( > 'q|quiet+' => \$quiet, > 'tree!' => \$tree, > 'signoff!' => \$chk_signoff, > + 'review!' => \$chk_review, > 'patch!' => \$chk_patch, > 'emacs!' => \$emacs, > 'terse!' => \$terse, > @@ -217,7 +220,7 @@ help(0) if ($help); > > list_types(0) if ($list_types); > > -$fix = 1 if ($fix_inplace); > +$chk_review = 1 if ($check); # --strict implies checking for Reviewed-by > $check_orig = $check; > > my $exit = 0; > @@ -857,6 +860,7 @@ sub git_commit_info { > } > > $chk_signoff = 0 if ($file); > +$chk_review = 0 if ($file); > > my @rawlines = (); > my @lines = (); > @@ -2130,6 +2134,7 @@ sub process { > > our $clean = 1; > my $signoff = 0; > + my $review = 0; > my $is_patch = 0; > my $in_header_lines = $file ? 0 : 1; > my $in_commit_log = 0; #Scanning lines before patch > @@ -2400,6 +2405,12 @@ sub process { > $in_commit_log = 0; > } > > +# Check the patch for any review: > + if ($line =~ /^\s*reviewed-by:/i) { > + $review++; > + $in_commit_log = 0; > + } > + > # Check if MAINTAINERS is being updated. If so, there's probably no need to > # emit the "does MAINTAINERS need updating?" message on file add/move/delete > if ($line =~ /^\s*MAINTAINERS\s*\|/) { > @@ -6204,6 +6215,10 @@ sub process { > ERROR("MISSING_SIGN_OFF", > "Missing Signed-off-by: line(s)\n"); > } > + if ($is_patch && $has_commit_log && $chk_review && $review == 0) { > + ERROR("MISSING_REVIEW", > + "Missing Reviewed-by: line(s)\n"); > + } > > print report_dump(); > if ($summary && !($clean == 1 && $quiet == 1)) {