Repository navigation
ci: cap multidict below 7.2 in the dev environment - #302
Merged
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
multidict 7.2.0, released 2026-10-24 at 09:16 UTC, breaks every Litestar request. Litestar's
HeaderssubclassesCIMultiDictProxyand passes the raw ASGI header list to it, and 7.2.0 rejects that:CI resolves fresh with
uv lock --upgrade, so every pytest job picked up 7.2.0 and 26 Litestar tests failed on every Python version (seen on #301, a docs-only PR). Withlitestar==2.25.0the same test fails on multidict 7.2.0 and passes on 7.1.0.This adds
constraint-dependencies = ["multidict<7.2"]under[tool.uv]. uv applies it when it locks and syncs the project, so it covers local dev and CI. The published wheel's metadata does not mention multidict, so users oflite-bootstrap[litestar]resolve exactly as before. lite-bootstrap does not import multidict, and capping it for users would pin someone else's dependency.Checked locally with a fresh
uv lock --upgradeon Python 3.14: 26 Litestar failures without the cap, all 388 tests passing with it (multidict 7.1.0, litestar 2.25.0). The built wheel's METADATA has no multidict line.The cap comes out once multidict or Litestar ships a fix; a tracking issue follows.