All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH RFC v3 0/3] checkpatch: add verbose mode
@ 2021-02-13 13:15 ` Dwaipayan Ray
  0 siblings, 0 replies; 26+ messages in thread
From: Dwaipayan Ray @ 2021-02-13 13:15 UTC (permalink / raw)
  To: joe
  Cc: linux-doc, lukas.bulwahn, linux-kernel-mentees, linux-kernel,
	Dwaipayan Ray

Add a new verbose mode to checkpatch. The verbose test 
descriptions are read from the checkpatch documentation
file at `Documentation/dev-tools/checkpatch.rst`.

The verbose mode is optional and can be enabled by the
flag -v or --verbose.

The documentation file is only parsed by checkpatch.pl
if the verbose mode is enabled. The verbose mode is also
suppressed when the --terse option is specified.

Changes in v3:
- Simplify documentation file parsing in checkpatch
- Document a total of 33 message types for checkpatch

Changes in v2:
- Use .rst Field Lists to specify the type descriptions.
- Add a few more type descriptions to documentation.


Dwaipayan Ray (3):
  checkpatch: add verbose mode
  docs: add documentation for checkpatch
  docs: add documentation for checkpatch

 Documentation/dev-tools/checkpatch.rst | 494 +++++++++++++++++++++++++
 Documentation/dev-tools/index.rst      |   1 +
 scripts/checkpatch.pl                  |  55 ++-
 3 files changed, 549 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/dev-tools/checkpatch.rst

-- 
2.30.0


^ permalink raw reply	[flat|nested] 26+ messages in thread

* [Linux-kernel-mentees] [PATCH RFC v3 0/3] checkpatch: add verbose mode
@ 2021-02-13 13:15 ` Dwaipayan Ray
  0 siblings, 0 replies; 26+ messages in thread
From: Dwaipayan Ray @ 2021-02-13 13:15 UTC (permalink / raw)
  To: joe; +Cc: Dwaipayan Ray, linux-kernel-mentees, linux-kernel, linux-doc

Add a new verbose mode to checkpatch. The verbose test 
descriptions are read from the checkpatch documentation
file at `Documentation/dev-tools/checkpatch.rst`.

The verbose mode is optional and can be enabled by the
flag -v or --verbose.

The documentation file is only parsed by checkpatch.pl
if the verbose mode is enabled. The verbose mode is also
suppressed when the --terse option is specified.

Changes in v3:
- Simplify documentation file parsing in checkpatch
- Document a total of 33 message types for checkpatch

Changes in v2:
- Use .rst Field Lists to specify the type descriptions.
- Add a few more type descriptions to documentation.


Dwaipayan Ray (3):
  checkpatch: add verbose mode
  docs: add documentation for checkpatch
  docs: add documentation for checkpatch

 Documentation/dev-tools/checkpatch.rst | 494 +++++++++++++++++++++++++
 Documentation/dev-tools/index.rst      |   1 +
 scripts/checkpatch.pl                  |  55 ++-
 3 files changed, 549 insertions(+), 1 deletion(-)
 create mode 100644 Documentation/dev-tools/checkpatch.rst

-- 
2.30.0

_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply	[flat|nested] 26+ messages in thread

* [PATCH RFC v3 1/3] checkpatch: add verbose mode
  2021-02-13 13:15 ` [Linux-kernel-mentees] " Dwaipayan Ray
@ 2021-02-13 13:15   ` Dwaipayan Ray
  -1 siblings, 0 replies; 26+ messages in thread
From: Dwaipayan Ray @ 2021-02-13 13:15 UTC (permalink / raw)
  To: joe
  Cc: linux-doc, lukas.bulwahn, linux-kernel-mentees, linux-kernel,
	Dwaipayan Ray

Add a new verbose mode to checkpatch.pl to emit additional verbose
test descriptions. The verbose mode is optional and can be enabled
by the flag -v or --verbose.

The test descriptions are parsed from the checkpatch documentation
file at `Documentation/dev-tools/checkpatch.rst`. The test
descriptions in the docs are kept in a fixed format using rst field
lists, an example of which is as follows:

:LINE_SPACING:
  Vertical space is wasted given the limited number of lines an
  editor window can display when multiple blank lines are used.

:MISSING_SIGN_OFF:
  The patch is missing a Signed-off-by line.  A signed-off-by
  line should be added according to Developer's certificate of
  Origin.
  ref: `Documentation/process/submitting-patches.rst`

The verbose descriptions are not shown when the --terse option
is enabled.

Signed-off-by: Dwaipayan Ray <dwaipayanray1@gmail.com>
---
 scripts/checkpatch.pl | 55 ++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 54 insertions(+), 1 deletion(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 9a549b009d2f..062545e68405 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -23,6 +23,8 @@ my $V = '0.32';
 use Getopt::Long qw(:config no_auto_abbrev);
 
 my $quiet = 0;
+my $verbose = 0;
+my %verbose_messages = ();
 my $tree = 1;
 my $chk_signoff = 1;
 my $chk_patch = 1;
@@ -61,6 +63,7 @@ my $spelling_file = "$D/spelling.txt";
 my $codespell = 0;
 my $codespellfile = "/usr/share/codespell/dictionary.txt";
 my $conststructsfile = "$D/const_structs.checkpatch";
+my $docsfile = "$D/../Documentation/dev-tools/checkpatch.rst";
 my $typedefsfile;
 my $color = "auto";
 my $allow_c99_comments = 1; # Can be overridden by --ignore C99_COMMENT_TOLERANCE
@@ -78,6 +81,7 @@ Version: $V
 
 Options:
   -q, --quiet                quiet
+  -v, --verbose              verbose mode
   --no-tree                  run without a kernel tree
   --no-signoff               do not check for 'Signed-off-by' line
   --patch                    treat FILE as patchfile (default)
@@ -198,6 +202,46 @@ if (-f $conf) {
 	unshift(@ARGV, @conf_args) if @conf_args;
 }
 
+sub load_docs {
+	open(my $docs, '<', "$docsfile")
+	    or warn "$P: Can't read the documentation file $docsfile $!\n";
+
+	my $type = '';
+	my $desc = '';
+	my $in_desc = 0;
+
+	while (<$docs>) {
+		chomp;
+		my $line = $_;
+		$line =~ s/\s+$//;
+
+		if ($line =~ /^\:(.+)\:$/) {
+			if ($desc ne '') {
+				$verbose_messages{$type} = trim($desc);
+			}
+			$type = $1;
+			$desc = '';
+			$in_desc = 1;
+		} elsif ($in_desc) {
+			if ($line =~ /^(?:\s{2,}|$)/) {
+				$line =~ s/^\s{2}//;
+				$desc .= $line;
+				$desc .= "\n";
+			} else {
+				$verbose_messages{$type} = trim($desc);
+				$type = '';
+				$desc = '';
+				$in_desc = 0;
+			}
+		}
+	}
+
+	if ($desc ne '') {
+		$verbose_messages{$type} = trim($desc);
+	}
+	close($docs);
+}
+
 # Perl's Getopt::Long allows options to take optional arguments after a space.
 # Prevent --color by itself from consuming other arguments
 foreach (@ARGV) {
@@ -208,6 +252,7 @@ foreach (@ARGV) {
 
 GetOptions(
 	'q|quiet+'	=> \$quiet,
+	'v|verbose!'	=> \$verbose,
 	'tree!'		=> \$tree,
 	'signoff!'	=> \$chk_signoff,
 	'patch!'	=> \$chk_patch,
@@ -249,6 +294,8 @@ help(0) if ($help);
 
 list_types(0) if ($list_types);
 
+load_docs() if ($verbose && !$terse);
+
 $fix = 1 if ($fix_inplace);
 $check_orig = $check;
 
@@ -2209,7 +2256,13 @@ sub report {
 		splice(@lines, 1, 1);
 		$output = join("\n", @lines);
 	}
-	$output = (split('\n', $output))[0] . "\n" if ($terse);
+
+	if ($terse) {
+		$output = (split('\n', $output))[0] . "\n";
+	} elsif ($verbose &&
+		 exists $verbose_messages{$type}) {
+		$output .= $verbose_messages{$type} . "\n\n";
+	}
 
 	push(our @report, $output);
 
-- 
2.30.0


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Linux-kernel-mentees] [PATCH RFC v3 1/3] checkpatch: add verbose mode
@ 2021-02-13 13:15   ` Dwaipayan Ray
  0 siblings, 0 replies; 26+ messages in thread
From: Dwaipayan Ray @ 2021-02-13 13:15 UTC (permalink / raw)
  To: joe; +Cc: Dwaipayan Ray, linux-kernel-mentees, linux-kernel, linux-doc

Add a new verbose mode to checkpatch.pl to emit additional verbose
test descriptions. The verbose mode is optional and can be enabled
by the flag -v or --verbose.

The test descriptions are parsed from the checkpatch documentation
file at `Documentation/dev-tools/checkpatch.rst`. The test
descriptions in the docs are kept in a fixed format using rst field
lists, an example of which is as follows:

:LINE_SPACING:
  Vertical space is wasted given the limited number of lines an
  editor window can display when multiple blank lines are used.

:MISSING_SIGN_OFF:
  The patch is missing a Signed-off-by line.  A signed-off-by
  line should be added according to Developer's certificate of
  Origin.
  ref: `Documentation/process/submitting-patches.rst`

The verbose descriptions are not shown when the --terse option
is enabled.

Signed-off-by: Dwaipayan Ray <dwaipayanray1@gmail.com>
---
 scripts/checkpatch.pl | 55 ++++++++++++++++++++++++++++++++++++++++++-
 1 file changed, 54 insertions(+), 1 deletion(-)

diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 9a549b009d2f..062545e68405 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl
@@ -23,6 +23,8 @@ my $V = '0.32';
 use Getopt::Long qw(:config no_auto_abbrev);
 
 my $quiet = 0;
+my $verbose = 0;
+my %verbose_messages = ();
 my $tree = 1;
 my $chk_signoff = 1;
 my $chk_patch = 1;
@@ -61,6 +63,7 @@ my $spelling_file = "$D/spelling.txt";
 my $codespell = 0;
 my $codespellfile = "/usr/share/codespell/dictionary.txt";
 my $conststructsfile = "$D/const_structs.checkpatch";
+my $docsfile = "$D/../Documentation/dev-tools/checkpatch.rst";
 my $typedefsfile;
 my $color = "auto";
 my $allow_c99_comments = 1; # Can be overridden by --ignore C99_COMMENT_TOLERANCE
@@ -78,6 +81,7 @@ Version: $V
 
 Options:
   -q, --quiet                quiet
+  -v, --verbose              verbose mode
   --no-tree                  run without a kernel tree
   --no-signoff               do not check for 'Signed-off-by' line
   --patch                    treat FILE as patchfile (default)
@@ -198,6 +202,46 @@ if (-f $conf) {
 	unshift(@ARGV, @conf_args) if @conf_args;
 }
 
+sub load_docs {
+	open(my $docs, '<', "$docsfile")
+	    or warn "$P: Can't read the documentation file $docsfile $!\n";
+
+	my $type = '';
+	my $desc = '';
+	my $in_desc = 0;
+
+	while (<$docs>) {
+		chomp;
+		my $line = $_;
+		$line =~ s/\s+$//;
+
+		if ($line =~ /^\:(.+)\:$/) {
+			if ($desc ne '') {
+				$verbose_messages{$type} = trim($desc);
+			}
+			$type = $1;
+			$desc = '';
+			$in_desc = 1;
+		} elsif ($in_desc) {
+			if ($line =~ /^(?:\s{2,}|$)/) {
+				$line =~ s/^\s{2}//;
+				$desc .= $line;
+				$desc .= "\n";
+			} else {
+				$verbose_messages{$type} = trim($desc);
+				$type = '';
+				$desc = '';
+				$in_desc = 0;
+			}
+		}
+	}
+
+	if ($desc ne '') {
+		$verbose_messages{$type} = trim($desc);
+	}
+	close($docs);
+}
+
 # Perl's Getopt::Long allows options to take optional arguments after a space.
 # Prevent --color by itself from consuming other arguments
 foreach (@ARGV) {
@@ -208,6 +252,7 @@ foreach (@ARGV) {
 
 GetOptions(
 	'q|quiet+'	=> \$quiet,
+	'v|verbose!'	=> \$verbose,
 	'tree!'		=> \$tree,
 	'signoff!'	=> \$chk_signoff,
 	'patch!'	=> \$chk_patch,
@@ -249,6 +294,8 @@ help(0) if ($help);
 
 list_types(0) if ($list_types);
 
+load_docs() if ($verbose && !$terse);
+
 $fix = 1 if ($fix_inplace);
 $check_orig = $check;
 
@@ -2209,7 +2256,13 @@ sub report {
 		splice(@lines, 1, 1);
 		$output = join("\n", @lines);
 	}
-	$output = (split('\n', $output))[0] . "\n" if ($terse);
+
+	if ($terse) {
+		$output = (split('\n', $output))[0] . "\n";
+	} elsif ($verbose &&
+		 exists $verbose_messages{$type}) {
+		$output .= $verbose_messages{$type} . "\n\n";
+	}
 
 	push(our @report, $output);
 
-- 
2.30.0

_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH RFC v3 2/3] docs: add documentation for checkpatch
  2021-02-13 13:15 ` [Linux-kernel-mentees] " Dwaipayan Ray
@ 2021-02-13 13:15   ` Dwaipayan Ray
  -1 siblings, 0 replies; 26+ messages in thread
From: Dwaipayan Ray @ 2021-02-13 13:15 UTC (permalink / raw)
  To: joe
  Cc: linux-doc, lukas.bulwahn, linux-kernel-mentees, linux-kernel,
	Dwaipayan Ray

Add documentation for kernel script checkpatch.pl.
This documentation is also parsed by checkpatch to
enable a verbose mode.

The message types in checkpatch are documented with rst
field lists. A total of 33 checkpatch type descriptions
are added.

Signed-off-by: Dwaipayan Ray <dwaipayanray1@gmail.com>
---
 Documentation/dev-tools/checkpatch.rst | 494 +++++++++++++++++++++++++
 1 file changed, 494 insertions(+)
 create mode 100644 Documentation/dev-tools/checkpatch.rst

diff --git a/Documentation/dev-tools/checkpatch.rst b/Documentation/dev-tools/checkpatch.rst
new file mode 100644
index 000000000000..8e6ff1e27353
--- /dev/null
+++ b/Documentation/dev-tools/checkpatch.rst
@@ -0,0 +1,494 @@
+.. SPDX-License-Identifier: GPL-2.0-only
+
+==========
+Checkpatch
+==========
+
+This document describes the kernel script checkpatch.pl.
+
+.. Table of Contents
+
+	=== 1 Introduction
+	=== 2 Options
+	=== 3 Message Levels
+	=== 4 Type Descriptions
+
+1 Introduction
+--------------
+
+Checkpatch (scripts/checkpatch.pl) is a perl script which checks for trivial style
+violations in patches and optionally corrects them.  Checkpatch can also be run on
+file contexts and without the kernel tree.
+
+Checkpatch is not always right. Your judgement takes precedence over checkpatch
+messages.  If your code looks better with the violations, then its probably
+best left alone.
+
+
+2 Options
+---------
+
+This section will describe the options checkpatch can be run with.
+
+Usage::
+
+  ./scripts/checkpatch.pl [OPTION]... [FILE]...
+
+Available options:
+
+ - -q,  --quiet
+
+   Enable quiet mode.
+
+ - -v,  --verbose
+   Enable verbose mode.  Additional verbose test descriptions are output
+   so as to provide information on why that particular message is shown.
+
+ - --no-tree
+
+   Run checkpatch without the kernel tree.
+
+ - --no-signoff
+
+   Disable the 'Signed-off-by' line check.  The sign-off is a simple line at
+   the end of the explanation for the patch, which certifies that you wrote it
+   or otherwise have the right to pass it on as an open-source patch.
+
+   Example::
+
+	 Signed-off-by: Random J Developer <random@developer.example.org>
+
+   Setting this flag effectively stops a message for a missing signed-off-by line
+   in a patch context.
+
+ - --patch
+
+   Treat FILE as a patch.  This is the default option and need not be
+   explicitly specified.
+
+ - --emacs
+
+   Set output to emacs compile window format.  This allows emacs users to jump
+   from the error in the compile window directly to the offending line in the patch.
+
+ - --terse
+
+   Output only one line per report.
+
+ - --showfile
+
+   Show the diffed file position instead of the input file position.
+
+ - -g,  --git
+
+   Treat FILE as a single commit or a git revision range.
+
+   Single commit with:
+
+   - <rev>
+   - <rev>^
+   - <rev>~n
+
+   Multiple commits with:
+
+   - <rev1>..<rev2>
+   - <rev1>...<rev2>
+   - <rev>-<count>
+
+ - -f,  --file
+
+   Treat FILE as a regular source file.  This option must be used when running
+   checkpatch on source files in the kernel.
+
+ - --subjective,  --strict
+
+   Enable stricter tests in checkpatch.  By default the tests emitted as CHECK
+   do not activate by default.  Use this flag to activate the CHECK tests.
+
+ - --list-types
+
+   Every message emitted by checkpatch has an associated TYPE.  Add this flag to
+   display all the types in checkpatch.
+
+   Note that when this flag is active, checkpatch does not read the input FILE, and
+   no message is emitted.  Only a list of types in checkpatch is output.
+
+ - --types TYPE(,TYPE2...)
+
+   Only display messages with the given types.
+
+   Example::
+
+     ./scripts/checkpatch.pl mypatch.patch --types EMAIL_SUBJECT,NO_AUTHOR_SIGN_OFF
+
+ - --ignore TYPE(,TYPE2...)
+
+   Checkpatch will not emit messages for the specified types.
+
+   Example::
+
+     ./scripts/checkpatch.pl mypatch.patch --ignore EMAIL_SUBJECT,NO_AUTHOR_SIGN_OFF
+
+ - --show-types
+
+   By default checkpatch doesn't display the type associated with the messages.
+   Set this flag to show the message type in the output.
+
+ - --max-line-length=n
+
+   Set the max line length (default 100).  If a line exceeds the specified length,
+   a LONG_LINE message is emitted.
+
+
+   The message level is different for patch and file contexts.  For patches, a WARNING is
+   emitted.  While a milder CHECK is emitted for files.  So for file contexts, the --strict
+   flag must also be enabled.
+
+ - --min-conf-desc-length=n
+
+   Set the Kconfig entry minimum description length, if shorter, warn.
+
+ - --tab-size=n
+
+   Set the number of spaces for tab (default 8).
+
+ - --root=PATH
+
+   PATH to the kernel tree root.
+
+   This option must be specified when invoking checkpatch from outside
+   the kernel root.
+
+ - --no-summary
+
+   Suppress the per file summary.
+
+ - --mailback
+
+   Only produce a report in case of Warnings or Errors.  Milder Checks are
+   excluded from this.
+
+ - --summary-file
+
+   Include the filename in summary.
+
+ - --debug KEY=[0|1]
+
+   Turn on/off debugging of KEY, where KEY is one of 'values', 'possible',
+   'type', and 'attr' (default is all off).
+
+ - --fix
+
+   This is an EXPERIMENTAL feature.  If correctable errors exists, a file
+   <inputfile>.EXPERIMENTAL-checkpatch-fixes is created which has the
+   automatically fixable errors corrected.
+
+ - --fix-inplace
+
+   EXPERIMENTAL - Similar to --fix but the input file is overwritten with fixes.
+
+   DO NOT USE this flag unless you are absolutely sure and you have a backup in place.
+
+ - --ignore-perl-version
+
+   Override checking of perl version.  Runtime errors maybe encountered after
+   enabling this flag if the perl version does not meet the minimum specified.
+
+ - --codespell
+
+   Use the codespell dictionary for checking spelling errors.
+
+ - --codespellfile
+
+   Use the specified codespell file.  Default is '/usr/share/codespell/dictionary.txt'.
+
+ - --typedefsfile
+
+   Read additional types from this file.
+
+ - --color[=WHEN]
+
+   Use colors 'always', 'never', or only when output is a terminal ('auto').
+   Default is 'auto'.
+
+ - --kconfig-prefix=WORD
+
+   Use WORD as a prefix for Kconfig symbols (default is `CONFIG_`).
+
+ - -h, --help, --version
+
+   Display the help text.
+
+3 Message Levels
+----------------
+
+Messages in checkpatch are divided into three levels. The levels of messages in
+checkpatch denote the severity of the error. They are:
+
+ - ERROR
+
+   This is the most strict level.  Messages of type ERROR must be taken
+   seriously as they denote things that are very likely to be wrong.
+
+ - WARNING
+
+   This is the next stricter level.  Messages of type WARNING requires a
+   more careful review.  But it is milder than an ERROR.
+
+ - CHECK
+
+   This is the mildest level.  These are things which may require some thought.
+
+4 Type Descriptions
+-------------------
+
+This section contains a description of all the message types in checkpatch.
+
+.. Types in this section are also parsed by checkpatch.
+.. Please keep the types sorted alphabetically.
+
+:ALLOC_ARRAY_ARGS:
+  The first argument for kcalloc or kmalloc_array should be the
+  number of elements.  sizeof() as the first argument is generally
+  wrong.
+
+:ALLOC_SIZEOF_STRUCT:
+  The allocation style is bad.  In general for family of
+  allocation functions using sizeof() to get memory size,
+  constructs like::
+
+    p = alloc(sizeof(struct foo), ...)
+
+  should be::
+
+    p = alloc(sizeof(*p), ...)
+
+:ALLOC_WITH_MULTIPLY:
+  Prefer kmalloc_array/kcalloc over kmalloc/kzalloc with a
+  sizeof multiply.
+  Ref: `Documentation/core-api/memory-allocation.rst`
+
+:ARCH_DEFINES:
+  Architecture specific defines should be avoided wherever
+  possible.
+
+:ARCH_INCLUDE_LINUX:
+  Whenever asm/file.h is included and linux/file.h exists, a
+  conversion can be made when linux/file.h includes asm/file.h.
+  However this is not always the case (See signal.h).
+  This message type is emitted only for includes from arch/.
+
+:ARRAY_SIZE:
+  The ARRAY_SIZE(foo) macro should be preferred over
+  sizeof(foo)/sizeof(foo[0]) for finding number of elements in an
+  array.
+
+  The macro is defined in include/linux/kernel.h::
+
+    #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
+
+:ASSIGNMENT_CONTINUATIONS:
+  Assignment operators should not be written at the start of a
+  line but should follow the operand at the previous line.
+
+:ASSIGN_IN_IF:
+  Do not use assignments in if condition.
+  Example::
+
+    if ((foo = bar(...)) < BAZ) {
+
+  should be written as::
+
+    foo = bar(...);
+    if (foo < BAZ) {
+
+:AVOID_BUG:
+  BUG() or BUG_ON() should be avoided totally.
+  Use WARN() and WARN_ON() instead, and handle the "impossible"
+  error condition as gracefully as possible.
+  Ref: `Documentation/process/deprecated.rst`
+
+:AVOID_EXTERNS:
+  Function prototypes don't need to be declared extern in .h
+  files.  It's assumed by the compiler and is unnecessary.
+
+:AVOID_L_PREFIX:
+  Local symbol names that are prefixed with `.L` should be avoided,
+  as this has special meaning for the assembler; a symbol entry will
+  not be emitted into the symbol table.  This can prevent `objtool`
+  from generating correct unwind info.
+
+  Symbols with STB_LOCAL binding may still be used, and `.L` prefixed
+  local symbol names are still generally usable within a function,
+  but `.L` prefixed local symbol names should not be used to denote
+  the beginning or end of code regions via
+  `SYM_CODE_START_LOCAL`/`SYM_CODE_END`
+
+:BAD_SIGN_OFF:
+  The signed-off-by line does not fall in line with the standards
+  specified by the community.
+  Ref: `Documentation/process/submitting-patches.rst`
+
+:BAD_STABLE_ADDRESS_STYLE:
+  The email format for stable is incorrect.
+  Some valid options for stable address are::
+
+    1. stable@vger.kernel.org
+    2. stable@kernel.org
+
+  For adding version info, the following comment style should be used::
+
+    stable@vger.kernel.org # version info
+
+:BIT_MACRO:
+  Defines like: 1 << <digit> could be BIT(digit).
+  The BIT() macro is defined in include/linux/bitops.h::
+
+    #define BIT(nr)         (1UL << (nr))
+
+:BLOCK_COMMENT_STYLE:
+  The comment style is incorrect.  The preferred style for multi-
+  line comments is::
+
+    /*
+     * This is the preferred style
+     * for multi line comments.
+     */
+
+  The networking comment style is a bit different, with the first line
+  not empty like the former::
+
+    /* This is the preferred comment style
+     * for files in net/ and drivers/net/
+     */
+
+  Ref: `Documentation/process/coding-style.rst`
+
+:BOOL_COMPARISON:
+  Comparisons of A to true and false are better written
+  as A and !A.
+  Ref: `https://lore.kernel.org/lkml/1365563834.27174.12.camel@joe-AO722/`
+
+:BRACES:
+  The placement of braces is stylistically incorrect.
+  The preferred way is to put the opening brace last on the line,
+  and put the closing brace first::
+
+    if (x is true) {
+      we do y
+    }
+
+  This applies for all non-functional blocks.
+  However, there is one special case, namely functions: they have the
+  opening brace at the beginning of the next line, thus::
+
+    int function(int x)
+    {
+      body of function
+    }
+
+  Ref: `Documentation/process/coding-style.rst Section 3`
+
+:BRACKET_SPACE:
+  Whitespace before opening bracket '[' is prohibited.
+  There are some exceptions:
+
+  1. With a type on the left::
+
+     ;int [] a;
+
+  2. At the beginning of a line for slice initialisers::
+
+     [0...10] = 5,
+
+  3. Inside a curly brace::
+
+     = { [0...10] = 5 }
+
+:C99_COMMENTS:
+  C99 style single line comments (//) should not be used.
+  Prefer the block comment style instead.
+  Ref: `Documentation/process/coding-style.rst Section 8`
+
+:CAMELCASE:
+  Avoid CamelCase Identifiers.  snake_case can be an
+  alternative.
+
+:CODE_INDENT:
+  Code indent should use tabs instead of spaces.
+  Outside of comments, documentation and Kconfig,
+  spaces are never used for indentation.
+  Ref: `Documentation/process/coding-style.rst Section 1`
+
+:COMMIT_COMMENT_SYMBOL:
+  Commit log lines starting with a '#' are ignored by git as
+  comments.  To solve this problem addition of a single space
+  infront of the log line is enough.
+
+:COMMIT_MESSAGE:
+  The patch is missing a commit description.  A brief
+  description of the changes made by the patch should be added.
+  Ref: `Documentation/process/submitting-patches.rst`
+
+:COMPARISON_TO_NULL:
+  Comparisons to NULL in the form (foo == NULL) or (foo != NULL)
+  are better written as (!foo) and (foo).
+
+:COMPLEX_MACRO:
+  Macros with complex values should be enclosed within parentheses.
+  Consider::
+
+    #define SOME_MACRO IS_ENABLED(CONFIG_XX) ? 1 : 0
+
+  This can be better written as::
+
+    #define SOME_MACRO (IS_ENABLED(CONFIG_XX) ? 1 : 0)
+
+:CONCATENATED_STRING:
+  Concatenated elements should have a space in between.
+  Example::
+
+    printk(KERN_INFO"bar");
+
+  should be::
+
+    printk(KERN_INFO "bar");
+
+:CONFIG_DESCRIPTION:
+  Kconfig symbols should have a help text which fully describes
+  it.
+
+:CONSIDER_KSTRTO:
+  The simple_strtol(), simple_strtoll(), simple_strtoul(), and
+  simple_strtoull() functions explicitly ignore overflows, which
+  may lead to unexpected results in callers.  The respective kstrtol(),
+  kstrtoll(), kstrtoul(), and kstrtoull() functions tend to be the
+  correct replacements.
+  Ref: `Documentation/process/deprecated.rst`
+
+:CONSTANT_COMPARISON:
+  Comparisons with a constant or upper case identifier on the left
+  side of the test should be avoided.
+
+:LINE_SPACING:
+  Vertical space is wasted given the limited number of lines an
+  editor window can display when multiple blank lines are used.
+  Ref: `Documentation/process/coding-style.rst Section 3.1`
+
+:MISSING_SIGN_OFF:
+  The patch is missing a Signed-off-by line.  A signed-off-by
+  line should be added according to Developer's certificate of
+  Origin.
+  ref: `Documentation/process/submitting-patches.rst`
+
+:NO_AUTHOR_SIGN_OFF:
+  The author of the patch has not signed off the patch.  It is
+  required that a simple sign off line should be present at the
+  end of explanation of the patch to denote that the author has
+  written it or otherwise has the rights to pass it on as an open
+  source patch.
+
+:TRAILING_WHITESPACE:
+  Trailing whitespace should always be removed.
+  Some editors highlight the trailing whitespace and cause visual
+  distractions when editing files.
-- 
2.30.0


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Linux-kernel-mentees] [PATCH RFC v3 2/3] docs: add documentation for checkpatch
@ 2021-02-13 13:15   ` Dwaipayan Ray
  0 siblings, 0 replies; 26+ messages in thread
From: Dwaipayan Ray @ 2021-02-13 13:15 UTC (permalink / raw)
  To: joe; +Cc: Dwaipayan Ray, linux-kernel-mentees, linux-kernel, linux-doc

Add documentation for kernel script checkpatch.pl.
This documentation is also parsed by checkpatch to
enable a verbose mode.

The message types in checkpatch are documented with rst
field lists. A total of 33 checkpatch type descriptions
are added.

Signed-off-by: Dwaipayan Ray <dwaipayanray1@gmail.com>
---
 Documentation/dev-tools/checkpatch.rst | 494 +++++++++++++++++++++++++
 1 file changed, 494 insertions(+)
 create mode 100644 Documentation/dev-tools/checkpatch.rst

diff --git a/Documentation/dev-tools/checkpatch.rst b/Documentation/dev-tools/checkpatch.rst
new file mode 100644
index 000000000000..8e6ff1e27353
--- /dev/null
+++ b/Documentation/dev-tools/checkpatch.rst
@@ -0,0 +1,494 @@
+.. SPDX-License-Identifier: GPL-2.0-only
+
+==========
+Checkpatch
+==========
+
+This document describes the kernel script checkpatch.pl.
+
+.. Table of Contents
+
+	=== 1 Introduction
+	=== 2 Options
+	=== 3 Message Levels
+	=== 4 Type Descriptions
+
+1 Introduction
+--------------
+
+Checkpatch (scripts/checkpatch.pl) is a perl script which checks for trivial style
+violations in patches and optionally corrects them.  Checkpatch can also be run on
+file contexts and without the kernel tree.
+
+Checkpatch is not always right. Your judgement takes precedence over checkpatch
+messages.  If your code looks better with the violations, then its probably
+best left alone.
+
+
+2 Options
+---------
+
+This section will describe the options checkpatch can be run with.
+
+Usage::
+
+  ./scripts/checkpatch.pl [OPTION]... [FILE]...
+
+Available options:
+
+ - -q,  --quiet
+
+   Enable quiet mode.
+
+ - -v,  --verbose
+   Enable verbose mode.  Additional verbose test descriptions are output
+   so as to provide information on why that particular message is shown.
+
+ - --no-tree
+
+   Run checkpatch without the kernel tree.
+
+ - --no-signoff
+
+   Disable the 'Signed-off-by' line check.  The sign-off is a simple line at
+   the end of the explanation for the patch, which certifies that you wrote it
+   or otherwise have the right to pass it on as an open-source patch.
+
+   Example::
+
+	 Signed-off-by: Random J Developer <random@developer.example.org>
+
+   Setting this flag effectively stops a message for a missing signed-off-by line
+   in a patch context.
+
+ - --patch
+
+   Treat FILE as a patch.  This is the default option and need not be
+   explicitly specified.
+
+ - --emacs
+
+   Set output to emacs compile window format.  This allows emacs users to jump
+   from the error in the compile window directly to the offending line in the patch.
+
+ - --terse
+
+   Output only one line per report.
+
+ - --showfile
+
+   Show the diffed file position instead of the input file position.
+
+ - -g,  --git
+
+   Treat FILE as a single commit or a git revision range.
+
+   Single commit with:
+
+   - <rev>
+   - <rev>^
+   - <rev>~n
+
+   Multiple commits with:
+
+   - <rev1>..<rev2>
+   - <rev1>...<rev2>
+   - <rev>-<count>
+
+ - -f,  --file
+
+   Treat FILE as a regular source file.  This option must be used when running
+   checkpatch on source files in the kernel.
+
+ - --subjective,  --strict
+
+   Enable stricter tests in checkpatch.  By default the tests emitted as CHECK
+   do not activate by default.  Use this flag to activate the CHECK tests.
+
+ - --list-types
+
+   Every message emitted by checkpatch has an associated TYPE.  Add this flag to
+   display all the types in checkpatch.
+
+   Note that when this flag is active, checkpatch does not read the input FILE, and
+   no message is emitted.  Only a list of types in checkpatch is output.
+
+ - --types TYPE(,TYPE2...)
+
+   Only display messages with the given types.
+
+   Example::
+
+     ./scripts/checkpatch.pl mypatch.patch --types EMAIL_SUBJECT,NO_AUTHOR_SIGN_OFF
+
+ - --ignore TYPE(,TYPE2...)
+
+   Checkpatch will not emit messages for the specified types.
+
+   Example::
+
+     ./scripts/checkpatch.pl mypatch.patch --ignore EMAIL_SUBJECT,NO_AUTHOR_SIGN_OFF
+
+ - --show-types
+
+   By default checkpatch doesn't display the type associated with the messages.
+   Set this flag to show the message type in the output.
+
+ - --max-line-length=n
+
+   Set the max line length (default 100).  If a line exceeds the specified length,
+   a LONG_LINE message is emitted.
+
+
+   The message level is different for patch and file contexts.  For patches, a WARNING is
+   emitted.  While a milder CHECK is emitted for files.  So for file contexts, the --strict
+   flag must also be enabled.
+
+ - --min-conf-desc-length=n
+
+   Set the Kconfig entry minimum description length, if shorter, warn.
+
+ - --tab-size=n
+
+   Set the number of spaces for tab (default 8).
+
+ - --root=PATH
+
+   PATH to the kernel tree root.
+
+   This option must be specified when invoking checkpatch from outside
+   the kernel root.
+
+ - --no-summary
+
+   Suppress the per file summary.
+
+ - --mailback
+
+   Only produce a report in case of Warnings or Errors.  Milder Checks are
+   excluded from this.
+
+ - --summary-file
+
+   Include the filename in summary.
+
+ - --debug KEY=[0|1]
+
+   Turn on/off debugging of KEY, where KEY is one of 'values', 'possible',
+   'type', and 'attr' (default is all off).
+
+ - --fix
+
+   This is an EXPERIMENTAL feature.  If correctable errors exists, a file
+   <inputfile>.EXPERIMENTAL-checkpatch-fixes is created which has the
+   automatically fixable errors corrected.
+
+ - --fix-inplace
+
+   EXPERIMENTAL - Similar to --fix but the input file is overwritten with fixes.
+
+   DO NOT USE this flag unless you are absolutely sure and you have a backup in place.
+
+ - --ignore-perl-version
+
+   Override checking of perl version.  Runtime errors maybe encountered after
+   enabling this flag if the perl version does not meet the minimum specified.
+
+ - --codespell
+
+   Use the codespell dictionary for checking spelling errors.
+
+ - --codespellfile
+
+   Use the specified codespell file.  Default is '/usr/share/codespell/dictionary.txt'.
+
+ - --typedefsfile
+
+   Read additional types from this file.
+
+ - --color[=WHEN]
+
+   Use colors 'always', 'never', or only when output is a terminal ('auto').
+   Default is 'auto'.
+
+ - --kconfig-prefix=WORD
+
+   Use WORD as a prefix for Kconfig symbols (default is `CONFIG_`).
+
+ - -h, --help, --version
+
+   Display the help text.
+
+3 Message Levels
+----------------
+
+Messages in checkpatch are divided into three levels. The levels of messages in
+checkpatch denote the severity of the error. They are:
+
+ - ERROR
+
+   This is the most strict level.  Messages of type ERROR must be taken
+   seriously as they denote things that are very likely to be wrong.
+
+ - WARNING
+
+   This is the next stricter level.  Messages of type WARNING requires a
+   more careful review.  But it is milder than an ERROR.
+
+ - CHECK
+
+   This is the mildest level.  These are things which may require some thought.
+
+4 Type Descriptions
+-------------------
+
+This section contains a description of all the message types in checkpatch.
+
+.. Types in this section are also parsed by checkpatch.
+.. Please keep the types sorted alphabetically.
+
+:ALLOC_ARRAY_ARGS:
+  The first argument for kcalloc or kmalloc_array should be the
+  number of elements.  sizeof() as the first argument is generally
+  wrong.
+
+:ALLOC_SIZEOF_STRUCT:
+  The allocation style is bad.  In general for family of
+  allocation functions using sizeof() to get memory size,
+  constructs like::
+
+    p = alloc(sizeof(struct foo), ...)
+
+  should be::
+
+    p = alloc(sizeof(*p), ...)
+
+:ALLOC_WITH_MULTIPLY:
+  Prefer kmalloc_array/kcalloc over kmalloc/kzalloc with a
+  sizeof multiply.
+  Ref: `Documentation/core-api/memory-allocation.rst`
+
+:ARCH_DEFINES:
+  Architecture specific defines should be avoided wherever
+  possible.
+
+:ARCH_INCLUDE_LINUX:
+  Whenever asm/file.h is included and linux/file.h exists, a
+  conversion can be made when linux/file.h includes asm/file.h.
+  However this is not always the case (See signal.h).
+  This message type is emitted only for includes from arch/.
+
+:ARRAY_SIZE:
+  The ARRAY_SIZE(foo) macro should be preferred over
+  sizeof(foo)/sizeof(foo[0]) for finding number of elements in an
+  array.
+
+  The macro is defined in include/linux/kernel.h::
+
+    #define ARRAY_SIZE(x) (sizeof(x) / sizeof((x)[0]))
+
+:ASSIGNMENT_CONTINUATIONS:
+  Assignment operators should not be written at the start of a
+  line but should follow the operand at the previous line.
+
+:ASSIGN_IN_IF:
+  Do not use assignments in if condition.
+  Example::
+
+    if ((foo = bar(...)) < BAZ) {
+
+  should be written as::
+
+    foo = bar(...);
+    if (foo < BAZ) {
+
+:AVOID_BUG:
+  BUG() or BUG_ON() should be avoided totally.
+  Use WARN() and WARN_ON() instead, and handle the "impossible"
+  error condition as gracefully as possible.
+  Ref: `Documentation/process/deprecated.rst`
+
+:AVOID_EXTERNS:
+  Function prototypes don't need to be declared extern in .h
+  files.  It's assumed by the compiler and is unnecessary.
+
+:AVOID_L_PREFIX:
+  Local symbol names that are prefixed with `.L` should be avoided,
+  as this has special meaning for the assembler; a symbol entry will
+  not be emitted into the symbol table.  This can prevent `objtool`
+  from generating correct unwind info.
+
+  Symbols with STB_LOCAL binding may still be used, and `.L` prefixed
+  local symbol names are still generally usable within a function,
+  but `.L` prefixed local symbol names should not be used to denote
+  the beginning or end of code regions via
+  `SYM_CODE_START_LOCAL`/`SYM_CODE_END`
+
+:BAD_SIGN_OFF:
+  The signed-off-by line does not fall in line with the standards
+  specified by the community.
+  Ref: `Documentation/process/submitting-patches.rst`
+
+:BAD_STABLE_ADDRESS_STYLE:
+  The email format for stable is incorrect.
+  Some valid options for stable address are::
+
+    1. stable@vger.kernel.org
+    2. stable@kernel.org
+
+  For adding version info, the following comment style should be used::
+
+    stable@vger.kernel.org # version info
+
+:BIT_MACRO:
+  Defines like: 1 << <digit> could be BIT(digit).
+  The BIT() macro is defined in include/linux/bitops.h::
+
+    #define BIT(nr)         (1UL << (nr))
+
+:BLOCK_COMMENT_STYLE:
+  The comment style is incorrect.  The preferred style for multi-
+  line comments is::
+
+    /*
+     * This is the preferred style
+     * for multi line comments.
+     */
+
+  The networking comment style is a bit different, with the first line
+  not empty like the former::
+
+    /* This is the preferred comment style
+     * for files in net/ and drivers/net/
+     */
+
+  Ref: `Documentation/process/coding-style.rst`
+
+:BOOL_COMPARISON:
+  Comparisons of A to true and false are better written
+  as A and !A.
+  Ref: `https://lore.kernel.org/lkml/1365563834.27174.12.camel@joe-AO722/`
+
+:BRACES:
+  The placement of braces is stylistically incorrect.
+  The preferred way is to put the opening brace last on the line,
+  and put the closing brace first::
+
+    if (x is true) {
+      we do y
+    }
+
+  This applies for all non-functional blocks.
+  However, there is one special case, namely functions: they have the
+  opening brace at the beginning of the next line, thus::
+
+    int function(int x)
+    {
+      body of function
+    }
+
+  Ref: `Documentation/process/coding-style.rst Section 3`
+
+:BRACKET_SPACE:
+  Whitespace before opening bracket '[' is prohibited.
+  There are some exceptions:
+
+  1. With a type on the left::
+
+     ;int [] a;
+
+  2. At the beginning of a line for slice initialisers::
+
+     [0...10] = 5,
+
+  3. Inside a curly brace::
+
+     = { [0...10] = 5 }
+
+:C99_COMMENTS:
+  C99 style single line comments (//) should not be used.
+  Prefer the block comment style instead.
+  Ref: `Documentation/process/coding-style.rst Section 8`
+
+:CAMELCASE:
+  Avoid CamelCase Identifiers.  snake_case can be an
+  alternative.
+
+:CODE_INDENT:
+  Code indent should use tabs instead of spaces.
+  Outside of comments, documentation and Kconfig,
+  spaces are never used for indentation.
+  Ref: `Documentation/process/coding-style.rst Section 1`
+
+:COMMIT_COMMENT_SYMBOL:
+  Commit log lines starting with a '#' are ignored by git as
+  comments.  To solve this problem addition of a single space
+  infront of the log line is enough.
+
+:COMMIT_MESSAGE:
+  The patch is missing a commit description.  A brief
+  description of the changes made by the patch should be added.
+  Ref: `Documentation/process/submitting-patches.rst`
+
+:COMPARISON_TO_NULL:
+  Comparisons to NULL in the form (foo == NULL) or (foo != NULL)
+  are better written as (!foo) and (foo).
+
+:COMPLEX_MACRO:
+  Macros with complex values should be enclosed within parentheses.
+  Consider::
+
+    #define SOME_MACRO IS_ENABLED(CONFIG_XX) ? 1 : 0
+
+  This can be better written as::
+
+    #define SOME_MACRO (IS_ENABLED(CONFIG_XX) ? 1 : 0)
+
+:CONCATENATED_STRING:
+  Concatenated elements should have a space in between.
+  Example::
+
+    printk(KERN_INFO"bar");
+
+  should be::
+
+    printk(KERN_INFO "bar");
+
+:CONFIG_DESCRIPTION:
+  Kconfig symbols should have a help text which fully describes
+  it.
+
+:CONSIDER_KSTRTO:
+  The simple_strtol(), simple_strtoll(), simple_strtoul(), and
+  simple_strtoull() functions explicitly ignore overflows, which
+  may lead to unexpected results in callers.  The respective kstrtol(),
+  kstrtoll(), kstrtoul(), and kstrtoull() functions tend to be the
+  correct replacements.
+  Ref: `Documentation/process/deprecated.rst`
+
+:CONSTANT_COMPARISON:
+  Comparisons with a constant or upper case identifier on the left
+  side of the test should be avoided.
+
+:LINE_SPACING:
+  Vertical space is wasted given the limited number of lines an
+  editor window can display when multiple blank lines are used.
+  Ref: `Documentation/process/coding-style.rst Section 3.1`
+
+:MISSING_SIGN_OFF:
+  The patch is missing a Signed-off-by line.  A signed-off-by
+  line should be added according to Developer's certificate of
+  Origin.
+  ref: `Documentation/process/submitting-patches.rst`
+
+:NO_AUTHOR_SIGN_OFF:
+  The author of the patch has not signed off the patch.  It is
+  required that a simple sign off line should be present at the
+  end of explanation of the patch to denote that the author has
+  written it or otherwise has the rights to pass it on as an open
+  source patch.
+
+:TRAILING_WHITESPACE:
+  Trailing whitespace should always be removed.
+  Some editors highlight the trailing whitespace and cause visual
+  distractions when editing files.
-- 
2.30.0

_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [PATCH RFC v3 3/3] docs: add documentation for checkpatch
  2021-02-13 13:15 ` [Linux-kernel-mentees] " Dwaipayan Ray
@ 2021-02-13 13:15   ` Dwaipayan Ray
  -1 siblings, 0 replies; 26+ messages in thread
From: Dwaipayan Ray @ 2021-02-13 13:15 UTC (permalink / raw)
  To: joe
  Cc: linux-doc, lukas.bulwahn, linux-kernel-mentees, linux-kernel,
	Dwaipayan Ray

Link the checkpatch documentation to the dev-tools index
for sphinx.

Signed-off-by: Dwaipayan Ray <dwaipayanray1@gmail.com>
---
 Documentation/dev-tools/index.rst | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/dev-tools/index.rst b/Documentation/dev-tools/index.rst
index 1b1cf4f5c9d9..43d28998118b 100644
--- a/Documentation/dev-tools/index.rst
+++ b/Documentation/dev-tools/index.rst
@@ -14,6 +14,7 @@ whole; patches welcome!
 .. toctree::
    :maxdepth: 2
 
+   checkpatch
    coccinelle
    sparse
    kcov
-- 
2.30.0


^ permalink raw reply related	[flat|nested] 26+ messages in thread

* [Linux-kernel-mentees] [PATCH RFC v3 3/3] docs: add documentation for checkpatch
@ 2021-02-13 13:15   ` Dwaipayan Ray
  0 siblings, 0 replies; 26+ messages in thread
From: Dwaipayan Ray @ 2021-02-13 13:15 UTC (permalink / raw)
  To: joe; +Cc: Dwaipayan Ray, linux-kernel-mentees, linux-kernel, linux-doc

Link the checkpatch documentation to the dev-tools index
for sphinx.

Signed-off-by: Dwaipayan Ray <dwaipayanray1@gmail.com>
---
 Documentation/dev-tools/index.rst | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/dev-tools/index.rst b/Documentation/dev-tools/index.rst
index 1b1cf4f5c9d9..43d28998118b 100644
--- a/Documentation/dev-tools/index.rst
+++ b/Documentation/dev-tools/index.rst
@@ -14,6 +14,7 @@ whole; patches welcome!
 .. toctree::
    :maxdepth: 2
 
+   checkpatch
    coccinelle
    sparse
    kcov
-- 
2.30.0

_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply related	[flat|nested] 26+ messages in thread

* Re: [PATCH RFC v3 2/3] docs: add documentation for checkpatch
  2021-02-13 13:15   ` [Linux-kernel-mentees] " Dwaipayan Ray
@ 2021-02-14 12:15     ` Matthew Wilcox
  -1 siblings, 0 replies; 26+ messages in thread
From: Matthew Wilcox @ 2021-02-14 12:15 UTC (permalink / raw)
  To: Dwaipayan Ray
  Cc: joe, linux-doc, lukas.bulwahn, linux-kernel-mentees, linux-kernel

On Sat, Feb 13, 2021 at 06:45:12PM +0530, Dwaipayan Ray wrote:
> +Checkpatch (scripts/checkpatch.pl) is a perl script which checks for trivial style

It's quite amusing that this patch contains lines > 80 columns.

Also patches 2 & 3 can be combined into a single patch.


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linux-kernel-mentees] [PATCH RFC v3 2/3] docs: add documentation for checkpatch
@ 2021-02-14 12:15     ` Matthew Wilcox
  0 siblings, 0 replies; 26+ messages in thread
From: Matthew Wilcox @ 2021-02-14 12:15 UTC (permalink / raw)
  To: Dwaipayan Ray; +Cc: joe, linux-kernel-mentees, linux-kernel, linux-doc

On Sat, Feb 13, 2021 at 06:45:12PM +0530, Dwaipayan Ray wrote:
> +Checkpatch (scripts/checkpatch.pl) is a perl script which checks for trivial style

It's quite amusing that this patch contains lines > 80 columns.

Also patches 2 & 3 can be combined into a single patch.

_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH RFC v3 2/3] docs: add documentation for checkpatch
  2021-02-13 13:15   ` [Linux-kernel-mentees] " Dwaipayan Ray
@ 2021-02-14 16:57     ` Joe Perches
  -1 siblings, 0 replies; 26+ messages in thread
From: Joe Perches @ 2021-02-14 16:57 UTC (permalink / raw)
  To: Dwaipayan Ray
  Cc: linux-doc, lukas.bulwahn, linux-kernel-mentees, linux-kernel

On Sat, 2021-02-13 at 18:45 +0530, Dwaipayan Ray wrote:
> Add documentation for kernel script checkpatch.pl.
> This documentation is also parsed by checkpatch to
> enable a verbose mode.
> 
> The message types in checkpatch are documented with rst
> field lists. A total of 33 checkpatch type descriptions
> are added.

Alphabetic ordering isn't that great for these entries.
Please group them by use:

whitespace/code layout style:
SPACING, TRAILING_WHITESPACE, LINE_SPACING

commit message defects:
BAD_SIGN_OFF, BAD_STABLE_ADDRESS_STYLE, COMMIT_COMMENT_SYMBOL, COMMIT_MESSAGE

Allocation style:
group: ALLOC_ARRAY_ARGS, ALLOC_SIZEOF_STRUCT, ALLOC_WITH_MULTIPLY

> diff --git a/Documentation/dev-tools/checkpatch.rst b/Documentation/dev-tools/checkpatch.rst
[]
> +4 Type Descriptions
> +-------------------
> +
> +This section contains a description of all the message types in checkpatch.
> +
> +.. Types in this section are also parsed by checkpatch.
> +.. Please keep the types sorted alphabetically.
> +
> +:ALLOC_ARRAY_ARGS:
> +  The first argument for kcalloc or kmalloc_array should be the
> +  number of elements.  sizeof() as the first argument is generally
> +  wrong.

If you look at the generated .html file, the output format  is poor.

It would probably be better to use
**<TYPE>**
for each of these blocks instead of
:<TYPE>:

and update the script appropriately.


^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linux-kernel-mentees] [PATCH RFC v3 2/3] docs: add documentation for checkpatch
@ 2021-02-14 16:57     ` Joe Perches
  0 siblings, 0 replies; 26+ messages in thread
From: Joe Perches @ 2021-02-14 16:57 UTC (permalink / raw)
  To: Dwaipayan Ray; +Cc: linux-kernel-mentees, linux-kernel, linux-doc

On Sat, 2021-02-13 at 18:45 +0530, Dwaipayan Ray wrote:
> Add documentation for kernel script checkpatch.pl.
> This documentation is also parsed by checkpatch to
> enable a verbose mode.
> 
> The message types in checkpatch are documented with rst
> field lists. A total of 33 checkpatch type descriptions
> are added.

Alphabetic ordering isn't that great for these entries.
Please group them by use:

whitespace/code layout style:
SPACING, TRAILING_WHITESPACE, LINE_SPACING

commit message defects:
BAD_SIGN_OFF, BAD_STABLE_ADDRESS_STYLE, COMMIT_COMMENT_SYMBOL, COMMIT_MESSAGE

Allocation style:
group: ALLOC_ARRAY_ARGS, ALLOC_SIZEOF_STRUCT, ALLOC_WITH_MULTIPLY

> diff --git a/Documentation/dev-tools/checkpatch.rst b/Documentation/dev-tools/checkpatch.rst
[]
> +4 Type Descriptions
> +-------------------
> +
> +This section contains a description of all the message types in checkpatch.
> +
> +.. Types in this section are also parsed by checkpatch.
> +.. Please keep the types sorted alphabetically.
> +
> +:ALLOC_ARRAY_ARGS:
> +  The first argument for kcalloc or kmalloc_array should be the
> +  number of elements.  sizeof() as the first argument is generally
> +  wrong.

If you look at the generated .html file, the output format  is poor.

It would probably be better to use
**<TYPE>**
for each of these blocks instead of
:<TYPE>:

and update the script appropriately.

_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH RFC v3 2/3] docs: add documentation for checkpatch
  2021-02-14 16:57     ` [Linux-kernel-mentees] " Joe Perches
@ 2021-02-15 15:50       ` Dwaipayan Ray
  -1 siblings, 0 replies; 26+ messages in thread
From: Dwaipayan Ray @ 2021-02-15 15:50 UTC (permalink / raw)
  To: Joe Perches; +Cc: Lukas Bulwahn, linux-kernel-mentees, linux-kernel

On Sun, Feb 14, 2021 at 10:27 PM Joe Perches <joe@perches.com> wrote:
>
> On Sat, 2021-02-13 at 18:45 +0530, Dwaipayan Ray wrote:
> > Add documentation for kernel script checkpatch.pl.
> > This documentation is also parsed by checkpatch to
> > enable a verbose mode.
> >
> > The message types in checkpatch are documented with rst
> > field lists. A total of 33 checkpatch type descriptions
> > are added.
>
> Alphabetic ordering isn't that great for these entries.
> Please group them by use:
>
> whitespace/code layout style:
> SPACING, TRAILING_WHITESPACE, LINE_SPACING
>
> commit message defects:
> BAD_SIGN_OFF, BAD_STABLE_ADDRESS_STYLE, COMMIT_COMMENT_SYMBOL, COMMIT_MESSAGE
>
> Allocation style:
> group: ALLOC_ARRAY_ARGS, ALLOC_SIZEOF_STRUCT, ALLOC_WITH_MULTIPLY
>
> > diff --git a/Documentation/dev-tools/checkpatch.rst b/Documentation/dev-tools/checkpatch.rst
> []
> > +4 Type Descriptions
> > +-------------------
> > +
> > +This section contains a description of all the message types in checkpatch.
> > +
> > +.. Types in this section are also parsed by checkpatch.
> > +.. Please keep the types sorted alphabetically.
> > +
> > +:ALLOC_ARRAY_ARGS:
> > +  The first argument for kcalloc or kmalloc_array should be the
> > +  number of elements.  sizeof() as the first argument is generally
> > +  wrong.
>
> If you look at the generated .html file, the output format  is poor.
>
> It would probably be better to use
> **<TYPE>**
> for each of these blocks instead of
> :<TYPE>:
>
> and update the script appropriately.

Thanks, I will do these.

Also someone pointed out in the list that some lines in the patch contained > 80
columns. Checkpatch doesn't generate any warning for that. Is it something that
could be added to checkpatch or was it decided against at some point?

Thanks,
Dwaipayan.

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linux-kernel-mentees] [PATCH RFC v3 2/3] docs: add documentation for checkpatch
@ 2021-02-15 15:50       ` Dwaipayan Ray
  0 siblings, 0 replies; 26+ messages in thread
From: Dwaipayan Ray @ 2021-02-15 15:50 UTC (permalink / raw)
  To: Joe Perches; +Cc: linux-kernel-mentees, linux-kernel

On Sun, Feb 14, 2021 at 10:27 PM Joe Perches <joe@perches.com> wrote:
>
> On Sat, 2021-02-13 at 18:45 +0530, Dwaipayan Ray wrote:
> > Add documentation for kernel script checkpatch.pl.
> > This documentation is also parsed by checkpatch to
> > enable a verbose mode.
> >
> > The message types in checkpatch are documented with rst
> > field lists. A total of 33 checkpatch type descriptions
> > are added.
>
> Alphabetic ordering isn't that great for these entries.
> Please group them by use:
>
> whitespace/code layout style:
> SPACING, TRAILING_WHITESPACE, LINE_SPACING
>
> commit message defects:
> BAD_SIGN_OFF, BAD_STABLE_ADDRESS_STYLE, COMMIT_COMMENT_SYMBOL, COMMIT_MESSAGE
>
> Allocation style:
> group: ALLOC_ARRAY_ARGS, ALLOC_SIZEOF_STRUCT, ALLOC_WITH_MULTIPLY
>
> > diff --git a/Documentation/dev-tools/checkpatch.rst b/Documentation/dev-tools/checkpatch.rst
> []
> > +4 Type Descriptions
> > +-------------------
> > +
> > +This section contains a description of all the message types in checkpatch.
> > +
> > +.. Types in this section are also parsed by checkpatch.
> > +.. Please keep the types sorted alphabetically.
> > +
> > +:ALLOC_ARRAY_ARGS:
> > +  The first argument for kcalloc or kmalloc_array should be the
> > +  number of elements.  sizeof() as the first argument is generally
> > +  wrong.
>
> If you look at the generated .html file, the output format  is poor.
>
> It would probably be better to use
> **<TYPE>**
> for each of these blocks instead of
> :<TYPE>:
>
> and update the script appropriately.

Thanks, I will do these.

Also someone pointed out in the list that some lines in the patch contained > 80
columns. Checkpatch doesn't generate any warning for that. Is it something that
could be added to checkpatch or was it decided against at some point?

Thanks,
Dwaipayan.
_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH RFC v3 2/3] docs: add documentation for checkpatch
  2021-02-15 15:50       ` [Linux-kernel-mentees] " Dwaipayan Ray
@ 2021-02-15 15:55         ` Joe Perches
  -1 siblings, 0 replies; 26+ messages in thread
From: Joe Perches @ 2021-02-15 15:55 UTC (permalink / raw)
  To: Dwaipayan Ray; +Cc: Lukas Bulwahn, linux-kernel-mentees, linux-kernel

On Mon, 2021-02-15 at 21:20 +0530, Dwaipayan Ray wrote:

> Also someone pointed out in the list that some lines in the patch contained > 80
> columns. Checkpatch doesn't generate any warning for that. Is it something that
> could be added to checkpatch or was it decided against at some point?

decided against.
checkpatch isn't useful for .rst files.



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linux-kernel-mentees] [PATCH RFC v3 2/3] docs: add documentation for checkpatch
@ 2021-02-15 15:55         ` Joe Perches
  0 siblings, 0 replies; 26+ messages in thread
From: Joe Perches @ 2021-02-15 15:55 UTC (permalink / raw)
  To: Dwaipayan Ray; +Cc: linux-kernel-mentees, linux-kernel

On Mon, 2021-02-15 at 21:20 +0530, Dwaipayan Ray wrote:

> Also someone pointed out in the list that some lines in the patch contained > 80
> columns. Checkpatch doesn't generate any warning for that. Is it something that
> could be added to checkpatch or was it decided against at some point?

decided against.
checkpatch isn't useful for .rst files.


_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH RFC v3 2/3] docs: add documentation for checkpatch
  2021-02-14 12:15     ` [Linux-kernel-mentees] " Matthew Wilcox
@ 2021-02-15 18:11       ` Joe Perches
  -1 siblings, 0 replies; 26+ messages in thread
From: Joe Perches @ 2021-02-15 18:11 UTC (permalink / raw)
  To: Matthew Wilcox, Dwaipayan Ray
  Cc: linux-doc, lukas.bulwahn, linux-kernel-mentees, linux-kernel

On Sun, 2021-02-14 at 12:15 +0000, Matthew Wilcox wrote:
> On Sat, Feb 13, 2021 at 06:45:12PM +0530, Dwaipayan Ray wrote:
> > +Checkpatch (scripts/checkpatch.pl) is a perl script which checks for trivial style
> 
> It's quite amusing that this patch contains lines > 80 columns.

Then you could amuse yourself further by looking at the existing
line lengths of .rst files.

$ git ls-files -- '*.rst' | \
  xargs cat | \
  awk '{print length($0);}' | \
  sort -n | \
  uniq -c | \
  tail -20
      2 226
      1 230
      1 233
      1 234
     48 246
      1 253
      2 257
      1 263
      1 270
      1 275
      1 276
      1 293
      1 294
      1 308
      2 324
      1 359
      1 360
      5 369
      1 370
      2 409

Other than testing whether or not an SPDX license line exists,
checkpatch doesn't inspect .rst files.

There are better tools for that.



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linux-kernel-mentees] [PATCH RFC v3 2/3] docs: add documentation for checkpatch
@ 2021-02-15 18:11       ` Joe Perches
  0 siblings, 0 replies; 26+ messages in thread
From: Joe Perches @ 2021-02-15 18:11 UTC (permalink / raw)
  To: Matthew Wilcox, Dwaipayan Ray
  Cc: linux-kernel-mentees, linux-kernel, linux-doc

On Sun, 2021-02-14 at 12:15 +0000, Matthew Wilcox wrote:
> On Sat, Feb 13, 2021 at 06:45:12PM +0530, Dwaipayan Ray wrote:
> > +Checkpatch (scripts/checkpatch.pl) is a perl script which checks for trivial style
> 
> It's quite amusing that this patch contains lines > 80 columns.

Then you could amuse yourself further by looking at the existing
line lengths of .rst files.

$ git ls-files -- '*.rst' | \
  xargs cat | \
  awk '{print length($0);}' | \
  sort -n | \
  uniq -c | \
  tail -20
      2 226
      1 230
      1 233
      1 234
     48 246
      1 253
      2 257
      1 263
      1 270
      1 275
      1 276
      1 293
      1 294
      1 308
      2 324
      1 359
      1 360
      5 369
      1 370
      2 409

Other than testing whether or not an SPDX license line exists,
checkpatch doesn't inspect .rst files.

There are better tools for that.


_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH RFC v3 2/3] docs: add documentation for checkpatch
  2021-02-15 18:11       ` [Linux-kernel-mentees] " Joe Perches
@ 2021-02-15 19:12         ` Matthew Wilcox
  -1 siblings, 0 replies; 26+ messages in thread
From: Matthew Wilcox @ 2021-02-15 19:12 UTC (permalink / raw)
  To: Joe Perches
  Cc: Dwaipayan Ray, linux-doc, lukas.bulwahn, linux-kernel-mentees,
	linux-kernel

On Mon, Feb 15, 2021 at 10:11:03AM -0800, Joe Perches wrote:
> On Sun, 2021-02-14 at 12:15 +0000, Matthew Wilcox wrote:
> > On Sat, Feb 13, 2021 at 06:45:12PM +0530, Dwaipayan Ray wrote:
> > > +Checkpatch (scripts/checkpatch.pl) is a perl script which checks for trivial style
> > 
> > It's quite amusing that this patch contains lines > 80 columns.
> 
> Then you could amuse yourself further by looking at the existing
> line lengths of .rst files.

There are good reasons for rst lines to be longer than 80 columns,
but there weren't any in this case.

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linux-kernel-mentees] [PATCH RFC v3 2/3] docs: add documentation for checkpatch
@ 2021-02-15 19:12         ` Matthew Wilcox
  0 siblings, 0 replies; 26+ messages in thread
From: Matthew Wilcox @ 2021-02-15 19:12 UTC (permalink / raw)
  To: Joe Perches; +Cc: Dwaipayan Ray, linux-kernel-mentees, linux-kernel, linux-doc

On Mon, Feb 15, 2021 at 10:11:03AM -0800, Joe Perches wrote:
> On Sun, 2021-02-14 at 12:15 +0000, Matthew Wilcox wrote:
> > On Sat, Feb 13, 2021 at 06:45:12PM +0530, Dwaipayan Ray wrote:
> > > +Checkpatch (scripts/checkpatch.pl) is a perl script which checks for trivial style
> > 
> > It's quite amusing that this patch contains lines > 80 columns.
> 
> Then you could amuse yourself further by looking at the existing
> line lengths of .rst files.

There are good reasons for rst lines to be longer than 80 columns,
but there weren't any in this case.
_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH RFC v3 2/3] docs: add documentation for checkpatch
  2021-02-14 16:57     ` [Linux-kernel-mentees] " Joe Perches
@ 2021-02-16 14:18       ` Dwaipayan Ray
  -1 siblings, 0 replies; 26+ messages in thread
From: Dwaipayan Ray @ 2021-02-16 14:18 UTC (permalink / raw)
  To: Joe Perches, Lukas Bulwahn; +Cc: linux-kernel-mentees, linux-kernel

On Sun, Feb 14, 2021 at 10:27 PM Joe Perches <joe@perches.com> wrote:
>
> On Sat, 2021-02-13 at 18:45 +0530, Dwaipayan Ray wrote:
> > Add documentation for kernel script checkpatch.pl.
> > This documentation is also parsed by checkpatch to
> > enable a verbose mode.
> >
> > The message types in checkpatch are documented with rst
> > field lists. A total of 33 checkpatch type descriptions
> > are added.
>
> Alphabetic ordering isn't that great for these entries.
> Please group them by use:
>
> whitespace/code layout style:
> SPACING, TRAILING_WHITESPACE, LINE_SPACING
>
> commit message defects:
> BAD_SIGN_OFF, BAD_STABLE_ADDRESS_STYLE, COMMIT_COMMENT_SYMBOL, COMMIT_MESSAGE
>
> Allocation style:
> group: ALLOC_ARRAY_ARGS, ALLOC_SIZEOF_STRUCT, ALLOC_WITH_MULTIPLY
>
> > diff --git a/Documentation/dev-tools/checkpatch.rst b/Documentation/dev-tools/checkpatch.rst
> []
> > +4 Type Descriptions
> > +-------------------
> > +
> > +This section contains a description of all the message types in checkpatch.
> > +
> > +.. Types in this section are also parsed by checkpatch.
> > +.. Please keep the types sorted alphabetically.
> > +
> > +:ALLOC_ARRAY_ARGS:
> > +  The first argument for kcalloc or kmalloc_array should be the
> > +  number of elements.  sizeof() as the first argument is generally
> > +  wrong.
>
> If you look at the generated .html file, the output format  is poor.
>
> It would probably be better to use
> **<TYPE>**
> for each of these blocks instead of
> :<TYPE>:
>
> and update the script appropriately.
>

Hi,
Could I get some comment on this grouping for types:

Allocation Style: ALLOC_ARRAY_ARGS, ALLOC_SIZEOF_STRUCT, ALLOC_WITH_MULTIPLY

API Usage: ARCH_DEFINES, ARCH_INCLUDE_LINUX, ARRAY_SIZE, AVOID_BUG,
                    AVOID_EXTERNS, AVOID_L_PREFIX, BIT_MACRO, CONSIDER_KSTRTO

Comment Style: BLOCK_COMMENT_STYLE, C99_COMMENTS

Commit Message: BAD_SIGN_OFF, BAD_STABLE_ADDRESS_STYLE, COMMIT_COMMENT_SYMBOL,
                              COMMIT_MESSAGE, MISSING_SIGN_OFF,
NO_AUTHOR_SIGN_OFF

Comparison Style: ASSIGN_IN_IF, BOOL_COMPARISON, COMPARISON_TO_NULL,
                               CONSTANT_COMPARISON

Spacing & Brackets: ASSIGNMENT_CONTINUATIONS, BRACES, BRACKET_SPACE,
                                  CODE_INDENT, CONCATENATED_STRING,
LINE_SPACING,
                                  TRAILING_WHITESPACE

Others: CAMELCASE, CONFIG_DESCRIPTION

This is what I have done till now. Any suggestions would be nice and if it looks
okay I would like to send the v4 in.

Thanks & Regards,
Dwaipayan.

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linux-kernel-mentees] [PATCH RFC v3 2/3] docs: add documentation for checkpatch
@ 2021-02-16 14:18       ` Dwaipayan Ray
  0 siblings, 0 replies; 26+ messages in thread
From: Dwaipayan Ray @ 2021-02-16 14:18 UTC (permalink / raw)
  To: Joe Perches, Lukas Bulwahn; +Cc: linux-kernel-mentees, linux-kernel

On Sun, Feb 14, 2021 at 10:27 PM Joe Perches <joe@perches.com> wrote:
>
> On Sat, 2021-02-13 at 18:45 +0530, Dwaipayan Ray wrote:
> > Add documentation for kernel script checkpatch.pl.
> > This documentation is also parsed by checkpatch to
> > enable a verbose mode.
> >
> > The message types in checkpatch are documented with rst
> > field lists. A total of 33 checkpatch type descriptions
> > are added.
>
> Alphabetic ordering isn't that great for these entries.
> Please group them by use:
>
> whitespace/code layout style:
> SPACING, TRAILING_WHITESPACE, LINE_SPACING
>
> commit message defects:
> BAD_SIGN_OFF, BAD_STABLE_ADDRESS_STYLE, COMMIT_COMMENT_SYMBOL, COMMIT_MESSAGE
>
> Allocation style:
> group: ALLOC_ARRAY_ARGS, ALLOC_SIZEOF_STRUCT, ALLOC_WITH_MULTIPLY
>
> > diff --git a/Documentation/dev-tools/checkpatch.rst b/Documentation/dev-tools/checkpatch.rst
> []
> > +4 Type Descriptions
> > +-------------------
> > +
> > +This section contains a description of all the message types in checkpatch.
> > +
> > +.. Types in this section are also parsed by checkpatch.
> > +.. Please keep the types sorted alphabetically.
> > +
> > +:ALLOC_ARRAY_ARGS:
> > +  The first argument for kcalloc or kmalloc_array should be the
> > +  number of elements.  sizeof() as the first argument is generally
> > +  wrong.
>
> If you look at the generated .html file, the output format  is poor.
>
> It would probably be better to use
> **<TYPE>**
> for each of these blocks instead of
> :<TYPE>:
>
> and update the script appropriately.
>

Hi,
Could I get some comment on this grouping for types:

Allocation Style: ALLOC_ARRAY_ARGS, ALLOC_SIZEOF_STRUCT, ALLOC_WITH_MULTIPLY

API Usage: ARCH_DEFINES, ARCH_INCLUDE_LINUX, ARRAY_SIZE, AVOID_BUG,
                    AVOID_EXTERNS, AVOID_L_PREFIX, BIT_MACRO, CONSIDER_KSTRTO

Comment Style: BLOCK_COMMENT_STYLE, C99_COMMENTS

Commit Message: BAD_SIGN_OFF, BAD_STABLE_ADDRESS_STYLE, COMMIT_COMMENT_SYMBOL,
                              COMMIT_MESSAGE, MISSING_SIGN_OFF,
NO_AUTHOR_SIGN_OFF

Comparison Style: ASSIGN_IN_IF, BOOL_COMPARISON, COMPARISON_TO_NULL,
                               CONSTANT_COMPARISON

Spacing & Brackets: ASSIGNMENT_CONTINUATIONS, BRACES, BRACKET_SPACE,
                                  CODE_INDENT, CONCATENATED_STRING,
LINE_SPACING,
                                  TRAILING_WHITESPACE

Others: CAMELCASE, CONFIG_DESCRIPTION

This is what I have done till now. Any suggestions would be nice and if it looks
okay I would like to send the v4 in.

Thanks & Regards,
Dwaipayan.
_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH RFC v3 2/3] docs: add documentation for checkpatch
  2021-02-16 14:18       ` [Linux-kernel-mentees] " Dwaipayan Ray
@ 2021-02-17 10:37         ` Joe Perches
  -1 siblings, 0 replies; 26+ messages in thread
From: Joe Perches @ 2021-02-17 10:37 UTC (permalink / raw)
  To: Dwaipayan Ray, Lukas Bulwahn; +Cc: linux-kernel-mentees, linux-kernel

On Tue, 2021-02-16 at 19:48 +0530, Dwaipayan Ray wrote:
> On Sun, Feb 14, 2021 at 10:27 PM Joe Perches <joe@perches.com> wrote:
> > On Sat, 2021-02-13 at 18:45 +0530, Dwaipayan Ray wrote:
> > > Add documentation for kernel script checkpatch.pl.
> > > This documentation is also parsed by checkpatch to
> > > enable a verbose mode.
> > > 
> > > The message types in checkpatch are documented with rst
> > > field lists. A total of 33 checkpatch type descriptions
> > > are added.
> > 
> > Alphabetic ordering isn't that great for these entries.
> > Please group them by use:
> > 
> > whitespace/code layout style:
> > SPACING, TRAILING_WHITESPACE, LINE_SPACING
[]
> Could I get some comment on this grouping for types:
> 
> Allocation Style: ALLOC_ARRAY_ARGS, ALLOC_SIZEOF_STRUCT, ALLOC_WITH_MULTIPLY
> 
> API Usage: ARCH_DEFINES, ARCH_INCLUDE_LINUX, ARRAY_SIZE, AVOID_BUG,
>                     AVOID_EXTERNS, AVOID_L_PREFIX, BIT_MACRO, CONSIDER_KSTRTO
> 
> Comment Style: BLOCK_COMMENT_STYLE, C99_COMMENTS
> 
> Commit Message: BAD_SIGN_OFF, BAD_STABLE_ADDRESS_STYLE, COMMIT_COMMENT_SYMBOL,
>                               COMMIT_MESSAGE, MISSING_SIGN_OFF,
> NO_AUTHOR_SIGN_OFF
> 
> Comparison Style: ASSIGN_IN_IF, BOOL_COMPARISON, COMPARISON_TO_NULL,
>                                CONSTANT_COMPARISON
> 
> Spacing & Brackets: ASSIGNMENT_CONTINUATIONS, BRACES, BRACKET_SPACE,
>                                   CODE_INDENT, CONCATENATED_STRING,
> LINE_SPACING,
>                                   TRAILING_WHITESPACE
> 
> Others: CAMELCASE, CONFIG_DESCRIPTION
> 
> This is what I have done till now. Any suggestions would be nice and if it looks
> okay I would like to send the v4 in.

Looks OK.

Please make sure you at least include SPACING in the spacing & brackets
descriptions.

It also seems like ref links to Documentation/process/coding-style.rst
<section> (3.1 in the SPACING case) should be used more frequently.

It'd be 'nice' to somehow use sortable tables with some grouping
attribute for these groups, but I have no idea if that's feasible with
.rst restrutured text files.

Perhaps simplify the checkpatch code a bit for the --terse and --verbose
output.

Maybe something like:
---
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 869d80397f9f..07566cb3b3f8 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl

@@ -292,15 +292,16 @@ GetOptions(
 
 help(0) if ($help);
 
+die "$P: --git cannot be used with --file or --fix\n" if ($git && ($file || $fix));
+die "$P: --verbose canot be used with --terse\n" if ($verbose && $terse);
+
 list_types(0) if ($list_types);



^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linux-kernel-mentees] [PATCH RFC v3 2/3] docs: add documentation for checkpatch
@ 2021-02-17 10:37         ` Joe Perches
  0 siblings, 0 replies; 26+ messages in thread
From: Joe Perches @ 2021-02-17 10:37 UTC (permalink / raw)
  To: Dwaipayan Ray, Lukas Bulwahn; +Cc: linux-kernel-mentees, linux-kernel

On Tue, 2021-02-16 at 19:48 +0530, Dwaipayan Ray wrote:
> On Sun, Feb 14, 2021 at 10:27 PM Joe Perches <joe@perches.com> wrote:
> > On Sat, 2021-02-13 at 18:45 +0530, Dwaipayan Ray wrote:
> > > Add documentation for kernel script checkpatch.pl.
> > > This documentation is also parsed by checkpatch to
> > > enable a verbose mode.
> > > 
> > > The message types in checkpatch are documented with rst
> > > field lists. A total of 33 checkpatch type descriptions
> > > are added.
> > 
> > Alphabetic ordering isn't that great for these entries.
> > Please group them by use:
> > 
> > whitespace/code layout style:
> > SPACING, TRAILING_WHITESPACE, LINE_SPACING
[]
> Could I get some comment on this grouping for types:
> 
> Allocation Style: ALLOC_ARRAY_ARGS, ALLOC_SIZEOF_STRUCT, ALLOC_WITH_MULTIPLY
> 
> API Usage: ARCH_DEFINES, ARCH_INCLUDE_LINUX, ARRAY_SIZE, AVOID_BUG,
>                     AVOID_EXTERNS, AVOID_L_PREFIX, BIT_MACRO, CONSIDER_KSTRTO
> 
> Comment Style: BLOCK_COMMENT_STYLE, C99_COMMENTS
> 
> Commit Message: BAD_SIGN_OFF, BAD_STABLE_ADDRESS_STYLE, COMMIT_COMMENT_SYMBOL,
>                               COMMIT_MESSAGE, MISSING_SIGN_OFF,
> NO_AUTHOR_SIGN_OFF
> 
> Comparison Style: ASSIGN_IN_IF, BOOL_COMPARISON, COMPARISON_TO_NULL,
>                                CONSTANT_COMPARISON
> 
> Spacing & Brackets: ASSIGNMENT_CONTINUATIONS, BRACES, BRACKET_SPACE,
>                                   CODE_INDENT, CONCATENATED_STRING,
> LINE_SPACING,
>                                   TRAILING_WHITESPACE
> 
> Others: CAMELCASE, CONFIG_DESCRIPTION
> 
> This is what I have done till now. Any suggestions would be nice and if it looks
> okay I would like to send the v4 in.

Looks OK.

Please make sure you at least include SPACING in the spacing & brackets
descriptions.

It also seems like ref links to Documentation/process/coding-style.rst
<section> (3.1 in the SPACING case) should be used more frequently.

It'd be 'nice' to somehow use sortable tables with some grouping
attribute for these groups, but I have no idea if that's feasible with
.rst restrutured text files.

Perhaps simplify the checkpatch code a bit for the --terse and --verbose
output.

Maybe something like:
---
diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
index 869d80397f9f..07566cb3b3f8 100755
--- a/scripts/checkpatch.pl
+++ b/scripts/checkpatch.pl

@@ -292,15 +292,16 @@ GetOptions(
 
 help(0) if ($help);
 
+die "$P: --git cannot be used with --file or --fix\n" if ($git && ($file || $fix));
+die "$P: --verbose canot be used with --terse\n" if ($verbose && $terse);
+
 list_types(0) if ($list_types);


_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [PATCH RFC v3 2/3] docs: add documentation for checkpatch
  2021-02-17 10:37         ` [Linux-kernel-mentees] " Joe Perches
@ 2021-02-17 15:46           ` Dwaipayan Ray
  -1 siblings, 0 replies; 26+ messages in thread
From: Dwaipayan Ray @ 2021-02-17 15:46 UTC (permalink / raw)
  To: Joe Perches; +Cc: Lukas Bulwahn, linux-kernel-mentees, linux-kernel

On Wed, Feb 17, 2021 at 4:07 PM Joe Perches <joe@perches.com> wrote:
>
> On Tue, 2021-02-16 at 19:48 +0530, Dwaipayan Ray wrote:
> > On Sun, Feb 14, 2021 at 10:27 PM Joe Perches <joe@perches.com> wrote:
> > > On Sat, 2021-02-13 at 18:45 +0530, Dwaipayan Ray wrote:
> > > > Add documentation for kernel script checkpatch.pl.
> > > > This documentation is also parsed by checkpatch to
> > > > enable a verbose mode.
> > > >
> > > > The message types in checkpatch are documented with rst
> > > > field lists. A total of 33 checkpatch type descriptions
> > > > are added.
> > >
> > > Alphabetic ordering isn't that great for these entries.
> > > Please group them by use:
> > >
> > > whitespace/code layout style:
> > > SPACING, TRAILING_WHITESPACE, LINE_SPACING
> []
> > Could I get some comment on this grouping for types:
> >
> > Allocation Style: ALLOC_ARRAY_ARGS, ALLOC_SIZEOF_STRUCT, ALLOC_WITH_MULTIPLY
> >
> > API Usage: ARCH_DEFINES, ARCH_INCLUDE_LINUX, ARRAY_SIZE, AVOID_BUG,
> >                     AVOID_EXTERNS, AVOID_L_PREFIX, BIT_MACRO, CONSIDER_KSTRTO
> >
> > Comment Style: BLOCK_COMMENT_STYLE, C99_COMMENTS
> >
> > Commit Message: BAD_SIGN_OFF, BAD_STABLE_ADDRESS_STYLE, COMMIT_COMMENT_SYMBOL,
> >                               COMMIT_MESSAGE, MISSING_SIGN_OFF,
> > NO_AUTHOR_SIGN_OFF
> >
> > Comparison Style: ASSIGN_IN_IF, BOOL_COMPARISON, COMPARISON_TO_NULL,
> >                                CONSTANT_COMPARISON
> >
> > Spacing & Brackets: ASSIGNMENT_CONTINUATIONS, BRACES, BRACKET_SPACE,
> >                                   CODE_INDENT, CONCATENATED_STRING,
> > LINE_SPACING,
> >                                   TRAILING_WHITESPACE
> >
> > Others: CAMELCASE, CONFIG_DESCRIPTION
> >
> > This is what I have done till now. Any suggestions would be nice and if it looks
> > okay I would like to send the v4 in.
>
> Looks OK.
>
> Please make sure you at least include SPACING in the spacing & brackets
> descriptions.
>
> It also seems like ref links to Documentation/process/coding-style.rst
> <section> (3.1 in the SPACING case) should be used more frequently.
>
> It'd be 'nice' to somehow use sortable tables with some grouping
> attribute for these groups, but I have no idea if that's feasible with
> .rst restrutured text files.
>

I too didn't find anything like that. Seems like static tables are the most
that's feasible with sphynx. But here it might not look well.

> Perhaps simplify the checkpatch code a bit for the --terse and --verbose
> output.
>
> Maybe something like:
> ---
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index 869d80397f9f..07566cb3b3f8 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
>
> @@ -292,15 +292,16 @@ GetOptions(
>
>  help(0) if ($help);
>
> +die "$P: --git cannot be used with --file or --fix\n" if ($git && ($file || $fix));
> +die "$P: --verbose canot be used with --terse\n" if ($verbose && $terse);
> +
>  list_types(0) if ($list_types);
>

Sure will do this. Sending you the updated patch in a while.

Thanks!
--Dwaipayan

^ permalink raw reply	[flat|nested] 26+ messages in thread

* Re: [Linux-kernel-mentees] [PATCH RFC v3 2/3] docs: add documentation for checkpatch
@ 2021-02-17 15:46           ` Dwaipayan Ray
  0 siblings, 0 replies; 26+ messages in thread
From: Dwaipayan Ray @ 2021-02-17 15:46 UTC (permalink / raw)
  To: Joe Perches; +Cc: linux-kernel-mentees, linux-kernel

On Wed, Feb 17, 2021 at 4:07 PM Joe Perches <joe@perches.com> wrote:
>
> On Tue, 2021-02-16 at 19:48 +0530, Dwaipayan Ray wrote:
> > On Sun, Feb 14, 2021 at 10:27 PM Joe Perches <joe@perches.com> wrote:
> > > On Sat, 2021-02-13 at 18:45 +0530, Dwaipayan Ray wrote:
> > > > Add documentation for kernel script checkpatch.pl.
> > > > This documentation is also parsed by checkpatch to
> > > > enable a verbose mode.
> > > >
> > > > The message types in checkpatch are documented with rst
> > > > field lists. A total of 33 checkpatch type descriptions
> > > > are added.
> > >
> > > Alphabetic ordering isn't that great for these entries.
> > > Please group them by use:
> > >
> > > whitespace/code layout style:
> > > SPACING, TRAILING_WHITESPACE, LINE_SPACING
> []
> > Could I get some comment on this grouping for types:
> >
> > Allocation Style: ALLOC_ARRAY_ARGS, ALLOC_SIZEOF_STRUCT, ALLOC_WITH_MULTIPLY
> >
> > API Usage: ARCH_DEFINES, ARCH_INCLUDE_LINUX, ARRAY_SIZE, AVOID_BUG,
> >                     AVOID_EXTERNS, AVOID_L_PREFIX, BIT_MACRO, CONSIDER_KSTRTO
> >
> > Comment Style: BLOCK_COMMENT_STYLE, C99_COMMENTS
> >
> > Commit Message: BAD_SIGN_OFF, BAD_STABLE_ADDRESS_STYLE, COMMIT_COMMENT_SYMBOL,
> >                               COMMIT_MESSAGE, MISSING_SIGN_OFF,
> > NO_AUTHOR_SIGN_OFF
> >
> > Comparison Style: ASSIGN_IN_IF, BOOL_COMPARISON, COMPARISON_TO_NULL,
> >                                CONSTANT_COMPARISON
> >
> > Spacing & Brackets: ASSIGNMENT_CONTINUATIONS, BRACES, BRACKET_SPACE,
> >                                   CODE_INDENT, CONCATENATED_STRING,
> > LINE_SPACING,
> >                                   TRAILING_WHITESPACE
> >
> > Others: CAMELCASE, CONFIG_DESCRIPTION
> >
> > This is what I have done till now. Any suggestions would be nice and if it looks
> > okay I would like to send the v4 in.
>
> Looks OK.
>
> Please make sure you at least include SPACING in the spacing & brackets
> descriptions.
>
> It also seems like ref links to Documentation/process/coding-style.rst
> <section> (3.1 in the SPACING case) should be used more frequently.
>
> It'd be 'nice' to somehow use sortable tables with some grouping
> attribute for these groups, but I have no idea if that's feasible with
> .rst restrutured text files.
>

I too didn't find anything like that. Seems like static tables are the most
that's feasible with sphynx. But here it might not look well.

> Perhaps simplify the checkpatch code a bit for the --terse and --verbose
> output.
>
> Maybe something like:
> ---
> diff --git a/scripts/checkpatch.pl b/scripts/checkpatch.pl
> index 869d80397f9f..07566cb3b3f8 100755
> --- a/scripts/checkpatch.pl
> +++ b/scripts/checkpatch.pl
>
> @@ -292,15 +292,16 @@ GetOptions(
>
>  help(0) if ($help);
>
> +die "$P: --git cannot be used with --file or --fix\n" if ($git && ($file || $fix));
> +die "$P: --verbose canot be used with --terse\n" if ($verbose && $terse);
> +
>  list_types(0) if ($list_types);
>

Sure will do this. Sending you the updated patch in a while.

Thanks!
--Dwaipayan
_______________________________________________
Linux-kernel-mentees mailing list
Linux-kernel-mentees@lists.linuxfoundation.org
https://lists.linuxfoundation.org/mailman/listinfo/linux-kernel-mentees

^ permalink raw reply	[flat|nested] 26+ messages in thread

end of thread, other threads:[~2021-02-17 15:47 UTC | newest]

Thread overview: 26+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-02-13 13:15 [PATCH RFC v3 0/3] checkpatch: add verbose mode Dwaipayan Ray
2021-02-13 13:15 ` [Linux-kernel-mentees] " Dwaipayan Ray
2021-02-13 13:15 ` [PATCH RFC v3 1/3] " Dwaipayan Ray
2021-02-13 13:15   ` [Linux-kernel-mentees] " Dwaipayan Ray
2021-02-13 13:15 ` [PATCH RFC v3 2/3] docs: add documentation for checkpatch Dwaipayan Ray
2021-02-13 13:15   ` [Linux-kernel-mentees] " Dwaipayan Ray
2021-02-14 12:15   ` Matthew Wilcox
2021-02-14 12:15     ` [Linux-kernel-mentees] " Matthew Wilcox
2021-02-15 18:11     ` Joe Perches
2021-02-15 18:11       ` [Linux-kernel-mentees] " Joe Perches
2021-02-15 19:12       ` Matthew Wilcox
2021-02-15 19:12         ` [Linux-kernel-mentees] " Matthew Wilcox
2021-02-14 16:57   ` Joe Perches
2021-02-14 16:57     ` [Linux-kernel-mentees] " Joe Perches
2021-02-15 15:50     ` Dwaipayan Ray
2021-02-15 15:50       ` [Linux-kernel-mentees] " Dwaipayan Ray
2021-02-15 15:55       ` Joe Perches
2021-02-15 15:55         ` [Linux-kernel-mentees] " Joe Perches
2021-02-16 14:18     ` Dwaipayan Ray
2021-02-16 14:18       ` [Linux-kernel-mentees] " Dwaipayan Ray
2021-02-17 10:37       ` Joe Perches
2021-02-17 10:37         ` [Linux-kernel-mentees] " Joe Perches
2021-02-17 15:46         ` Dwaipayan Ray
2021-02-17 15:46           ` [Linux-kernel-mentees] " Dwaipayan Ray
2021-02-13 13:15 ` [PATCH RFC v3 3/3] " Dwaipayan Ray
2021-02-13 13:15   ` [Linux-kernel-mentees] " Dwaipayan Ray

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.