Repository navigation
Closed
Labels
enhancementNew feature or requestNew feature or requestready-for-humanRequires human implementationRequires human implementation
Milestone
Description
This was generated by AI during a pre-4.0 audit of main at 9cd88e7.
All 13 integrations were run against main (3.x baseline, then 4.0 main as a local wheel; pytest and ty).
Results
- aiogram, aiohttp, celery, fastapi, faststream, flask, grpc, litestar, pytest, starlette, taskiq, typer: all tests and ty pass on both 3.6 and 4.0 main. Only the pin needs widening.
- modern-di-arq:
tests/test_lifespan.py:83uses the removedContainerClosedWarning(AttributeError, tyunresolved-attribute). Issue: Prepare for modern-di 4.0: rewrite test_restart_reopens_without_warning modern-di-arq#42 - fastapi-sqlalchemy-template and litestar-sqlalchemy-template:
app/resources/db.py:46usesrequest: Request | None = None; in 4.0test_db_routing.py::test_no_request_uses_primaryraisesContextValueNotSetError, the documented change. Issues: Prepare for modern-di 4.0: optional request parameter in db routing fastapi-sqlalchemy-template#77, Prepare for modern-di 4.0: optional request parameter in db routing litestar-sqlalchemy-template#56 - chat-app: no break; pin bumps only.
- No regressions: every failure is a documented 4.0 change.
Checklist (after the 4.0 code issues land, re-run the compat check first)
- modern-di-grpc: replace
container.providers_registry.find_providerwithcontainer.find_provider(added in feat!: tighten Container's public surface (#565) #592) atmodern_di_grpc/main.py:45andtests/test_inject.py:191. - Widen
modern-di>=3,<4to<5and release: aiogram, aiohttp, arq, celery, fastapi, faststream, flask, grpc, litestar, pytest, starlette, taskiq, typer. - modern-di-taskiq:
docs/adr/0002-only-worker-lifecycle-is-wired.md:12mentionsContainerClosedWarning(prose). - Test helpers with
X | None = Nonecreator params in aiogram (dependencies.py:17), flask (:17), grpc (:26), taskiq (:17): comments describe 3.x optional semantics; reword. - Templates and chat-app: bump integration pins after the integration releases.
Metadata
Metadata
Assignees
Labels
enhancementNew feature or requestNew feature or requestready-for-humanRequires human implementationRequires human implementation
Activity
lesnik512 commentedon Oct 9, 2026
Done. modern-di 4.0.0 is on PyPI, and every integration and app now requires it.
modern-di>=4,<5: aiogram, aiohttp, arq, celery, fastapi, faststream, flask, grpc, litestar, pytest, starlette, taskiq, typer. Each GitHub release starts with a Breaking note that links the migration guide.multidict7.1.0 ships no wheels for CPython 3.13+ and no sdist, so the repo now skips that version through[tool.uv] constraint-dependencies.requestparameter falls back toNonesince feat: let a nullable or defaulted parameter fall back when its context value is unset (#601) #602, so Prepare for modern-di 4.0: optional request parameter in db routing fastapi-sqlalchemy-template#77 and Prepare for modern-di 4.0: optional request parameter in db routing litestar-sqlalchemy-template#56 closed without code changes.modern-di-litestarandmodern-di-pytest. fix: annotate test context managers with Generator for ty 0.0.85 chat-app#48 went in first to fix two ty 0.0.85 warnings on its test context managers, which had nothing to do with modern-di.