Skip to content

fix(deps): mark the msgspec and pydantic floors - #133

Merged
lesnik512 merged 1 commit into
mainfrom
fix/dependency-floors
Sep 20, 2026
Merged

lesnik512 merged 1 commit into
mainfrom
fix/dependency-floors

Conversation

@lesnik512

Copy link
Copy Markdown
Member

Closes #132.

Two problems behind one declaration

msgspec's API. msgspec>=0.18 resolves to 0.18.0, whose can_decode disagrees with decode on Annotated types:

assert False is True
 +  where False = MsgspecDecoder.can_decode(typing.Annotated[int, []])

0.18.5 is the first release where they agree, bisected against the suite.

Wheel coverage on 3.14. msgspec ships no cp314 wheel before 0.20, and the pydantic extra's >=2.0 resolves to a pydantic-core with none before pydantic 2.12. The issue reported only the msgspec half; the pydantic half surfaced once msgspec was raised.

Both marked rather than raised for everyone, since the older versions are fine below 3.14.

Verification

uv pip install --resolution lowest-direct ".[all]" then the full suite: 818 passed on 3.11 and 3.14. Lint clean. Normal resolution: 818 passed.

Nothing changes at the top of the range, so this is inert for anyone not installing at the lower bound.

Found by the org-wide lower-bound audit in modern-python/.github#107.

msgspec >=0.18 resolved to a release whose can_decode disagrees with decode
on Annotated types; 0.18.5 is the first that agrees. msgspec ships no cp314
wheel before 0.20 and pydantic-core none before pydantic 2.12, so both are
marked for 3.14 rather than raised for every interpreter.

Closes #132
@lesnik512
lesnik512 merged commit de79625 into main Sep 20, 2026
8 checks passed
@lesnik512
lesnik512 deleted the fix/dependency-floors branch September 20, 2026 14:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

The msgspec floor does not install on Python 3.14

1 participant