From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
To: Jakub Kicinski <kuba@kernel.org>
Cc: Donald Hunter <donald.hunter@gmail.com>,
Jonathan Corbet <corbet@lwn.net>,
Linux Doc Mailing List <linux-doc@vger.kernel.org>,
Akira Yokosawa <akiyks@gmail.com>,
Breno Leitao <leitao@debian.org>,
"David S. Miller" <davem@davemloft.net>,
Eric Dumazet <edumazet@google.com>,
Ignacio Encinas Rubio <ignacio@iencinas.com>,
Jan Stancek <jstancek@redhat.com>, Marco Elver <elver@google.com>,
Paolo Abeni <pabeni@redhat.com>,
Ruben Wauters <rubenru09@aol.com>,
Shuah Khan <skhan@linuxfoundation.org>,
joel@joelfernandes.org, linux-kernel-mentees@lists.linux.dev,
linux-kernel@vger.kernel.org, lkmm@lists.linux.dev,
netdev@vger.kernel.org, peterz@infradead.org,
stern@rowland.harvard.edu
Subject: Re: [PATCH v4 12/14] MAINTAINERS: add maintainers for netlink_yml_parser.py
Date: Mon, 16 Jun 2025 12:51:06 +0200 [thread overview]
Message-ID: <20250616125106.5d7fd18f@foz.lan> (raw)
In-Reply-To: <20250614124649.2c41407c@kernel.org>
Em Sat, 14 Jun 2025 12:46:49 -0700
Jakub Kicinski <kuba@kernel.org> escreveu:
> On Sat, 14 Jun 2025 20:56:09 +0200 Mauro Carvalho Chehab wrote:
> > > I understand that from the PoV of ease of maintenance of the docs.
> > > Is it fair to say there is a trade off here between ease of maintenance
> > > for docs maintainers and encouraging people to integrate with kernel
> > > docs in novel ways?
> >
> > Placing elsewhere won't make much difference from doc maintainers and
> > developers.
>
> I must be missing your point. Clearly it makes a difference to Donald,
> who is a maintainer of the docs in question.
Heh, I was just saying that I missed your point ;-)
See, you said that "there is a trade off here between ease of maintenance
for docs maintainers and encouraging people to integrate with kernel
docs in novel ways".
I can't see how being easy/hard to maintain or even "integrate with
kernel docs in novel ways" would be affected by the script location.
Whatever it is located, there should be MAINTAINERS entries that would
point to YAML and network maintainers maintainers:
$ ./scripts/get_maintainer.pl tools/net/ynl/pyynl/ynl_gen_rst.py --nogit --nogit-blame --nogit-fallback
Donald Hunter <donald.hunter@gmail.com> (maintainer:YAML NETLINK (YNL))
Jakub Kicinski <kuba@kernel.org> (maintainer:YAML NETLINK (YNL))
"David S. Miller" <davem@davemloft.net> (maintainer:NETWORKING [GENERAL])
Eric Dumazet <edumazet@google.com> (maintainer:NETWORKING [GENERAL])
Paolo Abeni <pabeni@redhat.com> (maintainer:NETWORKING [GENERAL])
Simon Horman <horms@kernel.org> (reviewer:NETWORKING [GENERAL])
netdev@vger.kernel.org (open list:NETWORKING [GENERAL])
linux-kernel@vger.kernel.org (open list)
YAML NETLINK (YNL) status: Unknown
(do they all apply to YNL doc parser?)
Plus having doc ML/Maintainer on it:
Jonathan Corbet <corbet@lwn.net> (maintainer:DOCUMENTATION)
linux-doc@vger.kernel.org (open list:DOCUMENTATION)
So, at least the file called by the Sphinx class should be at the
linux-doc entry at the maintainers' file.
The rationale is that linux-doc and Jon should be c/c, just in case some
change there might end causing build issues using a version of the toolchain
that is officially supported, as documented at
Documentation/process/changes.rst, e.g. currently whatever it there is
expected to be compatible with:
====================== =============== ========================================
Program Minimal version Command to check the version
====================== =============== ========================================
...
Sphinx\ [#f1]_ 3.4.3 sphinx-build --version
...
Python (optional) 3.9.x python3 --version
...
This is independent if the YNL classes are either at scripts/lib
or at tools/net/ynl/pyynl/lib.
>
> > I'm more interested on having a single place where python libraries
> > could be placed.
>
> Me too, especially for selftests. But it's not clear to me that
> scripts/ is the right location. I thought purely user space code
> should live in tools/ and bulk of YNL is for user space.
Several scripts under scripts/ are meant to run outside build
time. One clear example is:
$ ./scripts/get_abi.py undefined
That basically checks if the userspace sysfs API is properly
documented, by reading the macine's sysfs node and comparing
with the uAPI documentation. Such tool can also used to check if
the ABI documentation Python classes are working as expected.
So, it is a mix of kernel build time and userspace.
There are also pure userspace tools like those two:
./scripts/get_dvb_firmware
./scripts/extract_xc3028.pl
Both extract firmware files from some other OS and write as a
Linux firmware file to be stored under /lib/firmware. They are
userspace-only tools.
-
From my side, I don't care where Python classes would be placed,
but I prefer having them on a single common place. It could be:
/scripts/lib
/tools/lib
/python/lib
eventually with their own sub-directories on it, like what we have
today:
${some_prefix}/kdoc
${some_prefix}/abi
In the case of netlink, it could be:
${some_prefix}/netlink
Yet, IMO, we should not have a different location for userspace
and non-userspace, as it is very hard to draw the borders on several
cases, like the ABI toolset.
> > Eventually, some classes might be re-used in the future
> > by multiple scripts and subsystems, when it makes sense, just like we do
> > already with Kernel's kAPIs. This also helps when checking what is the
> > Python's minimal version that are required by the Kernel when updating
> > it at:
>
> I think this is exactly the same point Donald is making, but from YNL
> perspective. The hope is to share more code between the ReST generator,
> the existing C generator and Python library. The later two are already
> based on a shared spec model.
That makes perfect sense to me. Yet, this doesn't preventing having
a:
${some_prefix}/ynl
directory where you would place Netlink YNL parsing, where the prefix
would be either:
- /scripts/lib
- /tools/lib
- /python/lib
- something else
It may even use some common classes under:
${some_prefix}/${some_common_prefix}
---
Now, seeing your comments, maybe the main point is wheather it is OK to
add userspace libraries to scripts/lib or not. IMO, using "/scripts/lib"
is OK, no matter if the script is kernel-build related or "pure userspace",
but if there are no consensus, we could migrate what we have to
"python/lib" or to some other place.
Thanks,
Mauro
next prev parent reply other threads:[~2025-06-16 10:51 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-06-14 8:55 [PATCH v4 00/14] Don't generate netlink .rst files inside $(srctree) Mauro Carvalho Chehab
2025-06-14 8:55 ` [PATCH v4 01/14] tools: ynl_gen_rst.py: create a top-level reference Mauro Carvalho Chehab
2025-06-14 8:55 ` [PATCH v4 02/14] docs: netlink: netlink-raw.rst: use :ref: instead of :doc: Mauro Carvalho Chehab
2025-06-14 8:55 ` [PATCH v4 03/14] docs: netlink: don't ignore generated rst files Mauro Carvalho Chehab
2025-06-14 8:55 ` [PATCH v4 04/14] tools: ynl_gen_rst.py: make the index parser more generic Mauro Carvalho Chehab
2025-06-14 13:41 ` Donald Hunter
2025-06-14 14:58 ` Mauro Carvalho Chehab
2025-06-14 8:55 ` [PATCH v4 05/14] tools: ynl_gen_rst.py: Split library from command line tool Mauro Carvalho Chehab
2025-06-14 14:09 ` Donald Hunter
2025-06-14 8:56 ` [PATCH v4 06/14] scripts: lib: netlink_yml_parser.py: use classes Mauro Carvalho Chehab
2025-06-14 14:11 ` Donald Hunter
2025-06-14 8:56 ` [PATCH v4 07/14] tools: ynl_gen_rst.py: move index.rst generator to the script Mauro Carvalho Chehab
2025-06-14 14:15 ` Donald Hunter
2025-06-14 15:35 ` Mauro Carvalho Chehab
2025-06-14 8:56 ` [PATCH v4 08/14] docs: sphinx: add a parser for yaml files for Netlink specs Mauro Carvalho Chehab
2025-06-14 8:56 ` [PATCH v4 09/14] docs: use parser_yaml extension to handle " Mauro Carvalho Chehab
2025-06-14 8:56 ` [PATCH v4 10/14] docs: conf.py: don't handle yaml files outside " Mauro Carvalho Chehab
2025-06-14 8:56 ` [PATCH v4 11/14] docs: uapi: netlink: update netlink specs link Mauro Carvalho Chehab
2025-06-14 8:56 ` [PATCH v4 12/14] MAINTAINERS: add maintainers for netlink_yml_parser.py Mauro Carvalho Chehab
2025-06-14 14:22 ` Donald Hunter
2025-06-14 15:32 ` Mauro Carvalho Chehab
2025-06-14 17:37 ` Jakub Kicinski
2025-06-14 18:56 ` Mauro Carvalho Chehab
2025-06-14 19:46 ` Jakub Kicinski
2025-06-16 10:51 ` Mauro Carvalho Chehab [this message]
2025-06-19 20:06 ` Jonathan Corbet
2025-06-20 15:31 ` Mauro Carvalho Chehab
2025-06-14 8:56 ` [PATCH v4 13/14] docs: Makefile: disable check rules on make cleandocs Mauro Carvalho Chehab
2025-06-14 8:56 ` [PATCH v4 14/14] docs: conf.py: properly handle include and exclude patterns 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=20250616125106.5d7fd18f@foz.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=kuba@kernel.org \
--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=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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).