Skip to content

ci: standardize uv version selection across workflows #1094

Open

Description

@nabinchha

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-uv steps and [tool.uv].required-version declarations, 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-directory to locate the intended pyproject.toml instead of relying on the default checkout path.
  • Preserve independent Python selection for inline scripts; do not introduce an unnecessary UV_PYTHON override 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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    taskInternal development task

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions