[PATCH 1/2] checkpatch: warn when unknown tags are used for links

From: Kai Wasserbäch
Date: Thu Dec 08 2022 - 14:33:07 EST


Issue a warning when encountering URLs behind unknown tags, as Linus
recently stated ```please stop making up random tags that make no sense.
Just use "Link:"```[1]. That statement was triggered by an use of
'BugLink', but that's not the only tag people invented:

$ git log -100000 --format=email -P --grep='^\w+:[ \t]*http' | \
grep -Poh '^\w+:[ \t]*http' | \
sort | uniq -c | sort -rn | head -n 20
103889 Link: http
415 BugLink: http
372 Patchwork: http
270 Closes: http
221 Bug: http
121 References: http
101 v1: http
77 Bugzilla: http
60 URL: http
59 v2: http
37 Datasheet: http
35 v3: http
19 v4: http
12 v5: http
9 Ref: http
9 Fixes: http
9 Buglink: http
8 v6: http
8 Reference: http
7 V1: http

Some of these non-standard tags make it harder for external tools that
rely on use of proper tags. One of those tools is the regression
tracking bot 'regzbot', which looks out for "Link:" tags pointing to
reports of tracked regressions.

The initial idea was to use a disallow list to raise an error when
encountering known unwanted tags like BugLink:; during review it was
requested to use a list of allowed tags instead[2].

Link: https://lore.kernel.org/all/CAHk-=wgs38ZrfPvy=nOwVkVzjpM3VFU1zobP37Fwd_h9iAD5JQ@xxxxxxxxxxxxxx/ [1]
Link: https://lore.kernel.org/all/15f7df96d49082fb7799dda6e187b33c84f38831.camel@xxxxxxxxxxx/ [2]
Signed-off-by: Kai Wasserbäch <kai@xxxxxxxxxxxxxxxxxxxxxx>
Co-developed-by: Thorsten Leemhuis <linux@xxxxxxxxxxxxx>
Signed-off-by: Thorsten Leemhuis <linux@xxxxxxxxxxxxx>
---
scripts/checkpatch.pl | 7 +++++++
1 file changed, 7 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 1e5e66ae5a..f2f997f487 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -3239,6 +3239,13 @@ sub process {
$commit_log_possible_stack_dump = 0;
}

+# Check for odd tags before a URI/URL
+ if ($in_commit_log &&
+ $line =~ /^\s*(\w+):\s*http/ && $1 !~ /^Link/) {
+ WARN("COMMIT_LOG_USE_LINK",
+ "Unknown link reference '$1:', use 'Link:' instead.\n" . $herecurr);
+ }
+
# Check for lines starting with a #
if ($in_commit_log && $line =~ /^#/) {
if (WARN("COMMIT_COMMENT_SYMBOL",
--
2.35.1