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
next prev parent reply other threads:[~2023-09-28 4:23 UTC|newest]
Thread overview: 14+ 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
[not found] ` <CAFhGd8rtnvipRVAKRQAEcyGqCknVmx+bd2NMT7mCuTZjhrqULA@mail.gmail.com>
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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox