Conversation
There was a problem hiding this comment.
Pull request overview
Updates GitHub Actions workflows to install Python tooling and project dependencies via uv (using astral-sh/setup-uv) instead of actions/setup-python + pip, aiming to simplify setup and leverage uv caching.
Changes:
- Replaced
actions/setup-python+pip installsteps withastral-sh/setup-uv+uv pip installacross CI, lint/format, docs, and notebook workflows. - Enabled
uvcaching (enable-cache: true) in the updated workflows. - Simplified/removed explicit pip caching and pip upgrade steps where
uvis now used.
Reviewed changes
Copilot reviewed 12 out of 12 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
| .github/workflows/test_installer.yaml | Switches installer test workflow to create a venv with uv and install the package using uv pip. |
| .github/workflows/spec_tests.yaml | Uses uv to install test dependencies before running spec tests. |
| .github/workflows/ruff.yaml | Installs Ruff via uv and runs lint checks. |
| .github/workflows/notebook_tests.yaml | Installs example dependencies via uv before running notebook-related tests. |
| .github/workflows/mdformat.yaml | Installs mdformat tooling via uv and runs formatting checks. |
| .github/workflows/links.yaml | Installs docs dependencies via uv before building docs and running link checking. |
| .github/workflows/docs.yaml | Uses uv for docs dependencies and removes separate pip cache step. |
| .github/workflows/codespell.yaml | Installs codespell dependencies via uv and runs spelling checks. |
| .github/workflows/ci_windows.yaml | Uses uv to install test dependencies on Windows CI. |
| .github/workflows/ci_cov.yaml | Uses uv to install coverage/lint/test deps before coverage workflow steps. |
| .github/workflows/ci.yaml | Uses uv to install docs/test dependencies in the main CI workflow. |
| .github/workflows/black.yaml | Installs Black via uv and runs formatting checks. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
PR Review: Updated actions to use uvThis PR cleanly migrates all 12 CI workflows from ImportantWrong base branch: Per project conventions ( Suggestion
uv pip install $GITHUB_WORKSPACEShould be: uv pip install "$GITHUB_WORKSPACE"This is a shell best-practice — workspace paths rarely have spaces in GitHub Actions, but quoting is cheap insurance. Positive notes
|
PR Review: Updated actions to use uvThis PR consistently migrates all 12 CI workflows from SummaryNo critical or blocking issues found. Positive changes
Suggestion
|
|
The PR is a clean, consistent migration of all 12 CI workflows from actions/setup-python + pip to astral-sh/setup-uv@v5 + uv pip. The approach is correct and follows the recommended pattern for using uv in CI. What is done well:
Suggestion: No critical or important issues found. |
PR Review: Updated actions to use uvThis PR consistently migrates all 12 CI workflows from What is done correctly
Minor note
|
PR Review: Updated actions to use uvOverall: The migration from Two suggestions below: Suggestion 1: Inconsistent venv approaches across workflowsFour workflows ( The Suggestion 2: Unquoted extras specifiersLines like |
PR Review: Updated actions to use uvOverall this is a good migration from Important:
|
PR Review: Updated actions to use uvThe migration from setup-python + pip to astral-sh/setup-uv is the right direction. uv provides faster installs and built-in caching. The overall structure is sound. A few issues need attention before merging. Importantci_windows.yaml: Implicit PowerShell dependency without shell: pwsh The Create virtual environment step uses Add-Content $env:GITHUB_PATH (PowerShell-only syntax) in a run block with no explicit shell declaration. Windows runners default to pwsh, so this works today, but it creates a silent fragility: if defaults: run: shell: bash is ever added at the workflow or job level, this step breaks without a clear error. Annotate it explicitly with shell: pwsh on the step. SuggestionsInconsistent venv management across workflows Four linting workflows (black.yaml, codespell.yaml, mdformat.yaml, ruff.yaml) use uv pip install --python .venv/bin/python and uv run --python .venv/bin/python, while the other eight add .venv/bin to GITHUB_PATH and invoke commands directly. Both approaches are correct, but the inconsistency adds cognitive overhead when maintaining the workflows. Consider standardising on the GITHUB_PATH pattern used by ci.yaml, ci_cov.yaml, etc. ruff.yaml: missing trailing newline at end of file The final line ruff check . has no trailing newline (flagged by No newline at end of file in the diff). Add a newline for POSIX compliance and clean diffs. CLAUDE.md fixThe correction from develop to main as the PR target branch is correct. |
PR Review: Updated actions to use uvOverall: The migration is well-structured and consistent across all 12 workflows. No critical or important issues found. Positive Changes
Suggestions (minor)
|
No description provided.