Skip to content

sqlalchemy is declared with no lower bound, so the declared minimum does not install #52

Description

@lesnik512

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.

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

    bugSomething isn't workingready-for-agentFully specified, ready for an AFK agent

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions