Skip to content

Commit 4ff5dad

Browse files
igerberclaude
andcommitted
ci: add Python 3.9 docs-deps install smoke job
The existing sphinx-build job runs on Python 3.11 to mirror RTD. This new job runs the same pip install line on Python 3.9 to validate the docs dependency floor against the project's declared minimum Python (pyproject.toml requires-python>=3.9). Catches drift where a docs dep upgrade silently requires a newer Python than the project advertises - exactly the constraint that drove the previous commit's choice of pydata-sphinx-theme>=0.16.1 (vs 0.17.1, which requires Python>=3.10). The job only installs deps. Full Sphinx build remains exclusively on the 3.11 sphinx-build job; this is a fast install-only smoke (~30s). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
1 parent 357facf commit 4ff5dad

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

.github/workflows/docs-tests.yml

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,3 +101,34 @@ jobs:
101101
# PR #410 brought make html to 0 warnings; -W keeps it that way by
102102
# blocking any new warning from sneaking in.
103103
run: make -C docs html SPHINXOPTS="-W"
104+
105+
docs-deps-py39-smoke:
106+
name: Validate docs deps install on Python 3.9 (floor compat)
107+
if: >-
108+
github.event_name != 'pull_request'
109+
|| contains(github.event.pull_request.labels.*.name, 'ready-for-ci')
110+
runs-on: ubuntu-latest
111+
112+
steps:
113+
- uses: actions/checkout@v6
114+
115+
- name: Set up Python 3.9
116+
uses: actions/setup-python@v6
117+
with:
118+
# 3.9 is the project's declared floor (pyproject.toml requires-python
119+
# >=3.9). The sphinx-build job above runs on 3.11; this job verifies
120+
# the docs dependency set actually installs on the floor Python so
121+
# we catch drift like pydata-sphinx-theme>=0.17.1 (which requires
122+
# Python>=3.10) before it lands.
123+
python-version: '3.9'
124+
125+
- name: Install docs dependencies
126+
# Same pip install line as sphinx-build above. Just installs - does
127+
# not run a Sphinx build (sphinx-build covers full rendering on 3.11).
128+
# Failure here means the docs floor declared in pyproject.toml /
129+
# .readthedocs.yaml / above is not installable on Python 3.9.
130+
run: pip install "numpy>=1.20.0" "pandas>=1.3.0" "scipy>=1.7.0" "sphinx>=6.0" "pydata-sphinx-theme>=0.16.1" "sphinxext-opengraph>=0.9" "sphinx-sitemap>=2.5" "nbsphinx>=0.9" "matplotlib>=3.5" "ipython>=8.0"
131+
132+
- name: Confirm pydata-sphinx-theme version
133+
# Surface the resolved version in the log for future debugging.
134+
run: pip show pydata-sphinx-theme | head -3

0 commit comments

Comments
 (0)