Skip to content

ci(docs): build API docs from uv.lock instead of a fresh PyPI resolve - #365

Merged
cailmdaley merged 1 commit into
developfrom
ci/docs-from-lock
Sep 28, 2026
Merged

cailmdaley merged 1 commit into
developfrom
ci/docs-from-lock

Conversation

@cailmdaley

Copy link
Copy Markdown
Collaborator

The docs job ran uv pip install '.[docs]' inside the image. That re-resolves the whole environment from PyPI, so an unrelated upstream release can fail every PR's docs check. The latest example is shear-psf-leakage 0.2.1 against cs-util 0.2.2's scipy cap.

This PR installs the docs from the lock instead:

  • uv sync --frozen --inexact --extra docs installs exactly what the checkout's uv.lock pins into the image's venv, and leaves the rest of the image's stack in place.
  • uv pip install --no-deps -e . then installs the checked-out package on top. The project isn't uv-packaged, so without this line autodoc would document the copy baked into the image.
  • PRs now build docs only when docs/, src/, pyproject.toml, uv.lock or this workflow change.
  • Deployment is unchanged: pushes to develop deploy to Pages.

I checked it locally in the :develop SIF: the sync installs only locked versions and the Sphinx build completes against the checkout. This works together with #362, whichever merges first.

— Claude (Opus) on behalf of Cail

🤖 Generated with Claude Code

The docs job ran `uv pip install '.[docs]'`, which re-resolves the whole
environment and breaks on unrelated upstream releases. Sync the checkout's
lock (docs extra, --frozen --inexact) into the image's venv and install the
checkout --no-deps on top. PRs build docs only when docs inputs change.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01Uemfjv9ybCwtKtprksZbVY
@cailmdaley
cailmdaley merged commit fdb7c5e into develop Sep 28, 2026
3 checks passed
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