All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: qemu-devel@nongnu.org
Subject: [PATCH 10/29] scripts/kernel-doc: optionally treat warnings as errors
Date: Tue, 17 Nov 2020 17:52:53 +0100	[thread overview]
Message-ID: <20201117165312.118257-11-pbonzini@redhat.com> (raw)
In-Reply-To: <20201117165312.118257-1-pbonzini@redhat.com>

From: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>

The kbuild bot recently added the W=1 option, which triggered
documentation cleanups to squelch hundreds of kernel-doc warnings.

To make sure new kernel contributions don't add regressions to
kernel-doc descriptors, this patch suggests an option to treat
warnings as errors in CI/automated tests.

A -Werror command-line option is added to the kernel-doc script. When
this option is set, the script will return the number of warnings
found. The caller can then treat this positive return value as an
error and stop the build.

Using this command line option is however not straightforward when the
kernel-doc script is called from other scripts. To align with typical
kernel compilation or documentation generation, the Werror option is
also set by checking the KCFLAGS environment variable, or if
KDOC_WERROR is defined, as in the following examples:

KCFLAGS="-Wall -Werror" make W=1 sound/
KCFLAGS="-Wall -Werror" make W=1 drivers/soundwire/
KDOC_WERROR=1 make htmldocs

Note that in the last example the documentation build does not stop,
only an additional log is provided.

Credits to Randy Dunlap for suggesting the use of environment variables.

Suggested-by: Randy Dunlap <rdunlap@infradead.org>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20200728162040.92467-1-pierre-louis.bossart@linux.intel.com
Signed-off-by: Jonathan Corbet <corbet@lwn.net>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
---
 scripts/kernel-doc | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/scripts/kernel-doc b/scripts/kernel-doc
index 1cdece23fb..eb635eb94c 100755
--- a/scripts/kernel-doc
+++ b/scripts/kernel-doc
@@ -83,6 +83,7 @@ Output selection modifiers:
 Other parameters:
   -v			Verbose output, more warnings and other information.
   -h			Print this help.
+  -Werror		Treat warnings as errors.
 
 EOF
     print $message;
@@ -275,6 +276,7 @@ my $kernelversion;
 my $dohighlight = "";
 
 my $verbose = 0;
+my $Werror = 0;
 my $output_mode = "rst";
 my $output_preformatted = 0;
 my $no_doc_sections = 0;
@@ -322,6 +324,18 @@ if (defined($ENV{'KBUILD_VERBOSE'})) {
 	$verbose = "$ENV{'KBUILD_VERBOSE'}";
 }
 
+if (defined($ENV{'KDOC_WERROR'})) {
+	$Werror = "$ENV{'KDOC_WERROR'}";
+}
+
+if (defined($ENV{'KCFLAGS'})) {
+	my $kcflags = "$ENV{'KCFLAGS'}";
+
+	if ($kcflags =~ /Werror/) {
+		$Werror = 1;
+	}
+}
+
 # Generated docbook code is inserted in a template at a point where
 # docbook v3.1 requires a non-zero sequence of RefEntry's; see:
 # https://www.oasis-open.org/docbook/documentation/reference/html/refentry.html
@@ -436,6 +450,8 @@ while ($ARGV[0] =~ m/^--?(.*)/) {
 	push(@export_file_list, $file);
     } elsif ($cmd eq "v") {
 	$verbose = 1;
+    } elsif ($cmd eq "Werror") {
+	$Werror = 1;
     } elsif (($cmd eq "h") || ($cmd eq "help")) {
 	usage();
     } elsif ($cmd eq 'no-doc-sections') {
@@ -2292,4 +2308,9 @@ if ($verbose && $warnings) {
   print STDERR "$warnings warnings\n";
 }
 
-exit($output_mode eq "none" ? 0 : $errors);
+if ($Werror && $warnings) {
+    print STDERR "$warnings warnings as Errors\n";
+    exit($warnings);
+} else {
+    exit($output_mode eq "none" ? 0 : $errors)
+}
-- 
2.28.0




  parent reply	other threads:[~2020-11-17 16:58 UTC|newest]

Thread overview: 32+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-11-17 16:52 [RFC PATCH 00/29] kernel-doc: update from Linux 5.10 Paolo Bonzini
2020-11-17 16:52 ` [PATCH 01/29] kernel-doc: fix processing nested structs with attributes Paolo Bonzini
2020-11-17 16:52 ` [PATCH 02/29] kernel-doc: add support for ____cacheline_aligned_in_smp attribute Paolo Bonzini
2020-11-17 16:52 ` [PATCH 03/29] scripts/kernel-doc: Add support for named variable macro arguments Paolo Bonzini
2020-11-17 16:52 ` [PATCH 04/29] scripts: kernel-doc: proper handle @foo->bar() Paolo Bonzini
2020-11-17 16:52 ` [PATCH 05/29] scripts: kernel-doc: accept negation like !@var Paolo Bonzini
2020-11-17 16:52 ` [PATCH 06/29] scripts: kernel-doc: accept blank lines on parameter description Paolo Bonzini
2020-11-17 16:52 ` [PATCH 07/29] Replace HTTP links with HTTPS ones: documentation Paolo Bonzini
2020-11-17 16:52 ` [PATCH 08/29] scripts/kernel-doc: parse __ETHTOOL_DECLARE_LINK_MODE_MASK Paolo Bonzini
2020-11-17 16:52 ` [PATCH 09/29] scripts/kernel-doc: handle function pointer prototypes Paolo Bonzini
2020-11-17 16:52 ` Paolo Bonzini [this message]
2020-11-17 16:52 ` [PATCH 11/29] kernel-doc: include line numbers for function prototypes Paolo Bonzini
2020-11-17 16:52 ` [PATCH 12/29] kernel-doc: add support for ____cacheline_aligned attribute Paolo Bonzini
2020-11-17 16:52 ` [PATCH 13/29] scripts: kernel-doc: add support for typedef enum Paolo Bonzini
2020-11-17 16:52 ` [PATCH 14/29] Revert "scripts/kerneldoc: For Sphinx 3 use c:macro for macros with arguments" Paolo Bonzini
2020-11-17 16:52 ` [PATCH 15/29] Revert "kernel-doc: Use c:struct for Sphinx 3.0 and later" Paolo Bonzini
2020-11-17 16:52 ` [PATCH 16/29] scripts: kernel-doc: make it more compatible with Sphinx 3.x Paolo Bonzini
2020-11-17 16:53 ` [PATCH 17/29] scripts: kernel-doc: use a less pedantic markup for funcs on " Paolo Bonzini
2020-11-17 16:53 ` [PATCH 18/29] scripts: kernel-doc: fix troubles with line counts Paolo Bonzini
2020-11-17 16:53 ` [PATCH 19/29] scripts: kernel-doc: reimplement -nofunction argument Paolo Bonzini
2020-11-17 16:53 ` [PATCH 20/29] scripts: kernel-doc: fix typedef identification Paolo Bonzini
2020-11-17 16:53 ` [PATCH 21/29] scripts: kernel-doc: don't mangle with parameter list Paolo Bonzini
2020-11-17 16:53 ` [PATCH 22/29] scripts: kernel-doc: allow passing desired Sphinx C domain dialect Paolo Bonzini
2020-11-17 16:53 ` [PATCH 23/29] scripts: kernel-doc: fix line number handling Paolo Bonzini
2020-11-17 16:53 ` [PATCH 24/29] scripts: kernel-doc: try to use c:function if possible Paolo Bonzini
2020-11-17 16:53 ` [PATCH 25/29] Revert "kernel-doc: Handle function typedefs without asterisks" Paolo Bonzini
2020-11-17 16:53 ` [PATCH 26/29] Revert "kernel-doc: Handle function typedefs that return pointers" Paolo Bonzini
2020-11-17 16:53 ` [PATCH 27/29] scripts: kernel-doc: fix typedef parsing Paolo Bonzini
2020-11-17 16:53 ` [PATCH 28/29] scripts: kernel-doc: split typedef complex regex Paolo Bonzini
2020-11-17 16:53 ` [PATCH 29/29] scripts: kernel-doc: use :c:union when needed Paolo Bonzini
2020-11-30 11:28 ` [RFC PATCH 00/29] kernel-doc: update from Linux 5.10 Peter Maydell
2020-11-30 11:59   ` Paolo Bonzini

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20201117165312.118257-11-pbonzini@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=qemu-devel@nongnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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.