Re: [PATCH] checkpatch: add check for fixes: tag
From: Philippe Schenker
Date: Thu Sep 08 2022 - 06:01:51 EST
On Wed, 2022-09-07 at 08:18 -0700, Joe Perches wrote:
> On Wed, 2022-09-07 at 14:35 +0200, Philippe Schenker wrote:
> > From: Philippe Schenker <philippe.schenker@xxxxxxxxxxx>
> >
> > The page about submitting patches in
> > Documentation/process/submitting-patches.rst is very specific on how
> > that
> > tag should be formatted: 'Fixes: <12+ chars of sha1> (\"<title
> > line>\")'
> >
> > Add a rule that warns if this format does not match. This commit is
> > introduced as in the past commits have been sent multiple times with
> > having the word commit also in the Fixes: tag which had to be
> > corrected
> > by the maintainers. [1]
>
> I preferred your first patch that added the commit description match
> as that's a fairly common defect.
Hi Joe, thanks for your review!
This patch is my first one that I'm sending. I was not aware that Niklas
sent the exact same thing few days earlier. Maybe you mix these two
submissions. [1]
How do we proceed? I guess it is up to you which approach you like
better. Niklas has good parts in his submission which I could take in or
I contribute in his v2 of the patch.
Certainly, this shows that the check we're trying to add is helpful 🙂.
Anyway, I'll answer your comments that not already got answered by
Stephen.
[1]
https://lore.kernel.org/all/20220905105247.920676-1-niklas.soderlund@xxxxxxxxxxxx/
>
> > diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> []
> > @@ -3438,6 +3438,13 @@ sub process {
> > }
> > }
> >
> > +# Check fixes tag format
> > + if ($in_commit_log && ($line =~ /^\s*Fixes:/i) &&
> > + !($line =~ /^\s*Fixes:\s[0-9a-
> > f]{12,40}\s\(\".*\"\)/)) {
>
> All fixes lines should start in the first column.
Agree, I didn't want to make it too strict but this can be easily
changed of course.
>
> This allows spaces at the start of the line and the only white space
> allowed after Fixes: and after the SHA1 should be a space not a tab.
Agree too, I'll change the regexp accordingly if you decide to go with
my submission.
>
> I think the test better if it checks for a SHA1 after fixes.
>
> And IMO
>
> !(foo =~ /bar.../)
>
> is better written as
>
> foo !~ /bar.../
>
> so
>
> if ($in_commit_log &&
> $line =~ /^\s*Fixes:?\s*[0-9a-f]{5,}\b/i &&
> $line !~ /^Fixes: [0-9a-f]{12,40} \(\".*\"\)/)) {
>
> Though it's arguable that the SHA1 should _only_ be length 12
> and not longer.
>