Problem
docs/rtd-requirements.txt pins sphinx<=6.2.1 (April 2023; Sphinx is on 8.x) while the RTD image is otherwise current — an increasingly tight constraint on theme/extension versions and a latent docs-build failure.
- The same file re-declares runtime floors (
numba>=0.49, numpy>=1.17, scipy>=1.5) — a second copy of metadata the install-metadata issue in this milestone is changing; it will drift (and already has).
docs/sphinxext/ vendors three ~2014 IPython/matplotlib extensions (ipython_directive.py, ipython_console_highlighting.py, only_directives.py). conf.py puts the directory on sys.path but its extensions list loads IPython.sphinxext.* — the maintained upstream versions — so the vendored copies are pure dead weight.
Proposed change
- Delete
docs/sphinxext/ and the sys.path.insert for it in conf.py; confirm the IPython-shipped directives cover current usage.
- Unpin Sphinx (or float a modern floor,
sphinx>=8); rebuild on RTD; fix whatever surfaces (typically theme/config deprecations).
- Collapse the duplicated runtime floors: the RTD config already pip-installs the package, so
rtd-requirements.txt should hold docs-only tools (sphinx, theme, numpydoc, ipython, matplotlib).
Content/generator work (#854, #852, #169) is out of scope — this is the toolchain under it.
Acceptance criteria
From the July 2026 technical-debt audit (AI-assisted; claims verified against 28d4b3b on 2026-07-25).
Problem
docs/rtd-requirements.txtpinssphinx<=6.2.1(April 2023; Sphinx is on 8.x) while the RTD image is otherwise current — an increasingly tight constraint on theme/extension versions and a latent docs-build failure.numba>=0.49,numpy>=1.17,scipy>=1.5) — a second copy of metadata the install-metadata issue in this milestone is changing; it will drift (and already has).docs/sphinxext/vendors three ~2014 IPython/matplotlib extensions (ipython_directive.py,ipython_console_highlighting.py,only_directives.py).conf.pyputs the directory onsys.pathbut itsextensionslist loadsIPython.sphinxext.*— the maintained upstream versions — so the vendored copies are pure dead weight.Proposed change
docs/sphinxext/and thesys.path.insertfor it inconf.py; confirm the IPython-shipped directives cover current usage.sphinx>=8); rebuild on RTD; fix whatever surfaces (typically theme/config deprecations).rtd-requirements.txtshould hold docs-only tools (sphinx, theme, numpydoc, ipython, matplotlib).Content/generator work (#854, #852, #169) is out of scope — this is the toolchain under it.
Acceptance criteria
docs/sphinxext/; zero new build warnings (or enumerated and issue-linked)pyproject.toml)From the July 2026 technical-debt audit (AI-assisted; claims verified against
28d4b3bon 2026-07-25).