Skip to content

Releases: litestar-org/litestar

v2.21.1

07 Mar 13:48
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Sponsors 🌟

Thanks to these incredible business sponsors:

Thanks to these incredible personal sponsors:

What's changed

https://docs.litestar.dev/2/release-notes/changelog.html#2.21.1

Full Changelog
v2.21.0...v2.21.1

v2.21.0

14 Feb 15:15
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Sponsors 🌟

Thanks to these incredible business sponsors:

Thanks to these incredible personal sponsors:

Changelog

https://docs.litestar.dev/2/release-notes/changelog.html#2.21.0

Compare Changes
v2.20.0...v2.21.0

v2.20.0

08 Feb 13:36
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Sponsors 🌟

Thanks to these incredible business sponsors:

Thanks to these incredible personal sponsors:

New contributors 🎉

Changelog

https://docs.litestar.dev/2/release-notes/changelog.html#2.20.0

Compare Changes
v2.19.0...v2.20.0

v2.19.0

14 Dec 13:52
Immutable release. Only release title and notes can be modified.

Choose a tag to compare

Sponsors 🌟

Thanks to these incredible business sponsors:

Thanks to these incredible personal sponsors:

Bugfixes 🐛

  • fix: add sniffio as depndency by @JCHacking in #4522
  • fix(pydantic): add support for 'AwareDatetime' serialization by @MetaHG in #4503
  • fix: Improve Accept.best_match typing by @sobolevn in #4487
  • fix: KeyError swallowing in default_serializer by @sobolevn in #4420
  • fix(typing): _dec_pydantic_uuid return type annotation by @sobolevn in #4419
  • fix: do not check for Path in default_deserializer by @sobolevn in #4421
  • fix: Use inspect.iscoroutinefunction instead of asyncio.iscoroutinefunction to address deprecation warning in Python 3.14+ by @edgarrmondragon in #4405
  • fix(websockets): Correctly pass guards to underlying handler by @7576457 in #4414
  • fix: Fix TypedDict required field on 3.8 by @provinzkraut in #4525

New features 🚀

New contributors 🎉

Other changes

Full Changelog
v2.18.0...v2.19.0

v2.18.0

05 Oct 16:22
c7b9b1c

Choose a tag to compare

Sponsors 🌟

Thanks to these incredible business sponsors:

Thanks to these incredible personal sponsors:

What's changed

Bugfixes 🐛

  • fix: CLI - Fix command registration by @cofin in #4298
  • fix: remove deprecation warning from polyfactory by @adhtruong in #4292
  • fix(routing): Ensure a MethodNotAllowedException exception during routing properly sets Allow header by @provinzkraut in #4289
  • fix: Preserve empty strings in multipart/form-data requests (#4204) by @doubledare704 in #4271
  • fix(OpenAPI): constraint check logic by @floxay in #4282
  • fix: KeyError when using 'data' kwarg in dependency functions by @doubledare704 in #4270
  • fix(OpenAPI): reenable using Parameter() to set an Enum's schema fields by @250MHz in #4251
  • fix(cli): set --app and --app-dir as eager parameters by @IDrokin117 in #4341
  • fix(channels/plugin): fix typo with pub_task cancelling in _on_shutdown method ChannelsPlugin by @Peopl3s in #4374
  • fix(channels/backend/memory): add KeyError-safe delete channel from history by @Peopl3s in #4389
  • fix(cli): pass the --app-dir option to the uvicorn subprocess when the reload option is enabled. by @IDrokin117 in #4352
  • fix: change Optional to NotRequired in OpenAPI pydantic plugin by @raidzin in #4347
  • fix(OpenAPI): Fix Stream response being treated as File response in OpenAPI schema by @provinzkraut in #4371

New features 🚀

  • feat: deprecate litestar.plugins.sqlalchemy module for v3 removal by @cofin in #4343
  • feat(pydantic): add round_trip parameter to PydanticPlugin by @sobolevn in #4350

Other changes

  • docs: add reference for advanced alchemy sessions by @Harshal6927 in #4275
  • docs: Fix Provide import in FastAPI migration guide by @edgarrmondragon in #4281
  • docs: fix literal include lines in 03-repository-controller by @HairlessVillager in #4269
  • docs: fix lifespan migration from fastapi by @cclinet in #4268
  • docs: Fix incorrect link to sponsors on README.md by @snqb in #4325
  • docs: fix(README/PYPI_README): remove duplicate of mgspec and attrs link by @Peopl3s in #4380
  • docs: fix(getting-started): replace structlog to polyfactory for Polyfactory section by @Peopl3s in #4385
  • docs: fix(docs/realse-notes): fix broken links to realse notes by @Peopl3s in #4368

New contributors 🎉

Full Changelog
v2.17.0...v2.18.0

v2.17.0

10 Aug 13:37
1309144

Choose a tag to compare

Sponsors 🌟

Thanks to these incredible business sponsors:

Thanks to these incredible personal sponsors:

What's changed

New contributors 🎉

Bugfixes 🐛

  • fix(OpenAPI): Fix empty response body when using DTO and Response[T] annotation by @mmev in #4158
  • fix(OpenAPI): Ensure deterministic order of schema types by @tjhoff in #4239
  • fix: Ensure yield dependency cleanup always happens in reverse order by @nectarindev in #4246

New features 🚀

  • feat(OpenAPI): Add option to exclude parameter from schema by @mmev in #4177
  • feat(OpenAPI): Extend support for Pydantic's custom date(time) types by @Kumzy in #4218
  • feat: Make ReceiveRoutePlugin public by @mohammedbabelly20 in #4220

Other changes

  • docs: Correct typo in static-files.rst by @guoci in #4165
  • docs: add uv examples to the docs by @sobolevn in #4189
  • docs: always use ' for dependencies with groups by @sobolevn in #4190
  • docs: fix redis inventory by @sobolevn in #4208
  • docs: Fix non-existing function in "Accessing the OpenAPI schema in code" section by @ctrl-Felix in #4209
  • docs: fix incorrect parameter name in docstring by @iyad-f in #4245

Full Changelog
v2.16.0...v2.17.0

v2.16.0

04 May 10:59
3f8be84

Choose a tag to compare

Sponsors 🌟

Thanks to these incredible business sponsors:

Thanks to these incredible personal sponsors:

What's changed

Bugfixes 🐛

  • fix: update Makefile to include install in output by @adhtruong in #4079
  • fix(typing): Remove usage of private _AnnotatedAlias by @provinzkraut in #4126
  • fix(DI): Ensure dependencies are cleaned up when exception occurrs during cleanup by @provinzkraut in #4148
  • fix: misleading error message upon ImportError with --app argument to CLI by @cstarkers in #4152
  • fix(testing): subprocess client raises exc when fails to start by @mmev in #4153
  • fix(openapi): support prefixItems for tuple schema by @Jannchie in #4132
  • fix(cli): pre parse launch arguments when cli command executed by @mmev in #4161

New features 🚀

Other changes

  • refactor: use typos by @adhtruong in #4080
  • docs: add example for cache_response_filter by @euri10 in #4096
  • docs: add usage of server_lifespan hook and motivations by @euri10 in #4097
  • docs: add mention in guard docs from where connection.user comes from by @euri10 in #4101
  • docs: rework custom authentication middleware by @euri10 in #4095
  • docs: Replace contrib with plugins in example code by @eandersons in #4094
  • docs: 📚 Fix return value for UploadFile by @Sube-py in #4120
  • docs: clarify WebSocket send_websocket_stream capabilities by @provinzkraut in #4124
  • docs: add test to stream_and_receive_listener and mention on json default by @euri10 in #4108
  • docs(CLI): Make CLI docs about app discovery more coherent by @provinzkraut in #4139
  • docs: show exceptions raised aren't always JSON by @euri10 in #4128
  • docs: test most requests.rst literalinclude by @euri10 in #4099
  • docs: Some readme updates by @provinzkraut in #4138
  • docs: fixed variable name in ASGIMiddleware code example by @mmev in #4151

New contributors 🎉

Full Changelog
v2.15.2...v2.16.0

v2.15.2

06 Apr 12:31
4faf016

Choose a tag to compare

Sponsors 🌟

Thanks to these incredible business sponsors:

Thanks to these incredible personal sponsors:

What's changed

New contributors 🎉

Bugfixes 🐛

  • fix: check for default headers before appending to cors header failures by @saska in #4015
  • fix(events): ensure callable metadata is replicated by @Harshal6927 in #4045
  • fix: explicit specification of arguments in FileSystemAdapter open func. by @nisemenov in #4049
  • fix(typing): Correctly handle typing_extensions.TypeAliasType on typing-extensions>4.13.0 (fix #4088) by @provinzkraut in #4089

Full Changelog
v2.15.1...v2.15.2

v2.15.1

27 Feb 17:51
c5dbb6c

Choose a tag to compare

Sponsors 🌟

Thanks to these incredible business sponsors:

Thanks to these incredible personal sponsors:

New contributors 🎉

Bugfixes 🐛

Other changes

  • docs: Use "click to toggle" instead of "click to expand" by @eandersons in #4032

Full Changelog
v2.15.0...v2.15.1

v2.15.0

26 Feb 10:55
86ceeb3

Choose a tag to compare

Sponsors 🌟

Thanks to these incredible business sponsors:

Thanks to these incredible personal sponsors:

What's changed

New contributors 🎉

Bugfixes 🐛

  • fix(ASGI mounts): Prevent accidental scope overrides by mounted ASGI apps by @provinzkraut in #3945
  • fix: corrected import of attrs by @euri10 in #3947

New features 🚀

  • feat(jwt): Added revoked token handler support by @oek1ng in #3960
  • feat: allow route_reverse params of type uuid to be passed as str by @aedify-swi in #3972
  • feat(CLI): Make better error message for invalid --app string by @RenameMe1 in #3977
  • feat(DTOs): Support @property fields for msgspec and dataclass by @provinzkraut in #3981
  • feat(core): new base middleware by @provinzkraut in #3996
  • feat: Add SerializationPlugin and InitPlugin to replace their respective protocols by @provinzkraut in #4025
  • feat(debugger): passing debugger to app by @oek1ng in #3967

Full Changelog
v2.14.0...v2.15.0