From 5c778922055e7c81aed69811dc6ba60eac6c3932 Mon Sep 17 00:00:00 2001 From: Artur Shiriev Date: Sun, 27 Sep 2026 17:50:25 +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 195f668..ad603ee 100644 --- a/.github/workflows/_checks.yml +++ b/.github/workflows/_checks.yml @@ -68,10 +68,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 links: diff --git a/pyproject.toml b/pyproject.toml index 704749b..bca73d1 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -38,7 +38,6 @@ Issues = "https://github.com/modern-python/modern-di-aiogram/issues" Changelog = "https://github.com/modern-python/modern-di-aiogram/releases" [dependency-groups] -# Floored so `uv sync --resolution lowest-direct` resolves a usable harness, not each name's first release. dev = [ "pytest>=8", "pytest-cov>=5", From c78c9873d32da921a02167e0ceaa9efacd431594 Mon Sep 17 00:00:00 2001 From: Artur Shiriev Date: Sun, 27 Sep 2026 17:59:58 +0300 Subject: [PATCH 2/2] fix(deps): floor aiogram per interpreter at the first release its wheel floors admit --- pyproject.toml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index bca73d1..b5d7a48 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -19,7 +19,11 @@ classifiers = [ "Topic :: Software Development :: Libraries", ] dependencies = [ - "aiogram>=3.2,<4", + "aiogram>=3.2,<4; python_version < '3.13'", + # The first releases whose pins admit the wheel floors below: 3.11 for aiohttp 3.10.5, 3.23 for + # pydantic 2.12. + "aiogram>=3.11,<4; python_version == '3.13'", + "aiogram>=3.23,<4; python_version >= '3.14'", # Not imported here: aiogram 3.2 pins both to versions with no wheel for these interpreters - # pydantic-core gets a cp314 wheel at pydantic 2.12, aiohttp a cp313 one at 3.10.5 and a # cp314 one at 3.13.