Thread (67 messages) 67 messages, 5 authors, 2025-09-15

Re: [PATCH v4 10/19] tools/docs: sphinx-build-wrapper: add support to run inside venv

From: Mauro Carvalho Chehab <mchehab+huawei@kernel.org>
Date: 2025-09-12 12:34:18
Also in: lkml

On Fri, Sep 12, 2025 at 12:22:42PM +0300, Jani Nikula wrote:
On Fri, 12 Sep 2025, Mauro Carvalho Chehab [off-list ref] wrote:
quoted
Em Wed, 10 Sep 2025 13:51:40 +0300
Jani Nikula [off-list ref] escreveu:
quoted
On Thu, 04 Sep 2025, Mauro Carvalho Chehab [off-list ref] wrote:
quoted
Sometimes, it is desired to run Sphinx from a virtual environment.
Add a command line parameter to automatically build Sphinx from
such environment.  
Why?
In my case, to be able to test build with different Sphinx versions.
On some distros, only venv works.
I mean why add the complexity of running inside a venv in the wrapper.
I don't think it venv support is complex.
quoted
quoted
If you want Sphinx from a virtual environment, you enter the
environment, and run the regular build, with sphinx-build from the PATH
that points at the venv.
when you do that, ./scripts/spdxcheck.py breaks, affecting checkpatch.
Then you could turn the whole argument around, and say spdxcheck.py
should jump through venv and dependency hoops instead of the docs build.
Neither spdxcheck.py nor checkpatch recommends venv; make docs targets do.
The point is, it should be the user's responsibility to deal with the
environment and the dependencies.

If they're setting up a virtual environment, and it affects checkpatch,
then they should also include the spdxcheck.py dependencies in the
virtual environment.
They are because we're recommending it.
This feels like reinventing pipx in a Sphinx wrapper.

We should *reduce* the complexity, not increase it.
Complexity is not the issue: There are several things a the Kernel
tree that are complex. Here, the entire wrapper script (not counting
blank lines/comments) is not more than ~300 lines of code, splitted
on multiple functions. This is not complex.

The big issue is what we have now where docs makefile is full of
hacks:

    - scripts to workaround issues;
    - "|| exit" to fix broken latexmk/xelatex error outputs;
    - "+" to use GNU make parallelism;
    - complex call macros;
    - ...

None of those documented.

Liking or not, this series as a whole makes a lot clearer what
is done to build preparation, Sphinx build and post-build steps
that are required to produce Kernel docs. Also, almost half of
it is documentation. IMHO, a lot better from what we have so
far.

-- 
Thanks,
Mauro
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help