Support uv as an optional, faster installer (with CI tests) - #61
Open
arunoruto wants to merge 2 commits into
Open
Support uv as an optional, faster installer (with CI tests)#61arunoruto wants to merge 2 commits into
arunoruto wants to merge 2 commits into
Conversation
…stallation Add an opt-in `installer` input (default: `pip`) that switches all dependency installation to `uv pip install --system`. Installs target the interpreter provided by setup-python directly, so no virtual environment is needed and all existing inputs (requirements_path, pyproject_extras, pyproject_group, sphinx_version, cache) work unchanged. uv itself is provisioned via the official astral-sh/setup-uv action, with its cache tied to the existing `cache` input. Closes sphinx-notes#43
Build the repository's own documentation through the local action (publish: false) for every combination of installer (pip, uv) and cache (false, true), and assert that HTML output is produced.
arunoruto
force-pushed
the
feat/uv-installer
branch
from
August 4, 2026 17:11
d875a80 to
0ecfeff
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Closes #43, supersedes #58.
On #58, @SilverRainZ asked for this to be "optional and fully tested" — this PR is built around exactly that:
Optional: a new
installerinput, defaultpip. Nothing changes for existing users;installer: uvis pure opt-in, and unknown values fail fast with a clear error.Fully tested: a new
test.ymlworkflow builds this repository's own docs through the local action (publish: false) across the full matrix ofinstaller(pip, uv) ×cache(false, true), and asserts HTML output exists. It runs on every future PR, so the repo gains regression CI beyond this feature. Green run on my fork: https://github.com/arunoruto/sphinx-pages/actions/runs/30932486228 (uv jobs: 16–17s, pip jobs: 20–23s — even on this small docs project).How it differs from #58
uv venv+source activate, all uv installs useuv pip install --system, targeting the same setup-python interpreter that pip uses. This eliminates the venv/cache interaction concern raised in use uv #58 — thecacheinput works identically for both installers (covered by the test matrix).pyproject_grouppath added in feat: support installing PEP 735 dependency groups from pyproject.toml #60: uv supports--group pyproject.toml:NAMEnatively, so the pip ≥ 25.1 self-upgrade is skipped on the uv path.v9.0.0; setup-uv no longer publishes major tags), with its cache tied to the existingcacheinput. Wheninstaller: uv, the pointless pip cache in setup-python is skipped.pip3 installcall sites route through one smallpkg_install()wrapper inmain.sh, so future install paths automatically support both installers. As a drive-by,sphinxnotes-incrbuild>=1.0is now quoted — previously the unquoted>=was parsed as a shell redirection.README documents the new input and a short "Speed up installation with uv" tip.
🤖 Generated with Claude Code