* [PATCH 0/4] Some kernel-doc fixes
@ 2025-05-20 13:33 Mauro Carvalho Chehab
2025-05-20 13:33 ` [PATCH 1/4] docs: kerneldoc.py: don't use Sphinx logger Mauro Carvalho Chehab
` (4 more replies)
0 siblings, 5 replies; 10+ messages in thread
From: Mauro Carvalho Chehab @ 2025-05-20 13:33 UTC (permalink / raw)
To: Jonathan Corbet
Cc: Mauro Carvalho Chehab, Stephen Rothwell, Nicolas Schier,
Akira Yokosawa, Randy Dunlap, Andy Shevchenko, linux-doc,
linux-kbuild, linux-kernel
Hi Jon,
Let me consolidate some patches on a single PR to make life simpler
for you. Those should address Stephen and Akira's concerns with
regards to KernelDoc class usage via sphinx kerneldoc.py extension.
Patch 1: don't let Sphinx suppress errors/warnings;
Patch 2: fix a KeyError when trying to acess data from non-existing files;
Patch 3: add try/except blocks to avoid crashes when handling bad
kernel-doc markups;
Patch 4: makes Lore and kernel-doc ML receive patches related
to kernel-doc.py and get_abi.py.
Patches 1 to 3 were already submitted on separate series. Patch 4 is new.
Regards,
Mauro
Mauro Carvalho Chehab (4):
docs: kerneldoc.py: don't use Sphinx logger
scripts: kernel-doc: prevent a KeyError when checking output
docs: kerneldoc.py: add try/except blocks for kernel-doc class errors
MAINTAINERS: update linux-doc entry to cover new Python scripts
Documentation/sphinx/kerneldoc.py | 27 ++++++++++++++++++++++-----
MAINTAINERS | 5 ++++-
scripts/lib/kdoc/kdoc_files.py | 4 ++++
3 files changed, 30 insertions(+), 6 deletions(-)
--
2.49.0
^ permalink raw reply [flat|nested] 10+ messages in thread* [PATCH 1/4] docs: kerneldoc.py: don't use Sphinx logger 2025-05-20 13:33 [PATCH 0/4] Some kernel-doc fixes Mauro Carvalho Chehab @ 2025-05-20 13:33 ` Mauro Carvalho Chehab 2025-05-20 13:33 ` [PATCH 2/4] scripts: kernel-doc: prevent a KeyError when checking output Mauro Carvalho Chehab ` (3 subsequent siblings) 4 siblings, 0 replies; 10+ messages in thread From: Mauro Carvalho Chehab @ 2025-05-20 13:33 UTC (permalink / raw) To: Jonathan Corbet Cc: Mauro Carvalho Chehab, Akira Yokosawa, Andy Shevchenko, Nicolas Schier, Randy Dunlap, Stephen Rothwell, Kees Cook, linux-doc, linux-kbuild, linux-kernel Unfortunately, currently Sphinx logger is suppressing too much, not allowing warnings to be displayed. Disable it. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> --- Documentation/sphinx/kerneldoc.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Documentation/sphinx/kerneldoc.py b/Documentation/sphinx/kerneldoc.py index b713a2c4a615..314479718a01 100644 --- a/Documentation/sphinx/kerneldoc.py +++ b/Documentation/sphinx/kerneldoc.py @@ -311,7 +311,11 @@ def setup_kfiles(app): if kerneldoc_bin and kerneldoc_bin.endswith("kernel-doc.py"): print("Using Python kernel-doc") out_style = RestFormat() - kfiles = KernelFiles(out_style=out_style, logger=logger) + + # Ideally, we should be using Sphinx logger here, but its filtering + # rules ending filtering out warnings and errors. So, let's use + # Python default logger instead. + kfiles = KernelFiles(out_style=out_style) else: print(f"Using {kerneldoc_bin}") -- 2.49.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 2/4] scripts: kernel-doc: prevent a KeyError when checking output 2025-05-20 13:33 [PATCH 0/4] Some kernel-doc fixes Mauro Carvalho Chehab 2025-05-20 13:33 ` [PATCH 1/4] docs: kerneldoc.py: don't use Sphinx logger Mauro Carvalho Chehab @ 2025-05-20 13:33 ` Mauro Carvalho Chehab 2025-05-20 13:33 ` [PATCH 3/4] docs: kerneldoc.py: add try/except blocks for kernel-doc class errors Mauro Carvalho Chehab ` (2 subsequent siblings) 4 siblings, 0 replies; 10+ messages in thread From: Mauro Carvalho Chehab @ 2025-05-20 13:33 UTC (permalink / raw) To: Jonathan Corbet Cc: Mauro Carvalho Chehab, Akira Yokosawa, Andy Shevchenko, Nicolas Schier, Randy Dunlap, Stephen Rothwell, linux-doc, linux-kbuild, linux-kernel If a file sent to KernelFiles.msg() method doesn't exist, instead of producing a KeyError, output an error message. Reported-by: Randy Dunlap <rdunlap@infradead.org> Closes: https://lore.kernel.org/linux-doc/cover.1747719873.git.mchehab+huawei@kernel.org/T/#ma43ae9d8d0995b535cf5099e5381dace0410de04 Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> --- scripts/lib/kdoc/kdoc_files.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/lib/kdoc/kdoc_files.py b/scripts/lib/kdoc/kdoc_files.py index 630aa5ca6460..9be4a64df71d 100644 --- a/scripts/lib/kdoc/kdoc_files.py +++ b/scripts/lib/kdoc/kdoc_files.py @@ -271,6 +271,10 @@ class KernelFiles(): no_doc_sections) msg = "" + if fname not in self.results: + self.config.log.warning("No kernel-doc for file %s", fname) + continue + for name, arg in self.results[fname]: m = self.out_msg(fname, name, arg) -- 2.49.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 3/4] docs: kerneldoc.py: add try/except blocks for kernel-doc class errors 2025-05-20 13:33 [PATCH 0/4] Some kernel-doc fixes Mauro Carvalho Chehab 2025-05-20 13:33 ` [PATCH 1/4] docs: kerneldoc.py: don't use Sphinx logger Mauro Carvalho Chehab 2025-05-20 13:33 ` [PATCH 2/4] scripts: kernel-doc: prevent a KeyError when checking output Mauro Carvalho Chehab @ 2025-05-20 13:33 ` Mauro Carvalho Chehab 2025-05-20 14:22 ` Andy Shevchenko 2025-05-20 13:33 ` [PATCH 4/4] MAINTAINERS: update linux-doc entry to cover new Python scripts Mauro Carvalho Chehab 2025-05-20 14:17 ` [PATCH 0/4] Some kernel-doc fixes Andy Shevchenko 4 siblings, 1 reply; 10+ messages in thread From: Mauro Carvalho Chehab @ 2025-05-20 13:33 UTC (permalink / raw) To: Jonathan Corbet Cc: Mauro Carvalho Chehab, Akira Yokosawa, Andy Shevchenko, Nicolas Schier, Randy Dunlap, Stephen Rothwell, Kees Cook, linux-doc, linux-kbuild, linux-kernel Replicate the same behavior as what's done with kernel-doc.pl: continue building docs even when there are exceptions. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> --- Documentation/sphinx/kerneldoc.py | 21 +++++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/Documentation/sphinx/kerneldoc.py b/Documentation/sphinx/kerneldoc.py index 314479718a01..4de667d4d95b 100644 --- a/Documentation/sphinx/kerneldoc.py +++ b/Documentation/sphinx/kerneldoc.py @@ -278,14 +278,27 @@ class KernelDocDirective(Directive): node = nodes.section() - kfiles.parse(**self.parse_args) - filenames = self.parse_args["file_list"] + try: + kfiles.parse(**self.parse_args) + filenames = self.parse_args["file_list"] + msgs = kfiles.msg(**self.msg_args, filenames=filenames) - for filename, out in kfiles.msg(**self.msg_args, filenames=filenames): + except Exception as e: # pylint: disable=W0703 + logger.warning("kernel-doc '%s' processing failed with: %s" % + (cmd_str(cmd), str(e))) + + for filename, out in msgs: if self.verbose >= 1: print(cmd_str(cmd)) - ret = self.parse_msg(filename, node, out, cmd) + try: + ret = self.parse_msg(filename, node, out, cmd) + + except Exception as e: # pylint: disable=W0703 + logger.warning("kernel-doc '%s' processing failed with: %s" % + (cmd_str(cmd), str(e))) + return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))] + if ret: return ret -- 2.49.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 3/4] docs: kerneldoc.py: add try/except blocks for kernel-doc class errors 2025-05-20 13:33 ` [PATCH 3/4] docs: kerneldoc.py: add try/except blocks for kernel-doc class errors Mauro Carvalho Chehab @ 2025-05-20 14:22 ` Andy Shevchenko 2025-05-20 14:50 ` Mauro Carvalho Chehab 0 siblings, 1 reply; 10+ messages in thread From: Andy Shevchenko @ 2025-05-20 14:22 UTC (permalink / raw) To: Mauro Carvalho Chehab Cc: Jonathan Corbet, Akira Yokosawa, Nicolas Schier, Randy Dunlap, Stephen Rothwell, Kees Cook, linux-doc, linux-kbuild, linux-kernel On Tue, May 20, 2025 at 03:33:08PM +0200, Mauro Carvalho Chehab wrote: > Replicate the same behavior as what's done with kernel-doc.pl: > continue building docs even when there are exceptions. ... > + logger.warning("kernel-doc '%s' processing failed with: %s" % > + (cmd_str(cmd), str(e))) > + logger.warning("kernel-doc '%s' processing failed with: %s" % > + (cmd_str(cmd), str(e))) The prefix of the message is the same for different (semantically) places. Is it okay? (I would expect them to slightly differ, but I dunno if cmd here is the same, perhaps that's enough for distinguishing the two.) -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 3/4] docs: kerneldoc.py: add try/except blocks for kernel-doc class errors 2025-05-20 14:22 ` Andy Shevchenko @ 2025-05-20 14:50 ` Mauro Carvalho Chehab 2025-05-20 15:40 ` Mauro Carvalho Chehab 0 siblings, 1 reply; 10+ messages in thread From: Mauro Carvalho Chehab @ 2025-05-20 14:50 UTC (permalink / raw) To: Andy Shevchenko Cc: Jonathan Corbet, Akira Yokosawa, Nicolas Schier, Randy Dunlap, Stephen Rothwell, Kees Cook, linux-doc, linux-kbuild, linux-kernel Em Tue, 20 May 2025 17:22:27 +0300 Andy Shevchenko <andriy.shevchenko@linux.intel.com> escreveu: > On Tue, May 20, 2025 at 03:33:08PM +0200, Mauro Carvalho Chehab wrote: > > Replicate the same behavior as what's done with kernel-doc.pl: > > continue building docs even when there are exceptions. > > ... > > > + logger.warning("kernel-doc '%s' processing failed with: %s" % > > + (cmd_str(cmd), str(e))) > > > + logger.warning("kernel-doc '%s' processing failed with: %s" % > > + (cmd_str(cmd), str(e))) > > The prefix of the message is the same for different (semantically) places. > Is it okay? (I would expect them to slightly differ, but I dunno if > cmd here is the same, perhaps that's enough for distinguishing the two.) I guess it should be OK, as the "%s" variables are the ones that will actually help to provide a hint about the issue. See, in practice, if one wants to check what crashed, the procedure would likely be to run the command line, given by "cmd_str(cmd)" and see what output was produced. Regards, Mauro ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 3/4] docs: kerneldoc.py: add try/except blocks for kernel-doc class errors 2025-05-20 14:50 ` Mauro Carvalho Chehab @ 2025-05-20 15:40 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 10+ messages in thread From: Mauro Carvalho Chehab @ 2025-05-20 15:40 UTC (permalink / raw) To: Andy Shevchenko Cc: Jonathan Corbet, Akira Yokosawa, Nicolas Schier, Randy Dunlap, Stephen Rothwell, Kees Cook, linux-doc, linux-kbuild, linux-kernel Em Tue, 20 May 2025 16:50:24 +0200 Mauro Carvalho Chehab <mchehab+huawei@kernel.org> escreveu: > Em Tue, 20 May 2025 17:22:27 +0300 > Andy Shevchenko <andriy.shevchenko@linux.intel.com> escreveu: > > > On Tue, May 20, 2025 at 03:33:08PM +0200, Mauro Carvalho Chehab wrote: > > > Replicate the same behavior as what's done with kernel-doc.pl: > > > continue building docs even when there are exceptions. > > > > ... > > > > > + logger.warning("kernel-doc '%s' processing failed with: %s" % > > > + (cmd_str(cmd), str(e))) > > > > > + logger.warning("kernel-doc '%s' processing failed with: %s" % > > > + (cmd_str(cmd), str(e))) > > > > The prefix of the message is the same for different (semantically) places. > > Is it okay? (I would expect them to slightly differ, but I dunno if > > cmd here is the same, perhaps that's enough for distinguishing the two.) > > I guess it should be OK, as the "%s" variables are the ones that will > actually help to provide a hint about the issue. See, in practice, if > one wants to check what crashed, the procedure would likely be to run > the command line, given by "cmd_str(cmd)" and see what output was produced. On a second thought, the try/except logic there is too complex. We need just one to cover all cases. Also, "str(e)" is not the best, as it doesn't really show the error. "pformat(e)" works a lot better: $ make htmldocs Using alabaster theme Using Python kernel-doc Cannot find file ./drivers/gpio/gpiolib-acpi.c Cannot find file ./drivers/gpio/gpiolib-acpi.c WARNING: kernel-doc './scripts/kernel-doc.py -rst -enable-lineno -export ./drivers/gpio/gpiolib-acpi.c' processing failed with: KeyError('./drivers/gpio/gpiolib-acpi.c') Documentation/arch/powerpc/htm.rst: WARNING: document isn't included in any toctree See enclosed patch (to be applied after this series). Regards, Mauro --- [PATCH] docs: kerneldoc.py: simplify exception handling logic Instead of having try/except everywhere, place them on a common place. While here, get rid of some bogus logs. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> diff --git a/Documentation/sphinx/kerneldoc.py b/Documentation/sphinx/kerneldoc.py index 833cb0285afc..3f9754b84566 100644 --- a/Documentation/sphinx/kerneldoc.py +++ b/Documentation/sphinx/kerneldoc.py @@ -40,6 +40,7 @@ from docutils.parsers.rst import directives, Directive import sphinx from sphinx.util.docutils import switch_source_input from sphinx.util import logging +from pprint import pformat srctree = os.path.abspath(os.environ["srctree"]) sys.path.insert(0, os.path.join(srctree, "scripts/lib/kdoc")) @@ -49,7 +50,7 @@ from kdoc_output import RestFormat __version__ = '1.0' kfiles = None -logger = logging.getLogger('kerneldoc') +logger = logging.getLogger(__name__) def cmd_str(cmd): """ @@ -190,46 +191,35 @@ class KernelDocDirective(Directive): return cmd - def run_cmd(self): + def run_cmd(self, cmd): """ Execute an external kernel-doc command. """ env = self.state.document.settings.env - cmd = self.handle_args() if self.verbose >= 1: - print(cmd_str(cmd)) + logger.info(cmd_str(cmd)) node = nodes.section() - try: - logger.verbose("calling kernel-doc '%s'" % (" ".join(cmd))) - - p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) - out, err = p.communicate() - - out, err = codecs.decode(out, 'utf-8'), codecs.decode(err, 'utf-8') + p = subprocess.Popen(cmd, stdout=subprocess.PIPE, stderr=subprocess.PIPE) + out, err = p.communicate() - if p.returncode != 0: - sys.stderr.write(err) + out, err = codecs.decode(out, 'utf-8'), codecs.decode(err, 'utf-8') - logger.warning("kernel-doc '%s' failed with return code %d" - % (" ".join(cmd), p.returncode)) - return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))] - elif env.config.kerneldoc_verbosity > 0: - sys.stderr.write(err) + if p.returncode != 0: + sys.stderr.write(err) - except Exception as e: # pylint: disable=W0703 - logger.warning("kernel-doc '%s' processing failed with: %s" % - (" ".join(cmd), str(e))) + logger.warning("kernel-doc '%s' failed with return code %d" + % (" ".join(cmd), p.returncode)) return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))] + elif env.config.kerneldoc_verbosity > 0: + sys.stderr.write(err) filenames = self.parse_args["file_list"] for filename in filenames: - ret = self.parse_msg(filename, node, out, cmd) - if ret: - return ret + self.parse_msg(filename, node, out, cmd) return node.children @@ -240,71 +230,62 @@ class KernelDocDirective(Directive): env = self.state.document.settings.env - try: - lines = statemachine.string2lines(out, self.tab_width, - convert_whitespace=True) - result = ViewList() - - lineoffset = 0; - line_regex = re.compile(r"^\.\. LINENO ([0-9]+)$") - for line in lines: - match = line_regex.search(line) - if match: - # sphinx counts lines from 0 - lineoffset = int(match.group(1)) - 1 - # we must eat our comments since the upset the markup - else: - doc = str(env.srcdir) + "/" + env.docname + ":" + str(self.lineno) - result.append(line, doc + ": " + filename, lineoffset) - lineoffset += 1 - - self.do_parse(result, node) - - except Exception as e: # pylint: disable=W0703 - logger.warning("kernel-doc '%s' processing failed with: %s" % - (cmd_str(cmd), str(e))) - return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))] + lines = statemachine.string2lines(out, self.tab_width, + convert_whitespace=True) + result = ViewList() + + lineoffset = 0; + line_regex = re.compile(r"^\.\. LINENO ([0-9]+)$") + for line in lines: + match = line_regex.search(line) + if match: + # sphinx counts lines from 0 + lineoffset = int(match.group(1)) - 1 + # we must eat our comments since the upset the markup + else: + doc = str(env.srcdir) + "/" + env.docname + ":" + str(self.lineno) + result.append(line, doc + ": " + filename, lineoffset) + lineoffset += 1 - return None + self.do_parse(result, node) - def run_kdoc(self, kfiles): + def run_kdoc(self, cmd, kfiles): """ Execute kernel-doc classes directly instead of running as a separate command. """ - cmd = self.handle_args() env = self.state.document.settings.env node = nodes.section() - try: - kfiles.parse(**self.parse_args) - filenames = self.parse_args["file_list"] - - msgs = kfiles.msg(**self.msg_args, filenames=filenames) - for filename, out in msgs: - if self.verbose >= 1: - print(cmd_str(cmd)) + kfiles.parse(**self.parse_args) + filenames = self.parse_args["file_list"] - ret = self.parse_msg(filename, node, out, cmd) - if ret: - return ret + msgs = kfiles.msg(**self.msg_args, filenames=filenames) + for filename, out in msgs: + if self.verbose >= 1: + print(cmd_str(cmd)) - except Exception as e: # pylint: disable=W0703 - logger.warning("kernel-doc '%s' processing failed with: %s" % - (cmd_str(cmd), str(e))) - return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))] + self.parse_msg(filename, node, out, cmd) return node.children def run(self): global kfiles - if kfiles: - return self.run_kdoc(kfiles) - else: - return self.run_cmd() + cmd = self.handle_args() + + try: + if kfiles: + return self.run_kdoc(cmd, kfiles) + else: + return self.run_cmd(cmd) + + except Exception as e: # pylint: disable=W0703 + logger.warning("kernel-doc '%s' processing failed with: %s" % + (cmd_str(cmd), pformat(e))) + return [nodes.error(None, nodes.paragraph(text = "kernel-doc missing"))] def do_parse(self, result, node): with switch_source_input(self.state, result): ^ permalink raw reply related [flat|nested] 10+ messages in thread
* [PATCH 4/4] MAINTAINERS: update linux-doc entry to cover new Python scripts 2025-05-20 13:33 [PATCH 0/4] Some kernel-doc fixes Mauro Carvalho Chehab ` (2 preceding siblings ...) 2025-05-20 13:33 ` [PATCH 3/4] docs: kerneldoc.py: add try/except blocks for kernel-doc class errors Mauro Carvalho Chehab @ 2025-05-20 13:33 ` Mauro Carvalho Chehab 2025-05-20 14:17 ` [PATCH 0/4] Some kernel-doc fixes Andy Shevchenko 4 siblings, 0 replies; 10+ messages in thread From: Mauro Carvalho Chehab @ 2025-05-20 13:33 UTC (permalink / raw) To: Jonathan Corbet Cc: Mauro Carvalho Chehab, Akira Yokosawa, Andy Shevchenko, Nicolas Schier, Randy Dunlap, Stephen Rothwell, linux-doc, linux-kbuild, linux-kernel Changes to ABI and kernel-doc need to be c/c linux-doc. Update the maintainer's entry to cover those files. Signed-off-by: Mauro Carvalho Chehab <mchehab+huawei@kernel.org> --- MAINTAINERS | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/MAINTAINERS b/MAINTAINERS index 20e07e61a148..a668808769b6 100644 --- a/MAINTAINERS +++ b/MAINTAINERS @@ -7173,7 +7173,10 @@ T: git git://git.lwn.net/linux.git docs-next F: Documentation/ F: scripts/check-variable-fonts.sh F: scripts/documentation-file-ref-check -F: scripts/kernel-doc +F: scripts/get_abi.py +F: scripts/kernel-doc* +F scripts/lib/abi/* +F scripts/lib/kdoc/* F: scripts/sphinx-pre-install X: Documentation/ABI/ X: Documentation/admin-guide/media/ -- 2.49.0 ^ permalink raw reply related [flat|nested] 10+ messages in thread
* Re: [PATCH 0/4] Some kernel-doc fixes 2025-05-20 13:33 [PATCH 0/4] Some kernel-doc fixes Mauro Carvalho Chehab ` (3 preceding siblings ...) 2025-05-20 13:33 ` [PATCH 4/4] MAINTAINERS: update linux-doc entry to cover new Python scripts Mauro Carvalho Chehab @ 2025-05-20 14:17 ` Andy Shevchenko 2025-05-20 14:31 ` Mauro Carvalho Chehab 4 siblings, 1 reply; 10+ messages in thread From: Andy Shevchenko @ 2025-05-20 14:17 UTC (permalink / raw) To: Mauro Carvalho Chehab Cc: Jonathan Corbet, Stephen Rothwell, Nicolas Schier, Akira Yokosawa, Randy Dunlap, linux-doc, linux-kbuild, linux-kernel On Tue, May 20, 2025 at 03:33:05PM +0200, Mauro Carvalho Chehab wrote: > Hi Jon, > > Let me consolidate some patches on a single PR to make life simpler > for you. Those should address Stephen and Akira's concerns with > regards to KernelDoc class usage via sphinx kerneldoc.py extension. > > Patch 1: don't let Sphinx suppress errors/warnings; > Patch 2: fix a KeyError when trying to acess data from non-existing files; > Patch 3: add try/except blocks to avoid crashes when handling bad > kernel-doc markups; > Patch 4: makes Lore and kernel-doc ML receive patches related > to kernel-doc.py and get_abi.py. > > Patches 1 to 3 were already submitted on separate series. Patch 4 is new. Can we actually utilise CONFIG_WERROR to fail the build. If yes, the build will be failed. This is in align with the warnings in the C code. -- With Best Regards, Andy Shevchenko ^ permalink raw reply [flat|nested] 10+ messages in thread
* Re: [PATCH 0/4] Some kernel-doc fixes 2025-05-20 14:17 ` [PATCH 0/4] Some kernel-doc fixes Andy Shevchenko @ 2025-05-20 14:31 ` Mauro Carvalho Chehab 0 siblings, 0 replies; 10+ messages in thread From: Mauro Carvalho Chehab @ 2025-05-20 14:31 UTC (permalink / raw) To: Andy Shevchenko Cc: Jonathan Corbet, Stephen Rothwell, Nicolas Schier, Akira Yokosawa, Randy Dunlap, linux-doc, linux-kbuild, linux-kernel Em Tue, 20 May 2025 17:17:56 +0300 Andy Shevchenko <andriy.shevchenko@linux.intel.com> escreveu: > On Tue, May 20, 2025 at 03:33:05PM +0200, Mauro Carvalho Chehab wrote: > > Hi Jon, > > > > Let me consolidate some patches on a single PR to make life simpler > > for you. Those should address Stephen and Akira's concerns with > > regards to KernelDoc class usage via sphinx kerneldoc.py extension. > > > > Patch 1: don't let Sphinx suppress errors/warnings; > > Patch 2: fix a KeyError when trying to acess data from non-existing files; > > Patch 3: add try/except blocks to avoid crashes when handling bad > > kernel-doc markups; > > Patch 4: makes Lore and kernel-doc ML receive patches related > > to kernel-doc.py and get_abi.py. > > > > Patches 1 to 3 were already submitted on separate series. Patch 4 is new. > > Can we actually utilise CONFIG_WERROR to fail the build. If yes, the build will > be failed. This is in align with the warnings in the C code. It makes sense to me - either to use CONFIG_WERROR or to have something like: make SPHINX_WERROR=1 htmldocs Btw, kernel-doc.pl (*) and kernel-doc.py have several command-line parameters to control warnings: $ ./scripts/kernel-doc --help ... -Wreturn, --wreturn Warns about the lack of a return markup on functions. -Wshort-desc, -Wshort-description, --wshort-desc Warns if initial short description is missing -Wcontents-before-sections, --wcontents-before-sections Warns if there are contents before sections (deprecated). This option is kept just for backward-compatibility, but it does nothing, neither here nor at the original Perl script. -Wall, --wall Enable all types of warnings -Werror, --werror Treat warnings as errors. ... (*) from the above, only -Werror is documented at the Perl version. In the future, I'm planning to do some work to improve it - including removing the deprecated -Wcontents-before-sections. But anyway this is out of the scope of this series, as we're aiming to be bug-compatible with kernel-doc.pl. The crashes were unintended. Regards, Mauro ^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2025-05-20 15:40 UTC | newest] Thread overview: 10+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2025-05-20 13:33 [PATCH 0/4] Some kernel-doc fixes Mauro Carvalho Chehab 2025-05-20 13:33 ` [PATCH 1/4] docs: kerneldoc.py: don't use Sphinx logger Mauro Carvalho Chehab 2025-05-20 13:33 ` [PATCH 2/4] scripts: kernel-doc: prevent a KeyError when checking output Mauro Carvalho Chehab 2025-05-20 13:33 ` [PATCH 3/4] docs: kerneldoc.py: add try/except blocks for kernel-doc class errors Mauro Carvalho Chehab 2025-05-20 14:22 ` Andy Shevchenko 2025-05-20 14:50 ` Mauro Carvalho Chehab 2025-05-20 15:40 ` Mauro Carvalho Chehab 2025-05-20 13:33 ` [PATCH 4/4] MAINTAINERS: update linux-doc entry to cover new Python scripts Mauro Carvalho Chehab 2025-05-20 14:17 ` [PATCH 0/4] Some kernel-doc fixes Andy Shevchenko 2025-05-20 14:31 ` Mauro Carvalho Chehab
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox