All of lore.kernel.org
 help / color / mirror / Atom feed
From: Justin Stitt <justinstitt@google.com>
To: Joe Perches <joe@perches.com>
Cc: linux-kernel@vger.kernel.org, Kees Cook <keescook@chromium.org>,
	Nick Desaulniers <ndesaulniers@google.com>,
	Nathan Chancellor <nathan@kernel.org>,
	Jakub Kicinski <kuba@kernel.org>,
	Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>,
	geert@linux-m68k.org, gregkh@linuxfoundation.org,
	workflows@vger.kernel.org, mario.limonciello@amd.com,
	Justin Stitt <justinstitt@google.com>
Subject: [PATCH v2 1/2] get_maintainer: add patch-only keyword-matching
Date: Thu, 28 Sep 2023 04:23:05 +0000	[thread overview]
Message-ID: <20230928-get_maintainer_add_d-v2-1-8acb3f394571@google.com> (raw)
In-Reply-To: <20230928-get_maintainer_add_d-v2-0-8acb3f394571@google.com>

Add the "D:" type which behaves the same as "K:" but will only match
content present in a patch file.

To illustrate:

Imagine this entry in MAINTAINERS:

NEW REPUBLIC
M: Han Solo <hansolo@rebelalliance.co>
W: https://www.jointheresistance.org
D: \bstrncpy\b

Our maintainer, Han, will only be added to the recipients if a patch
file is passed to get_maintainer (like what b4 does):
$ ./scripts/get_maintainer.pl 0004-some-change.patch

If the above patch has a `strncpy` present in the subject, commit log or
diff then Han will be to/cc'd.

However, in the event of a file from the tree given like:
$ ./scripts/get_maintainer.pl ./lib/string.c

Han will not be noisily to/cc'd (like a K: type would in this
circumstance)

Signed-off-by: Justin Stitt <justinstitt@google.com>
---
 MAINTAINERS               |  5 +++++
 scripts/get_maintainer.pl | 12 ++++++++++--
 2 files changed, 15 insertions(+), 2 deletions(-)

diff --git a/MAINTAINERS b/MAINTAINERS
index b19995690904..94e431daa7c2 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -59,6 +59,11 @@ Descriptions of section entries and preferred order
 	      matches patches or files that contain one or more of the words
 	      printk, pr_info or pr_err
 	   One regex pattern per line.  Multiple K: lines acceptable.
+  D: *Diff content regex* (perl extended) pattern match that applies only to
+     patches and not entire files (e.g. when using the get_maintainers.pl
+     script).
+     Usage same as K:.
+
 
 Maintainers List
 ----------------
diff --git a/scripts/get_maintainer.pl b/scripts/get_maintainer.pl
index ab123b498fd9..a3e697926ddd 100755
--- a/scripts/get_maintainer.pl
+++ b/scripts/get_maintainer.pl
@@ -342,6 +342,7 @@ if ($tree && !top_of_kernel_tree($lk_path)) {
 
 my @typevalue = ();
 my %keyword_hash;
+my %patch_keyword_hash;
 my @mfiles = ();
 my @self_test_info = ();
 
@@ -369,8 +370,10 @@ sub read_maintainer_file {
 		    $value =~ s@([^/])$@$1/@;
 		}
 	    } elsif ($type eq "K") {
-		$keyword_hash{@typevalue} = $value;
-	    }
+          $keyword_hash{@typevalue} = $value;
+	    } elsif ($type eq "D") {
+          $patch_keyword_hash{@typevalue} = $value;
+      }
 	    push(@typevalue, "$type:$value");
 	} elsif (!(/^\s*$/ || /^\s*\#/)) {
 	    push(@typevalue, $line);
@@ -607,6 +610,11 @@ foreach my $file (@ARGV) {
 			push(@keyword_tvi, $line);
 		    }
 		}
+    foreach my $line(keys %patch_keyword_hash) {
+      if ($patch_line =~ m/${patch_prefix}$patch_keyword_hash{$line}/x) {
+        push(@keyword_tvi, $line);
+      }
+    }
 	    }
 	}
 	close($patch);

-- 
2.42.0.582.g8ccd20d70d-goog


  reply	other threads:[~2023-09-28  4:23 UTC|newest]

Thread overview: 15+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-09-28  4:23 [PATCH v2 0/2] get_maintainer: add patch-only keyword matching Justin Stitt
2023-09-28  4:23 ` Justin Stitt [this message]
2023-09-28  4:46   ` [PATCH v2 1/2] get_maintainer: add patch-only keyword-matching Joe Perches
2023-09-28  5:03     ` Justin Stitt
2023-09-28  5:08       ` Joe Perches
2023-09-28 19:12         ` Konstantin Ryabitsev
2023-09-28  4:23 ` [PATCH v2 2/2] MAINTAINERS: migrate some K to D Justin Stitt
2023-09-28  4:49   ` Joe Perches
2023-09-28  5:01 ` [PATCH v2 0/2] get_maintainer: add patch-only keyword matching Joe Perches
2023-09-28  5:31   ` Justin Stitt
2023-09-28  6:09     ` Joe Perches
2023-09-28 15:52       ` Nick Desaulniers
2023-09-29  2:07         ` Justin Stitt
2023-09-29  2:50           ` Joe Perches
2023-09-29  3:07             ` Justin Stitt

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20230928-get_maintainer_add_d-v2-1-8acb3f394571@google.com \
    --to=justinstitt@google.com \
    --cc=geert@linux-m68k.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=joe@perches.com \
    --cc=keescook@chromium.org \
    --cc=krzysztof.kozlowski@linaro.org \
    --cc=kuba@kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mario.limonciello@amd.com \
    --cc=nathan@kernel.org \
    --cc=ndesaulniers@google.com \
    --cc=workflows@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.