From 77c90b2d124ca113694422c6a2b0cdcaefbf1b45 Mon Sep 17 00:00:00 2001 From: Artur Shiriev Date: Sun, 27 Sep 2026 17:50:04 +0300 Subject: [PATCH 1/2] ci: pin the declared floors before installing them wheel-only --- .github/workflows/_checks.yml | 8 ++++---- pyproject.toml | 1 - 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/_checks.yml b/.github/workflows/_checks.yml index ac9d235..f78d92d 100644 --- a/.github/workflows/_checks.yml +++ b/.github/workflows/_checks.yml @@ -99,10 +99,10 @@ jobs: cache-dependency-glob: "**/pyproject.toml" - run: uv python install ${{ matrix.python-version }} - run: uv python pin ${{ matrix.python-version }} - # --no-build so a floor with no wheel for this interpreter fails here instead of - # quietly compiling its sdist; --no-install-project because that flag would refuse to - # build this project too, and the tests import it from the checkout. - - run: uv sync --all-extras --no-install-project --resolution lowest-direct --no-build + - run: uv venv + # Pinned with builds allowed, so a floor with no wheel fails the wheel-only install below. + - run: uv pip compile pyproject.toml --all-extras --no-deps --resolution lowest-direct -o floors.txt + - run: uv pip install -r pyproject.toml --all-extras --group dev --constraints floors.txt --no-build - run: uv run --no-sync pytest env: PYTHONDONTWRITEBYTECODE: 1 diff --git a/pyproject.toml b/pyproject.toml index 73ccb28..6a1a79e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -34,7 +34,6 @@ dependencies = [ ] [dependency-groups] -# Floored so `uv sync --resolution lowest-direct` resolves a usable harness, not each name's first release. dev = [ "pytest>=8", "pytest-asyncio>=0.24", From 1a83a61ab6d317166a1e11c7c9b39be1b86350ac Mon Sep 17 00:00:00 2001 From: Artur Shiriev Date: Sun, 27 Sep 2026 17:59:49 +0300 Subject: [PATCH 2/2] fix(deps): floor typing-extensions at what pydantic 2.12 requires on 3.14 --- pyproject.toml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pyproject.toml b/pyproject.toml index 6a1a79e..e5f1428 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -31,6 +31,8 @@ dependencies = [ # 4.12.2, not 4.12.0: pydantic requires >=4.12.2 on 3.13+, and pinning 4.12.0 drags pydantic # back to a build whose pydantic-core has no cp313 wheel either. "typing-extensions>=4.12.2", + # pydantic 2.12, the 3.14 floor above, requires >=4.14.1. + "typing-extensions>=4.14.1; python_version >= '3.14'", ] [dependency-groups]