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)) {

Reply via email to