Skip to content

2.8.0

Choose a tag to compare

@github-actions github-actions released this 26 Jun 19:44
50d9f71

modern-di-fastapi 2.8.0 — modern-di 2.21.0 floor + internal cleanups

Maintenance release. No public API changesetup_di, FromDI, build_di_container, and the context providers keep their signatures and behavior. It raises the modern-di floor and cleans up two internals.

Internal refactors

  • Connection-kind mapping single-sourced off the context providers. build_di_container no longer re-states each connection type and context key in an isinstance ladder; it walks the registered context providers (_CONNECTION_PROVIDERS), taking each context_type and scope from the provider. setup_di registers from the same tuple. Adding a connection kind is adding a provider — behavior is unchanged.
  • Own the lifespan composition. setup_di previously chained its lifespan via the private fastapi.routing._merge_lifespan_context. It now uses a small _compose_lifespan built on the public app.router.lifespan_context, dropping the FastAPI-internals dependency. The original lifespan stays the outer context, its startup/shutdown and yielded state pass through, and the root container still reopens across lifespan cycles.

Packaging

  • modern-di floor raised to >=2.21.0,<3 (was >=2.19.0). The connection-mapping refactor relies on the public ContextProvider.context_type added in modern-di 2.21.0.
  • Enriched PyPI metadata (keywords, classifiers, project URLs).

Downstream

Requires modern-di>=2.21.0. There is no API change, so application code that uses setup_di / FromDI needs no edits — only the modern-di floor moves.

Internals

  • 100% line coverage maintained; ruff, ty, and eof-fixer clean.
  • Adopted the portable planning convention (planning/) and seeded the architecture/ truth home; releases are tag-driven.