From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Akira Yokosawa <akiyks@gmail.com>, Breno Leitao <leitao@debian.org>
Cc: Linux Doc Mailing List <linux-doc@vger.kernel.org>,
Jonathan Corbet <corbet@lwn.net>,
linux-kernel@vger.kernel.org,
"David S. Miller" <davem@davemloft.net>,
Ignacio Encinas Rubio <ignacio@iencinas.com>,
Marco Elver <elver@google.com>,
Shuah Khan <skhan@linuxfoundation.org>,
Donald Hunter <donald.hunter@gmail.com>,
Eric Dumazet <edumazet@google.com>,
Jan Stancek <jstancek@redhat.com>,
Paolo Abeni <pabeni@redhat.com>,
Ruben Wauters <rubenru09@aol.com>,
joel@joelfernandes.org, linux-kernel-mentees@lists.linux.dev,
lkmm@lists.linux.dev, netdev@vger.kernel.org,
peterz@infradead.org, stern@rowland.harvard.edu,
Randy Dunlap <rdunlap@infradead.org>
Subject: Re: [PATCH v6 00/15] Don't generate netlink .rst files inside $(srctree)
Date: Wed, 18 Jun 2025 18:20:32 +0200 [thread overview]
Message-ID: <20250618182032.03e7a727@sal.lan> (raw)
In-Reply-To: <17f2a9ce-85ac-414a-b872-fbcd30354473@gmail.com>
Em Thu, 19 Jun 2025 00:46:15 +0900
Akira Yokosawa <akiyks@gmail.com> escreveu:
> Hi Mauro,
>
> On 2025/06/18 20:46, Mauro Carvalho Chehab wrote:
> > As discussed at:
> > https://lore.kernel.org/all/20250610101331.62ba466f@foz.lan/
> >
> > changeset f061c9f7d058 ("Documentation: Document each netlink family")
> > added a logic which generates *.rst files inside $(srctree). This is bad
> > when O=<BUILDDIR> is used.
> >
> > A recent change renamed the yaml files used by Netlink, revealing a bad
> > side effect: as "make cleandocs" don't clean the produced files and symbols
> > appear duplicated for people that don't build the kernel from scratch.
> >
> > This series adds an yaml parser extension and uses an index file with glob for
> > *. We opted to write such extension in a way that no actual yaml conversion
> > code is inside it. This makes it flexible enough to handle other types of yaml
> > files in the future. The actual yaml conversion logic were placed at
> > netlink_yml_parser.py.
> >
> > As requested by YNL maintainers, this version has netlink_yml_parser.py
> > inside tools/net/ynl/pyynl/ directory. I don't like mixing libraries with
> > binaries, nor to have Python libraries spread all over the Kernel. IMO,
> > the best is to put all of them on a common place (scripts/lib, python/lib,
> > lib/python, ...) but, as this can be solved later, for now let's keep it this
> > way.
> >
> > ---
> >
> > v6:
> > - YNL doc parser is now at tools/net/ynl/pyynl/lib/doc_generator.py;
> > - two patches got merged;
> > - added instructions to test docs with Sphinx 3.4.3 (minimal supported
> > version);
> > - minor fixes.
>
> Quick tests against Sphinx 3.4.3 using container images based on
> debian:bullseye and almalinux:9, both of which have 3.4.3 as their distro
> packages, emits a *bunch* of warnings like the following:
>
> /<srcdir>/Documentation/netlink/specs/conntrack.yaml:: WARNING: YAML parsing error: AttributeError("'Values' object has no attribute 'tab_width'")
> /<srcdir>/Documentation/netlink/specs/devlink.yaml:: WARNING: YAML parsing error: AttributeError("'Values' object has no attribute 'tab_width'")
> /<srcdir>/Documentation/netlink/specs/dpll.yaml:: WARNING: YAML parsing error: AttributeError("'Values' object has no attribute 'tab_width'")
> /<srcdir>/Documentation/netlink/specs/ethtool.yaml:: WARNING: YAML parsing error: AttributeError("'Values' object has no attribute 'tab_width'")
> /<srcdir>/Documentation/netlink/specs/fou.yaml:: WARNING: YAML parsing error: AttributeError("'Values' object has no attribute 'tab_width'")
> [...]
>
> I suspect there should be a minimal required minimal version of PyYAML.
Likely yes. From my side, I didn't change anything related to PyYAML,
except by adding a loader at the latest patch to add line numbers.
The above warnings don't seem related. So, probably this was already
an issue.
Funny enough, I did, on my venv:
$ pip install PyYAML==5.1
$ tools/net/ynl/pyynl/ynl_gen_rst.py -i Documentation/netlink/specs/dpll.yaml -o Documentation/output/netlink/specs/dpll.rst -v
...
$ make clean; make SPHINXDIRS="netlink/specs" htmldocs
...
but didn't get any issue (I have a later version installed outside
venv - not sure it it will do the right thing).
That's what I have at venv:
----------------------------- ---------
Package Version
----------------------------- ---------
alabaster 0.7.13
babel 2.17.0
certifi 2025.6.15
charset-normalizer 3.4.2
docutils 0.17.1
idna 3.10
imagesize 1.4.1
Jinja2 2.8.1
MarkupSafe 1.1.1
packaging 25.0
pip 25.1.1
Pygments 2.19.1
PyYAML 5.1
requests 2.32.4
setuptools 80.1.0
snowballstemmer 3.0.1
Sphinx 3.4.3
sphinxcontrib-applehelp 1.0.4
sphinxcontrib-devhelp 1.0.2
sphinxcontrib-htmlhelp 2.0.1
sphinxcontrib-jsmath 1.0.1
sphinxcontrib-qthelp 1.0.3
sphinxcontrib-serializinghtml 1.1.5
urllib3 2.4.0
----------------------------- ---------
> "pip freeze" based on almalinux:9 says:
>
> PyYAML==5.4.1
>
> "pip freeze" based on debian:bullseye says:
>
> PyYAML==5.3.1
>
> What is the minimal required version here?
Breno, what's the minimal version? Please update requirements.txt
to ensure that, and modify ./scripts/sphinx-pre-install to
check for it.
>
> And if users of those old distros need to manually upgrade PyYAML,
> why don't you suggest them to upgrade Sphinx as well?
The criteria we used to define minimal version for python/sphinx
was having them released at the end of 2020/beginning 2021. So,
up to ~4 years old. We also double-checked latest LTS versions
from major distros.
With that, PyYAML 5.4.1 met the ~4 years old, and so 5.3.1 and
5.1.
funny enough:
$ git grep tab_width Documentation/netlink/
doesn't return anything. Yet, tab_width is used by sphinx
extensions. The in-kernel ones do it the right way using
get:
tab_width = self.options.get('tab-width',
self.state.document.settings.tab_width)
But perhaps some other extension you might have installed on your
environment has issues, or maybe Documentation/sphinx/parser_yaml.py
need to expand tabs with certain versions of docutils.
Please compare the versions that you're using on your test
environment with the ones I used here.
Regards,
Mauro
next prev parent reply other threads:[~2025-06-18 16:20 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-18 11:46 [PATCH v6 00/15] Don't generate netlink .rst files inside $(srctree) Mauro Carvalho Chehab
2025-06-18 11:46 ` [PATCH v6 01/15] docs: conf.py: properly handle include and exclude patterns Mauro Carvalho Chehab
2025-06-18 15:42 ` Breno Leitao
2025-06-18 19:54 ` Mauro Carvalho Chehab
2025-06-18 11:46 ` [PATCH v6 02/15] docs: Makefile: disable check rules on make cleandocs Mauro Carvalho Chehab
2025-06-18 11:46 ` [PATCH v6 03/15] docs: netlink: netlink-raw.rst: use :ref: instead of :doc: Mauro Carvalho Chehab
2025-06-18 11:46 ` [PATCH v6 04/15] tools: ynl_gen_rst.py: Split library from command line tool Mauro Carvalho Chehab
2025-06-18 11:46 ` [PATCH v6 05/15] docs: netlink: index.rst: add a netlink index file Mauro Carvalho Chehab
2025-06-18 11:46 ` [PATCH v6 06/15] tools: ynl_gen_rst.py: cleanup coding style Mauro Carvalho Chehab
2025-06-18 11:46 ` [PATCH v6 07/15] docs: sphinx: add a parser for yaml files for Netlink specs Mauro Carvalho Chehab
2025-06-18 11:46 ` [PATCH v6 08/15] docs: use parser_yaml extension to handle " Mauro Carvalho Chehab
2025-06-18 11:46 ` [PATCH v6 09/15] docs: uapi: netlink: update netlink specs link Mauro Carvalho Chehab
2025-06-18 11:46 ` [PATCH v6 10/15] tools: ynl_gen_rst.py: drop support for generating index files Mauro Carvalho Chehab
2025-06-18 11:46 ` [PATCH v6 11/15] docs: netlink: remove obsolete .gitignore from unused directory Mauro Carvalho Chehab
2025-06-18 11:46 ` [PATCH v6 12/15] MAINTAINERS: add netlink_yml_parser.py to linux-doc Mauro Carvalho Chehab
2025-06-18 11:46 ` [PATCH v6 13/15] tools: netlink_yml_parser.py: add line numbers to parsed data Mauro Carvalho Chehab
2025-06-18 11:46 ` [PATCH v6 14/15] docs: parser_yaml.py: add support for line numbers from the parser Mauro Carvalho Chehab
2025-06-18 11:46 ` [PATCH v6 15/15] docs: sphinx: add a file with the requirements for lowest version Mauro Carvalho Chehab
2025-06-18 15:46 ` [PATCH v6 00/15] Don't generate netlink .rst files inside $(srctree) Akira Yokosawa
2025-06-18 16:20 ` Mauro Carvalho Chehab [this message]
2025-06-19 1:34 ` Akira Yokosawa
2025-06-19 6:23 ` Mauro Carvalho Chehab
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=20250618182032.03e7a727@sal.lan \
--to=mchehab+huawei@kernel.org \
--cc=akiyks@gmail.com \
--cc=corbet@lwn.net \
--cc=davem@davemloft.net \
--cc=donald.hunter@gmail.com \
--cc=edumazet@google.com \
--cc=elver@google.com \
--cc=ignacio@iencinas.com \
--cc=joel@joelfernandes.org \
--cc=jstancek@redhat.com \
--cc=leitao@debian.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel-mentees@lists.linux.dev \
--cc=linux-kernel@vger.kernel.org \
--cc=lkmm@lists.linux.dev \
--cc=netdev@vger.kernel.org \
--cc=pabeni@redhat.com \
--cc=peterz@infradead.org \
--cc=rdunlap@infradead.org \
--cc=rubenru09@aol.com \
--cc=skhan@linuxfoundation.org \
--cc=stern@rowland.harvard.edu \
/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.