Skip to content

Releases: litestar-org/litestar

v2.18.0

05 Oct 16:22
c7b9b1c
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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
Compare
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

v2.14.0

08 Jan 21:05
4c7166a
Compare
Choose a tag to compare

Summary

We are pleased to publish our first release of 2025!

Since our last release in November, everyone's been busy. In that short time, we've managed to squeeze in a huge amount of fixes, features, and (most, importantly) Python 3.13 support. Thank you to everyone in the community who contributed to this.

As we move towards 3.0, you'll see a few deprecations being added to packages. Please don't hesitate to join our discord to discuss any deprecation specifics or any other change you'd like to see in 3.0

Sponsors 🌟

Thanks to these incredible business sponsors:

Thanks to these incredible personal sponsors:

What's changed

New contributors 🎉

Bugfixes 🐛

  • fix: remove optional group for litestar-htmx by @cofin in #3870
  • fix(pydantic): Add moved URL types to type map by @provinzkraut in #3874
  • fix: patching of otel middleware to work with subclasses by @vikigenius in #3876
  • fix(ci): Pin PDM version for 3.8 by @Alc-Alc in #3878
  • fix: update Makefile by @adhtruong in #3880
  • fix(devcontainers): Replace PDM with UV by @Alc-Alc in #3879
  • fix: resource warnings by @gsakkis in #3838
  • fix: Enum OAS generation (#3518) by @wallseat in #3525
  • fix: typo in exception message for ImproperlyConfiguredException by @Zimzozaur in #3885
  • fix(file response): Support varying mtime semantics across different fsspec implementations by @provinzkraut in #3902
  • fix(OpenAPI): Query-only properties included in path, cookie and header parameter schema and response headers (#3908) by @provinzkraut in #3909
  • fix(sqlalchemy): updates to documentation based on upstream changes by @cofin in #3917
  • fix(picologging): better handle unsupported environments by @cofin in #3918
  • fix(channels): use SQL function for psycopg by @cofin in #3916
  • fix(compression middleware): Fix resource handling by @provinzkraut in #3927
  • fix(ci): only install dev tools in ubuntu by @cofin in #3931

New features 🚀

  • feat: move litestar.contrib.prometheus to litestar.plugins.prometheus by @cofin in #3863
  • feat: move litestar.contrib.attrs to litestar.plugins.attrs by @cofin in #3862
  • feat: add future flag to experimental_features by @cofin in #3864
  • feat(core): Streaming multipart parser by @provinzkraut in #3872
  • feat: upgrade minimum litestar-htmx version by @cofin in #3884
  • feat: WebSocket send stream by @provinzkraut in #3894
  • feat: add query params to redirect response by @marcuslimdw in #3901
  • feat: add Valkey as a native store by @ftsartek in #3892
  • feat: use "path" as an error message source by @250MHz in #3920
  • feat: added subprocess test client by @aranvir in #3655
  • feat: add support for Python 3.13 by @cofin in #3850
  • feat(ci): implement psycopg client installation for macos and windows by @cofin in #3932

Other changes

Full Changelog
v2.13.0...v2.14.0

v2.13.0

20 Nov 16:14
1b9d1c8
Compare
Choose a tag to compare

Sponsors 🌟

Thanks to these incredible business sponsors:

Thanks to these incredible personal sponsors:

And a huge 'Thank you!' to all sponsors across Polar.sh, OpenCollective and GitHub Sponsors!

What's changed

New contributors 🎉

Bugfixes 🐛

New features 🚀

  • feat: OpenAPI plugins send CSRF request header by @floxay in #3754
  • feat: deprecate litestar.contrib.sqlalchemy by @cofin in #3755
  • feat: implement HTMX plugin using litestar-htmx by @cofin in #3837
  • feat(Pydantic): honor hide_input_in_errors in throwing validation exceptions by @charles-dyfis-net in #3843
  • feat: deprecate litestar.contrib.pydantic by @cofin in #3852

Documentation

  • docs: update copyright notice year to 2024 by @findstar in #3751
  • docs(readme): Remove reference to litestar-pg-redis-docker by @Alc-Alc in #3779
  • docs: Fix python code highlight in many examples by @sobolevn in #3788
  • docs: fix a typo in requests usage docs by @sobolevn in #3794
  • docs: fix typos in sqlalchemy examples by @sobolevn in #3798
  • docs: fix typos in sqlalchemy/models_and_repository.rst by @sobolevn in #3797
  • docs: fix missing import in cache usage by @sobolevn in #3795
  • docs: make sure that channels use finally in all examples by @sobolevn in #3796
  • docs: change the ExperimentalFeatures.DTO_CODEGEN description by @sobolevn in #3802
  • docs: change sync-to-thread-info.rst wording about sync_to_thread by @sobolevn in #3799
  • docs: add missing rename strategy to dto docs by @sobolevn in #3805
  • docs: fix highlighted lines in DTO usage by @sobolevn in #3808
  • docs: fix "DTO Factory and PATCH requests" section by @sobolevn in #3819
  • docs: fix DTO Data section with a new example by @sobolevn in #3813
  • docs: fix highlight of code example in "Providing values for nested data" by @sobolevn in #3815
  • docs: rewrite htmx guide by @sobolevn in #3825
  • docs: refactor "Hooks" usage documentation by @sobolevn in #3826
  • docs: fix API reference for asgi_types scopes by @sobolevn in #3831
  • docs: rewrite "Builtin middleware" usage by @sobolevn in #3830
  • docs: refactor "Custom Middleware" guide by @sobolevn in #3833
  • docs: refactor exception usage by @sobolevn in #3823
  • docs: remove references to python-jose by @cofin in #3847
  • docs: Changing incorrect indentation in the code example "creating-middleware#inheriting-abstractmiddleware" by @RenameMe1 in #3857
  • docs: improve openapi/index.rst page by @sobolevn in #3856
  • docs: fix the description of when to use the synchronous function by @vvanglro in #3849
  • docs: Added debug=True in Testing to display exception stack trace by @RenameMe1 in #3860

Full Changelog
v2.12.1...v2.13.0

v2.12.1

21 Sep 14:40
b9a91e6
Compare
Choose a tag to compare

Sponsors 🌟

Thanks to these incredible business sponsors:

A huge 'Thank you!' to all sponsors across Polar.sh, OpenCollective and GitHub Sponsors!

What's changed

Bugfixes 🐛

Full Changelog
v2.12.0...v2.12.1

v2.12.0

21 Sep 09:17
06efa69
Compare
Choose a tag to compare

Sponsors 🌟

Thanks to these incredible business sponsors:

Thanks to these incredible personal sponsors:

A huge 'Thank you!' to all sponsors across Polar.sh, OpenCollective and GitHub Sponsors!

What's changed

Bugfixes 🐛

New features 🚀

Other changes

Full Changelog
v2.11.0...v2.12.0