[PATCH 0/4] docs: test_doc_build: Test up to Sphinx 9.1.0

From: Mauro Carvalho Chehab

Date: Thu Oct 15 2026 - 05:08:24 EST


Hi Jon,

This small patch series extend test_doc_build to cover up to
Sphinx version 9.1.0.

I didn't use AI to write code changes on this series. All manual
work. I did use it to help me identifying what versions are
relevant. After such "AI browsing", I double-checked references
and ended not adding version 9.0.0 at the DEFAULT_VERSIONS_TO_TEST,
as I didn't find a major distro using it.

With that, I kept there version 8.1.3, as Debian trixie uses it
(I removed Fedora 42 from comments, as this is already EOL).

Version 8.2.3 is on an Ubuntu LTS version (being the one on
my machine which has Fedora 44).

Version 9.1.0 is the current latest version, so it is used at
the rolling version distributions.

Also pointed by LLM, version 9.0.0 comes with a new dependency.
I could have simply ommitted that, since pip should automatically
add it, but I opted to map it there with its minimal requirement,
as this way it would be easier to track changes on future
Sphinx versions.

On this series:

patch 1 improves python version detection, as there are version
deprecations on newer Sphinx versions. It also makes the logic
more generic, as the current logic was limited up to Python 3.14.

patch 2 adds the new entries at +PYTHON_VER_CHANGES, SPHINX_REQUIREMENTS
and DEFAULT_VERSIONS_TO_TEST.

patch 3 solves pylint issues.

patch 4 addresses a minor issue related to urllib3 2.0.

After running the new script, it now reports with
tools/docs/test_doc_build.py -b on its summary:

Sphinx 3.4.3 elapsed time: 00:10:23
Sphinx 5.3.0 elapsed time: 00:09:27
Sphinx 6.1.1 elapsed time: 00:33:15
Sphinx 7.2.1 elapsed time: 00:09:22
Sphinx 7.2.6 elapsed time: 00:09:21
Sphinx 7.3.0 elapsed time: 00:09:36
Sphinx 7.4.7 elapsed time: 00:04:44
Sphinx 8.1.3 elapsed time: 00:04:59
Sphinx 8.2.3 elapsed time: 00:05:00
Sphinx 9.1.0 elapsed time: 00:05:01

And the logic properly used different python versions starting
from python3.10 (which is the minimal one I have installed on
my local machine):

Sphinx 3.4.3 with /usr/bin/python3.9
...
Sphinx 7.4.7 with /usr/bin/python3.9
Sphinx 8.0.0 with /usr/bin/python3.10
Sphinx 8.1.0 with /usr/bin/python3.11
...
Sphinx 9.0.0 with /usr/bin/python3.11
Sphinx 9.1.0 with /usr/bin/python3.12

Mauro Carvalho Chehab (4):
docs: test_doc_build: better handle python version
docs: test_doc_build: update it to support newer Sphinx versions
docs: test_doc_build: address pylint warnings
docs: test_doc_build: don't select urllib3 yanked version

tools/docs/test_doc_build.py | 120 +++++++++++++++++++++++------------
1 file changed, 81 insertions(+), 39 deletions(-)

--
2.56.0