sqlalchemy[asyncio] is declared with no lower bound at all, so the declared range admits every SQLAlchemy ever published. Resolved at the bottom it picks 0.1.0, released in 2006, and the install fails outright:
Failed to build `sqlalchemy==0.1.0`
This is not a stale floor — there is no floor. It fails on 3.11 and 3.14, so nothing in the supported range installs at the declared minimum.
Nothing reports it: every gate resolves highest, so the bottom of the range is never exercised.
Reproduce
uv venv --python 3.11 .venv-lowest
VIRTUAL_ENV=.venv-lowest uv pip install --resolution lowest-direct .
Fix
Declare a real floor. Pick the oldest SQLAlchemy this package actually works with and verify it by installing at that version and running the suite, rather than choosing a round number. If the answer differs per interpreter, mark it (sqlalchemy[asyncio]>=X; python_version >= '3.13'), the way faststream-outbox does after modern-python/faststream-outbox#186.
Found by a lower-bound audit across the org, prompted by modern-python/.github#107. That issue proposes a CI job that would catch this class of defect standing; right now every gate resolves highest, so no floor is ever exercised.
13 of 23 repos audited had at least one broken floor. faststream-outbox had six and is now green at the lower bound on every supported interpreter.
sqlalchemy[asyncio]is declared with no lower bound at all, so the declared range admits every SQLAlchemy ever published. Resolved at the bottom it picks 0.1.0, released in 2006, and the install fails outright:This is not a stale floor — there is no floor. It fails on 3.11 and 3.14, so nothing in the supported range installs at the declared minimum.
Nothing reports it: every gate resolves highest, so the bottom of the range is never exercised.
Reproduce
uv venv --python 3.11 .venv-lowest VIRTUAL_ENV=.venv-lowest uv pip install --resolution lowest-direct .Fix
Declare a real floor. Pick the oldest SQLAlchemy this package actually works with and verify it by installing at that version and running the suite, rather than choosing a round number. If the answer differs per interpreter, mark it (
sqlalchemy[asyncio]>=X; python_version >= '3.13'), the wayfaststream-outboxdoes after modern-python/faststream-outbox#186.Found by a lower-bound audit across the org, prompted by modern-python/.github#107. That issue proposes a CI job that would catch this class of defect standing; right now every gate resolves highest, so no floor is ever exercised.
13 of 23 repos audited had at least one broken floor.
faststream-outboxhad six and is now green at the lower bound on every supported interpreter.