From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Akira Yokosawa <akiyks@gmail.com>
Cc: Jonathan Corbet <corbet@lwn.net>,
linux-doc@vger.kernel.org, linux-kernel@vger.kernel.org
Subject: Re: [PATCH v2 00/12] Thrash up the parser/output interface
Date: Fri, 11 Jul 2025 09:29:17 +0200 [thread overview]
Message-ID: <20250711092917.229bcc89@foz.lan> (raw)
In-Reply-To: <92ff26c0-6952-4f7e-965e-2f020adb859b@gmail.com>
Em Fri, 11 Jul 2025 13:29:00 +0900
Akira Yokosawa <akiyks@gmail.com> escreveu:
> On Thu, 10 Jul 2025 17:31:30 -0600, Jonathan Corbet wrote:
> [...]
>
> > Changes since v1:
> > - Coding-style tweaks requested by Mauro
> > - Drop the reworking of output-text accumulation for now
> > - Add a warning for prehistoric Python versions
>
> Serious review of python code is beyond my background, but I did a test
> on this against opensuse/leap:15.6's python3-Sphinx_4_2_0, which comes with
> python 3.6.15.
>
> Running "./scripts/kernel-doc.py -none include/linux/rcupdate.h" emits this:
>
> ------------------------------------------------------------------------
> Traceback (most recent call last):
> File "./scripts/kernel-doc.py", line 315, in <module>
> main()
> File "./scripts/kernel-doc.py", line 286, in main
> kfiles.parse(args.files, export_file=args.export_file)
> File "/linux/scripts/lib/kdoc/kdoc_files.py", line 222, in parse
> self.parse_file(fname)
> File "/linux/scripts/lib/kdoc/kdoc_files.py", line 119, in parse_file
> doc = KernelDoc(self.config, fname)
> File "/linux/scripts/lib/kdoc/kdoc_parser.py", line 247, in __init__
> self.emit_message(0,
> AttributeError: 'KernelDoc' object has no attribute 'emit_message'
> ------------------------------------------------------------------------
>
> This error appeared in 12/12. No errors with python3 >=3.9.
This is actually a bug. See:
+ #
+ # We need Python 3.7 for its "dicts remember the insertion
+ # order" guarantee
+ #
+ if sys.version_info.major == 3 and sys.version_info.minor < 7:
+ self.emit_message(0,
+ 'Python 3.7 or later is required for correct results')
+
def emit_msg(self, ln, msg, warning=True):
"""Emit a message"""
The answer is just below the modified code: the function name is actually:
self.emit_msg()
> I'm not sure but asking compatibility with python <3.9 increases
> maintainers/testers' burden. Obsoleting <3.9 all together would
> make everyone's life easier, wouldn't it?
I'd say that the best is to have:
scripts/sphinx-pre-install:
- be compatible with Python 3.6, as it is needed to detect and
request Python upgrades where needed.
- For the doc build, based on my tests with the pre-install tool,
all distros on my testlist have at least Python >= 3.9 as optional
packages.
Now, kernel-doc is a special case, as it is called during Kernel
builds, with "-none". In the specific case of this patchset, running
Python 3.6 would randomize the order of struct and function arguments.
Not a problem when "-none" is used. So, compilation should not
break.
Shifting kernel-doc minimal version to Python >= 3.9, will
require an extra logic at kerneldoc to abort early if "-none"
is used with too old Python, as otherwise it will break kernel
builds for RHEL8, OpenSUSE Leap, OpenMandriva Lx 4.3 and to
other distros (those three comes with 3.6).
Jon,
I sent a two-patches series addressing such issues with kernel-doc
exec file.
I would keep patch 12/12, fixing it from:
self.emit_message -> self.emit_msg
as the warning is emitted when using kdoc classes, which is now the
default.
-
Btw, if you use Fedora, you can easily install python 3.6 there via
dnf:
$ dnf search python 3.6
Updating and loading repositories:
Repositories loaded.
Matched fields: name, summary
python3.6.i686: Version 3.6 of the Python interpreter
python3.6.x86_64: Version 3.6 of the Python interpreter
(Fedora 42 also have all python versions from 3.9 to 3.14 beta also
via dnf)
Regards,
Mauro
next prev parent reply other threads:[~2025-07-11 7:29 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-07-10 23:31 [PATCH v2 00/12] Thrash up the parser/output interface Jonathan Corbet
2025-07-10 23:31 ` [PATCH v2 01/12] docs: kdoc; Add a rudimentary class to represent output items Jonathan Corbet
2025-07-10 23:31 ` [PATCH v2 02/12] docs: kdoc: simplify the output-item passing Jonathan Corbet
2025-07-10 23:31 ` [PATCH v2 03/12] docs: kdoc: drop "sectionlist" Jonathan Corbet
2025-07-11 5:50 ` Mauro Carvalho Chehab
2025-07-10 23:31 ` [PATCH v2 04/12] docs: kdoc: Centralize handling of the item section list Jonathan Corbet
2025-07-11 5:52 ` Mauro Carvalho Chehab
2025-07-10 23:31 ` [PATCH v2 05/12] docs: kdoc: remove the "struct_actual" machinery Jonathan Corbet
2025-07-10 23:31 ` [PATCH v2 06/12] docs: kdoc: use self.entry.parameterlist directly in check_sections() Jonathan Corbet
2025-07-10 23:31 ` [PATCH v2 07/12] docs: kdoc: Coalesce parameter-list handling Jonathan Corbet
2025-07-11 5:54 ` Mauro Carvalho Chehab
2025-07-11 12:45 ` Jonathan Corbet
2025-07-10 23:31 ` [PATCH v2 08/12] docs: kdoc: Regularize the use of the declaration name Jonathan Corbet
2025-07-10 23:31 ` [PATCH v2 09/12] docs: kdoc: straighten up dump_declaration() Jonathan Corbet
2025-07-10 23:31 ` [PATCH v2 10/12] docs: kdoc: directly access the always-there KdocItem fields Jonathan Corbet
2025-07-10 23:31 ` [PATCH v2 11/12] docs: kdoc: clean up check_sections() Jonathan Corbet
2025-07-10 23:31 ` [PATCH v2 12/12] docs: kdoc: emit a warning for ancient versions of Python Jonathan Corbet
2025-07-11 5:49 ` Mauro Carvalho Chehab
2025-07-11 4:29 ` [PATCH v2 00/12] Thrash up the parser/output interface Akira Yokosawa
2025-07-11 7:29 ` Mauro Carvalho Chehab [this message]
2025-07-11 13:17 ` Jonathan Corbet
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=20250711092917.229bcc89@foz.lan \
--to=mchehab+huawei@kernel.org \
--cc=akiyks@gmail.com \
--cc=corbet@lwn.net \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.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.