Repository navigation
ci: standardize uv version selection across workflows #1094
Description
Priority Level
Low
Task Summary
Standardize uv version selection across GitHub Actions workflows and project configuration so updates follow one clear policy rather than a mix of floating and pinned versions.
Technical Details & Implementation Plan
- Inventory all
astral-sh/setup-uvsteps and[tool.uv].required-versiondeclarations, including the workspace and e2e project. - Choose and document one repository-wide version policy and update mechanism. One option is an exact authoritative uv version with setup-uv reading that declaration instead of repeating
version:in every job; decide whether the project requirement should remain a compatibility minimum or also serve as the CI pin. - Apply the chosen convention consistently across test, health-check, Colab, notebook, documentation, and dependency-security workflows.
- Handle Fern workflows that check out repositories into subdirectories: configure setup-uv's
working-directoryto locate the intendedpyproject.tomlinstead of relying on the default checkout path. - Preserve independent Python selection for inline scripts; do not introduce an unnecessary
UV_PYTHONoverride as part of uv version selection.
Acceptance criteria:
- CI uv version selection and project compatibility requirements have a documented, consistent relationship.
- Redundant per-job pins or floating-version settings are removed or made consistent with the selected policy.
- Setup resolves the intended uv version for both root and Fern subdirectory checkouts.
- Lockfile checks, dependency audits, the constraints exporter, and representative test/docs validation pass using the selected version. Validate docs without publishing them.
- The process for bumping uv does not require independently updating scattered workflow values.
Investigation / Context
Follow-up to #1093 and Aaron's review thread, including the agreement to handle this separately.
At review time, the repository mixed setup-uv version: "latest" and version: "0.13.4", while project configuration declared required-version = ">=0.13.4". Omitting setup-uv's version while retaining that range selects a matching version; it does not reproduce an exact 0.13.4 pin. Treat the policy choice as explicit rather than assuming removal of workflow pins preserves existing behavior.
Relevant workflows include ci.yml, health-checks.yml, check-colab-notebooks.yml, build-notebooks.yml, docs-preview.yml, build-fern-docs.yml, publish-fern-devnotes.yml, and dependency-security.yml.
Dependencies
No blocker for #1093. Keep this repository-wide cleanup separate from its dependency security changes.
Activity