Skip to content

v0.3.0

Compare
Choose a tag to compare
@illagrenan illagrenan released this 05 Mar 13:16
· 23 commits to main since this release

Added

  • Lifespan async context managers are now supported (inspired by Lifespan events in FastAPI). Global variables are no longer necessary for the state management; objects required throughout the application lifecycle are now held in the lifespan scope state. Further details can be found in the ASGI spec. Previous signals (startup and shutdown) remain supported with no plans for their removal. The new, preferred method to manage state is via an async context manager.
  • All major ASGI servers have been tested, an overview of their support is in separate page. It is worth mentioning that the gunicorn+uvicorn combo is now working without problems.
  • Development: Add support for pre-commit.

Changed

  • More tests.
  • Better documentation.

Breaking changes ⚠️

  • Drop support for Django >=4.0.0, <4.2.0 and >=5.0.0, <5.0.3. Supported versions include ^4.2 || ^5.0.3 (^4.2 is LTS).
  • If lifespan signals fail, two new events are sent to the ASGI server: lifespan.startup.failed and lifespan.shutdown.failed. This could stop servers, like uvicorn, from starting if a lifespan.startup.failed event happens. This update makes it easier to find and fix errors, as they are not hidden anymore.

👉 See the CHANGELOG: https://illagrenan.github.io/django-asgi-lifespan/changelog/#030-2024-03-05