From 98e86fd219247ba44c8514d84fe51d63c6f732a8 Mon Sep 17 00:00:00 2001 From: Max Isbey <224885523+maxisbey@users.noreply.github.com> Date: Mon, 10 Nov 2025 20:23:00 +0000 Subject: [PATCH] Fix CI dependency resolution tests to actually test target versions The dependency resolution tests were using --frozen flag (for highest) or no upgrade flag (for lowest-direct), which meant both tests just used whatever was locked in uv.lock from the main branch rather than actually resolving to the target versions. This caused the CI to miss breaking changes in new dependency versions (like pydantic 2.12) that were compatible with version constraints but not yet in the lockfile. Changes: - Use --upgrade --resolution highest for the highest resolution test - Use --upgrade --resolution lowest-direct for the lowest resolution test (both need --upgrade to ignore lockfile and re-resolve) - Simplify test execution to use --frozen --no-sync since resolution already happened during uv sync - Remove redundant UV_RESOLUTION env var (command-line flags suffice) This ensures both tests actually resolve to their intended versions and catch compatibility issues before they reach main. --- .github/workflows/shared.yml | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/.github/workflows/shared.yml b/.github/workflows/shared.yml index a39b70313..531487db5 100644 --- a/.github/workflows/shared.yml +++ b/.github/workflows/shared.yml @@ -38,9 +38,9 @@ jobs: python-version: ["3.10", "3.11", "3.12", "3.13"] dep-resolution: - name: lowest-direct - install-flags: "--resolution lowest-direct" + install-flags: "--upgrade --resolution lowest-direct" - name: highest - install-flags: "--frozen" + install-flags: "--upgrade --resolution highest" os: [ubuntu-latest, windows-latest] steps: @@ -57,11 +57,9 @@ jobs: - name: Run pytest with coverage run: | - uv run ${{ matrix.dep-resolution.install-flags }} --no-sync coverage run -m pytest - uv run ${{ matrix.dep-resolution.install-flags }} --no-sync coverage combine - uv run ${{ matrix.dep-resolution.install-flags }} --no-sync coverage report - env: - UV_RESOLUTION: ${{ matrix.dep-resolution.name == 'lowest-direct' && 'lowest-direct' || 'highest' }} + uv run --frozen --no-sync coverage run -m pytest + uv run --frozen --no-sync coverage combine + uv run --frozen --no-sync coverage report readme-snippets: runs-on: ubuntu-latest