Skip to content

16 repos skip 3.15 in the floors job #140

Open

Description

@lesnik512

Every repo now tests CPython 3.15 in pytest, but 16 of them leave 3.15 out of the floors job. In each, the wheel-only install fails at the declared floors because some package has no 3.15 wheel there. CI6 allows dropping such an entry, so none of this is a violation. It is a gap: on 3.15 nothing checks that the declared floors install.

The 16 split into three groups by what unblocks them. The blocker listed is the first one the resolver hit; another may surface once it is cleared.

Fixable now with a 3.15 floor marker

These repos already declare floors per Python version (asyncpg>=0.31; python_version >= '3.14'). Narrowing the 3.14 line to == '3.14' and adding a >= '3.15' line at the first release with 3.15 wheels clears the blocker without raising the floor for older Pythons.

Repo Blocking floor First release with 3.15 wheels
db-retry asyncpg>=0.31 asyncpg 0.32.0
faststream-redis-timers pydantic>=2.12 (pins pydantic-core 2.41.1) pydantic 2.14.0
release-scope pydantic>=2.12 pydantic 2.14.0
httpware msgspec>=0.20, and pydantic>=2.12 behind it msgspec 0.22.0, pydantic 2.14.0 (which also needs typing-extensions>=4.16.0)
modern-di-aiohttp aiohttp>=3.13 aiohttp 3.14.4
modern-di-grpc grpcio>=1.82.1 (no markers yet) grpcio 1.84.0

grpcio 1.84.0 has no free-threaded wheel, which does not matter here: modern-di-grpc is exempt from the 3.15t entry.

Blocked upstream

No floor change here helps: PyYAML and aiokafka ship no 3.15 wheel in any release, and aiogram's pins keep out the pydantic release that does.

Package Repos How it gets in
PyYAML (newest is 6.0.3) compose2pod, semvertag direct dependency
jwks-client, modern-di-litestar through litestar
modern-di-fastmcp through fastmcp
that-depends through pre-commit in the dev group
aiokafka (newest is 0.14.0) faststream-concurrent-aiokafka direct dependency
faststream-outbox through faststream[kafka] in the dev group; its asyncpg>=0.31 and pydantic>=2.12 floors need the marker fix above as well
aiogram (newest is 3.31.0) modern-di-aiogram every release caps pydantic below 2.14, and no pydantic-core before 2.14's has 3.15 wheels; its aiohttp>=3.13 floor needs the marker fix above as well

Both

lite-bootstrap runs floors per framework target, and every target fails on 3.15:

  • free: orjson>=3.11.1; orjson 3.12.0 is the first with 3.15 wheels.
  • fastapi and faststream: the pydantic floors pin a pydantic-core with no 3.15 wheels; pydantic 2.14.0 is the first that works.
  • fastmcp and litestar: PyYAML, through those frameworks.

The marker fix clears the first three targets. The last two wait on PyYAML.

Done when

Each repo has 3.15 back in its floors matrix (and 3.15t wherever its pytest matrix has it), green on a pull request. Tick a repo off here as its PR lands. Each repo's 3.15 PR description names its blocker as well, but those descriptions say to wait for the next floor raise; the marker fix above is the quicker route.

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

    enhancementNew feature or request

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions