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

Siddharth Menon posted 1 patch 1 year, 3 months ago
There is a newer version of this series
scripts/checkpatch.pl | 10 ++++++++++
1 file changed, 10 insertions(+)
[PATCH V2] scripts/checkpatch.pl: check for non-permalinks to Zulip
Posted by Siddharth Menon 1 year, 3 months ago
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@kernel.org>
Link: https://github.com/Rust-for-Linux/linux/issues/1104
Signed-off-by: Siddharth Menon <simeddon@gmail.com>
---
V1->V2:
Corrected the Github link to the right issue,
Fixed grammatical errors and Replaced the link to reference 
Documentation to one that is easier to understand.

 scripts/checkpatch.pl | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 39032224d504..41630532a056 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},
@@ -3415,6 +3419,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.2
Re: [PATCH V2] scripts/checkpatch.pl: check for non-permalinks to Zulip
Posted by Miguel Ojeda 1 year, 3 months ago
On Tue, Aug 27, 2024 at 8:44 PM Siddharth Menon <simeddon@gmail.com> wrote:
>
> 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@kernel.org>
> Link: https://github.com/Rust-for-Linux/linux/issues/1104
> Signed-off-by: Siddharth Menon <simeddon@gmail.com>

This looks better, thanks!

> +                            "Use permanent Zulip links when possible - see https://zulip.com/help/link-to-a-message-or-conversation\n" . $herecurr);

That link is better, yeah.

It may still be a bit confusing (one needs to search for "permalink"
inside the page), but perhaps Zulip will improve those when they
introduce more permalinks (?).

I guess we could link directly to the section at
https://zulip.com/help/link-to-a-message-or-conversation#get-a-link-to-a-specific-message
-- it may help a bit.

We could also explain how to shorten the links if the line is very
long, but that is probably best left for another patch (possibly
another warning).

Cheers,
Miguel