Skip to content

ci: cap multidict below 7.2 in the dev environment - #302

Merged
lesnik512 merged 1 commit into
mainfrom
ci/cap-multidict
Oct 24, 2026
Merged

lesnik512 merged 1 commit into
mainfrom
ci/cap-multidict

Conversation

@lesnik512

Copy link
Copy Markdown
Member

multidict 7.2.0, released 2026-10-24 at 09:16 UTC, breaks every Litestar request. Litestar's Headers subclasses CIMultiDictProxy and passes the raw ASGI header list to it, and 7.2.0 rejects that:

TypeError: ctor requires CIMultiDict or CIMultiDictProxy instance, not <class 'list'>

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). With litestar==2.25.0 the 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 of lite-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 --upgrade on 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.

@lesnik512
lesnik512 merged commit 0a7ffc5 into main Oct 24, 2026
32 checks passed
@lesnik512
lesnik512 deleted the ci/cap-multidict branch October 24, 2026 09:44
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.

1 participant