[PATCH v2 RESEND] scripts/checkpatch.pl: check for non-permalinks to Zulip

From: Siddharth Menon
Date: Sun Dec 22 2024 - 04:49:00 EST


Zulip links to https://rust-for-linux.zulipchat.com can break in
case of renaming the topic or channel if they are not message
links (which are permanent links).

If a non-permanent Zulip link is referenced then emit a warning
and direct the user to the Zulip documentation.

Permanent links are of the format:
https://.../#narrow/stream/x/topic/x/near/<numerical_id>

Suggested-by: Miguel Ojeda <ojeda@xxxxxxxxxx>
Link: https://github.com/Rust-for-Linux/linux/issues/1104
Signed-off-by: Siddharth Menon <simeddon@xxxxxxxxx>
---
scripts/checkpatch.pl | 10 ++++++++++
1 file changed, 10 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 9eed3683ad76..9b15484b5a95 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -735,6 +735,10 @@ our $obsolete_archives = qr{(?xi:
\Qspinics.net\E
)};

+our $zulip_forums = qr{(?xi:
+ \Qrust-for-linux.zulipchat.com\E
+)};
+
our @typeListMisordered = (
qr{char\s+(?:un)?signed},
qr{int\s+(?:(?:un)?signed\s+)?short\s},
@@ -3410,6 +3414,12 @@ sub process {
"Use lore.kernel.org archive links when possible - see https://lore.kernel.org/lists.html\n"; . $herecurr);
}

+# Check for permanent Zulip URL
+ if ($rawline =~ m{http.*\b$zulip_forums(?!(?:/#narrow/stream/.+/topic/.+/(?:near|with)/\d+)?($|\s+.*))}) {
+ WARN("PREFER_PERMANENT_URL",
+ "Use permanent Zulip links when possible - see https://zulip.com/help/link-to-a-message-or-conversation\n"; . $herecurr);
+ }
+
# Check for added, moved or deleted files
if (!$reported_maintainer_file && !$in_commit_log &&
($line =~ /^(?:new|deleted) file mode\s*\d+\s*$/ ||
--
2.39.5