Skip to content

🧪 TEST: cover Sphinx 8 on py312 in the CI pytest matrix#11

Merged
ubmarco merged 1 commit into
mainfrom
worktree-ci-py312-sphinx8
Jun 14, 2026
Merged

🧪 TEST: cover Sphinx 8 on py312 in the CI pytest matrix#11
ubmarco merged 1 commit into
mainfrom
worktree-ci-py312-sphinx8

Conversation

@ubmarco

@ubmarco ubmarco commented Jun 14, 2026

Copy link
Copy Markdown
Member

Summary

  • Add a py312-sphinx8 cell to the CI pytest matrix, between the existing py312-sphinx7 and py312-sphinx9 cells.
  • The matrix previously tested py312 only against the lower (sphinx7, i.e. >=7.4) and upper (sphinx9, i.e. <10) bounds of the supported sphinx>=7.4,<10 range, skipping Sphinx 8 in the middle. This gives full 7/8/9 coverage on py312/ubuntu.
  • CI-only change: the py312-sphinx8 tox env already exists via the py{312,313,314}-sphinx{7,8,9} factor expansion in tox.ini; this just wires it into the workflow.

Test Plan

  • tox -e py312-sphinx8 resolves Sphinx 8.x (sphinx<9,>=8) and the suite passes locally — 143 passed, bazel tests deselected
  • ci.yml parses as valid YAML; py312-sphinx8 present in the pytest matrix
  • prek hooks pass on the changed file (end-of-file / trailing-whitespace)
  • The new py312-sphinx8 CI cell goes green on this PR

The pytest matrix exercised py312 against Sphinx 7 (the >=7.4 lower
bound) and Sphinx 9 (the <10 upper bound) but skipped Sphinx 8, leaving
the middle of the supported `sphinx>=7.4,<10` range untested. Add a
`py312-sphinx8` cell so the full 7/8/9 span is covered on py312/ubuntu.

The `py312-sphinx8` tox env already exists via the
`py{312,313,314}-sphinx{7,8,9}` factor expansion; this only wires it
into CI. Verified locally: the env resolves Sphinx 8.x and the suite
passes (143 passed, bazel tests deselected).
@ubmarco ubmarco merged commit 141922f into main Jun 14, 2026
12 checks passed
@ubmarco ubmarco deleted the worktree-ci-py312-sphinx8 branch June 14, 2026 21:09
@ubmarco ubmarco mentioned this pull request Jun 14, 2026
ubmarco added a commit that referenced this pull request Jun 14, 2026
Bump version 0.1.0 → 0.1.1 (pyproject.toml, package __version__, and the
uv.lock self-entry) and stamp the accumulated Unreleased changelog entries
as the 0.1.1 release, dated 2026-06-14:

- per-mount path_check option for mounted-bundle path confinement (#7)
- regression coverage proving absolute diagnostic locations for mounted
  docs (#9)
- regression coverage proving incremental rebuilds re-read mounted docs
  when their files / include targets change (#10)
- CI matrix extended to cover Sphinx 8 on Python 3.12 — full 7/8/9
  coverage on py312 (#11)
ubmarco added a commit that referenced this pull request Jun 14, 2026
## Release 0.1.1

Version bump `0.1.0 → 0.1.1` plus changelog stamp. No library code
changes — this is release-prep only.

### Changes
- `pyproject.toml` + `src/sphinx_mounts/__init__.py`: version `0.1.0 →
0.1.1`
- `uv.lock`: own-package version synced to `0.1.1`
- `docs/source/changelog.rst`: the accumulated `Unreleased` entries are
stamped as the `0.1.1` release (dated 2026-06-14), matching the `0.1.0`
block's format (label + `:Released:`), with no empty `Unreleased`
section left behind — same convention the `0.1.0` tag used.

### Included in 0.1.1
- **Per-mount `path_check`** option (`"error"` default / `"warn"` /
`"off"`) that confines mounted-bundle directives to the bundle root (#7)
- Regression coverage proving **absolute diagnostic locations** for
mounted docs (#9)
- Regression coverage proving **incremental rebuilds re-read** mounted
docs when their files / include targets change (#10)
- **Sphinx 8 CI coverage** — the matrix now exercises Sphinx 8 on Python
3.12 (full 7/8/9 coverage) (#11)

### Intentionally excluded from the changelog
- **#6 (`html_extra_path` example)** — the commit itself notes this is
stock Sphinx composing with mounts, *not* a sphinx-mounts feature; only
`tests/example/` + `tests/` changed, no `src/`.
- **#8** — CI-only (Bazel doc-build wiring).
- **#4** — docs-site sidebar link (cosmetic).

### Verification
- `uv run prek run` — all hooks pass (the CI `Prek` gate)
- `uvx ruff@0.12.2 format --check` — already formatted (CI's pinned
ruff)
- `sphinx-build -nW --keep-going` — docs build succeeds; changelog
renders

### After merge
Publishing is tag-driven (PyPI Trusted Publishing via `release.yaml`).
To cut the release:

```bash
git tag -a 0.1.1 -m "Release 0.1.1"
git push origin 0.1.1
```

The bare-semver tag (`0.1.1`, no `v`) matches the workflow trigger and
publishes to PyPI.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant