On 30/1/24 16:11, Alex Bennée wrote:
Manos Pitsidianakis <manos.pitsidiana...@linaro.org> writes:

On Tue, 30 Jan 2024 12:15, "Daniel P. Berrangé" <berra...@redhat.com> wrote:
On Tue, Jan 30, 2024 at 12:11:07PM +0200, Manos Pitsidianakis wrote:
Check if a file argument is a cover letter patch produced by
git-format-patch --cover-letter; It is initialized with subject suffix "
*** SUBJECT HERE ***" and body prefix " *** BLURB HERE ***". If they
exist, warn the user.
Signed-off-by: Manos Pitsidianakis <manos.pitsidiana...@linaro.org>
---
Range-diff against v1:
1:  64b7ec2287 ! 1:  9bf816eb4c scripts/checkpatch.pl: check for placeholders 
in cover letter patches
     @@ scripts/checkpatch.pl: sub process {
      +# --cover-letter; It is initialized with subject suffix
      +# " *** SUBJECT HERE ***" and body prefix " *** BLURB HERE ***"
      +         if ($in_header_lines &&
     -+             $rawline =~ /^Subject:.+[*]{3} SUBJECT HERE [*]{3}\s*$/) {
     -+        WARN("Patch appears to be a cover letter with uninitialized 
subject" .
     -+             " '*** SUBJECT HERE ***'\n$hereline\n");
     ++                         $rawline =~ /^Subject:.+[*]{3} SUBJECT HERE 
[*]{3}\s*$/) {
     ++                 WARN("Patch appears to be a cover letter with " .
     ++                                         "uninitialized subject '*** SUBJECT 
HERE ***'\n$hereline\n");
      +         }
      +
      +         if ($rawline =~ /^[*]{3} BLURB HERE [*]{3}\s*$/) {
     -+        WARN("Patch appears to be a cover letter with leftover placeholder 
" .
     -+             "text '*** BLURB HERE ***'\n$hereline\n");
     ++                 WARN("Patch appears to be a cover letter with " .
     ++                                         "leftover placeholder text '*** 
BLURB HERE ***'\n$hereline\n");
      +         }
      +
                if ($in_commit_log && $non_utf8_charset && $realfile =~ /^$/ &&
  scripts/checkpatch.pl | 14 ++++++++++++++
  1 file changed, 14 insertions(+)
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 7026895074..9a8d49f1d8 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -1650,6 +1650,20 @@ sub process {
                        $non_utf8_charset = 1;
                }
  +# Check if this is a cover letter patch produced by
git-format-patch
+# --cover-letter; It is initialized with subject suffix
+# " *** SUBJECT HERE ***" and body prefix " *** BLURB HERE ***"
+               if ($in_header_lines &&
+                               $rawline =~ /^Subject:.+[*]{3} SUBJECT HERE 
[*]{3}\s*$/) {

This continuation line is now hugely over-indented - it should
be aligned just after the '('

It is not, it just uses tabs. Like line 2693 in current master:

https://gitlab.com/qemu-project/qemu/-/blob/11be70677c70fdccd452a3233653949b79e97908/scripts/checkpatch.pl#L2693

I will quote the **QEMU Coding Style** again on whitespace:

Whitespace
Of course, the most important aspect in any coding style is
whitespace. Crusty old coders who have trouble spotting the glasses
on their noses can tell the difference between a tab and eight
spaces from a distance of approximately fifteen parsecs. Many a
flamewar has been fought and lost on this issue.

QEMU indents are four spaces. Tabs are never used, except in
Makefiles where they have been irreversibly coded into the syntax.
Spaces of course are superior to tabs because:
     You have just one way to specify whitespace, not two. Ambiguity
breeds mistakes.
     The confusion surrounding ‘use tabs to indent, spaces to
justify’ is gone.
     Tab indents push your code to the right, making your screen
seriously unbalanced.
     Tabs will be rendered incorrectly on editors who are
misconfigured not to use tab stops of eight positions.
     Tabs are rendered badly in patches, causing off-by-one errors in
almost every line.
    It is the QEMU coding style.

I think it's better if we leave this discussion here, and accept v1
which is consistent with the coding style, or this one which is
consistent with the inconsistency of the tabs and spaces mix of the
checkpatch.pl source code as a compromise, if it is deemed important.

I suspect the problem is that checkpatch.pl is an import from the Linux
source tree which has since had syncs with its upstream as well as a
slew of QEMU specific patches. If we don't care about tracking upstream
anymore we could bite the bullet and fix indentation going forward.

We diverged quite some time ago and don't track it anymore AFAICT.
Regardless, git tools are clever enough to deal with space changes
and a tab/space commit can be added to .git-blame-ignore-revs.

Of course arguably we should replace it with a python script and reduce
our dependence on perl. I'm sure someone had a go at that once but it
might have only been a partial undertaking.



Reply via email to