Skip to content

Releases: litestar-org/litestar

v2.1.0

24 Sep 23:03
f1d4a23
Compare
Choose a tag to compare

💰 Sponsors 💰

GitHub Sponsors: @benjamin-kirkbride @crisog
OpenCollective: Christian Y, GitHub Sponsors, Shubham Prajapati, Snyk

🎉 New Contributors 🎉

What's Changed

➕ Features

  • feat: make 302 the default status_code for redirect responses by @cofin
    in #2189
  • feat(layered-include_in_schema): Add include_in_schema option for all layers by @Alc-Alc
    in #2295
  • feat(deprecation): Adds deprecation warnings for app parameter when using to_asgi_response method of responses by @wevonosky
    in #2268

🔢 Features: Extras

  • feat(contrib-jwt): Add parameters to set the JWT extras field by @dialvarezs
    in #2313
  • feat(templates): add possibility to customize jinja environment by @euri10 in #2195
  • feat(templates): add minjinja by @euri10 in #2250

📅 Features: SQLAlchemy

  • feat(sqlalchemy): exclude implicit fields for sqlalchemy dto by @abdulhaq-e in #2170
  • feat(sqlalchemy): allow repository functions to be filter by expressions by @cofin
    in #2265
  • feat(sqlalchemy): use lambda_stmt in the repository by @cofin in #2179
  • feat(sqlalchemy): swap to the advanced_alchemy implementations by @cofin
    in #2312

📚 Docs

🔧 Fixes

  • fix: remove usages of deprecated ExceptionHandlerMiddleware debug parameter by @provinzkraut
    in #2192
  • fix: raise ValidationException when pydantic validation fails by @guacs
    in #2204
  • fix: set the max width of the console to the standard terminal width of 80. This helps prevent line wrapping in
    certain cases. by @cofin in #2244
  • fix(schema): handling of optional path parameters by @Goldziher in #2224
  • fix: use os.replace instead of shutil.move for renaming file by @guacs
    in #2223
  • fix: Exception detail attribute by @gsakkis in #2231
  • fix(sqlalchemy-repo): #2221 - Filters not available in exists() by @nielsvanhooy
    in #2228
  • fix: add pydantic types to sqlalchemy registry only if pydantic is installed by @guacs
    in #2252
  • fix: don't add content type for responses that don't have a body by @guacs
    in #2263
  • fix: SQLAlchemyPlugin refactored. by @cofin in #2269
  • fix: Ensure app-dir is appended to path during autodiscovery. by @sykloid
    in #2277
  • fix: set content length header by default by @guacs in #2271
  • fix: #2196 - incorrect handling of mutable headers in ASGIResponse by @provinzkraut
    in #2308
  • fix: adds missing ORM registry export by @cofin in #2316
  • fix: bump version of advanced_alchemy by @cofin in #2317
  • fix: discrepency in attrs, msgspec and pydantic for multi-part forms by @euri10
    in #2280
  • fix: set proper default for exclude_http_methods in auth middleware by @guacs
    in #2325
  • fix(tests): fix platform compat tests by @provinzkraut in #2310
  • fix(tests): RedisStore test for time-machine 2.13.0 by @provinzkraut
    in #2342

🏛️ Misc / Infra / Tests / Other

  • build: ignore all-contributorsrc from pre-commit prettier by @cofin
    in #2201
  • refactor(structure): move the repository module from contrib to top-level by @Goldziher
    in #2238
  • infra: Publish with PyPI's trusted publishers by @provinzkraut in #2306
  • test: use stricter pytest config by @sobolevn in #2327
  • test: use xfail_strict for pytest config by @sobolevn in #2328
  • test: fix pydantic@v2 deprecation warning in tests by @sobolevn
    in #2340
  • test: silence ResourceWarning in test_file_response by @sobolevn
    in #2331

Full Changelog: v2.0.0...v2.0.2x

v2.0.1

21 Aug 18:46
b6d4ebc
Compare
Choose a tag to compare

💰 Sponsors 💰

GitHub Sponsors: @benjamin-kirkbride @crisog
OpenCollective: Christian Y, GitHub Sponsors, Shubham Prajapati, Snyk

What's Changed

🔧 Fixes

  • Fix warnings about deprecated debug parameter of ExceptionHandlerMiddleware by @provinzkraut in #2193

Full Changelog: v2.0.0...v2.0.1

v2.0.0

21 Aug 14:11
d442e7c
Compare
Choose a tag to compare

This marks the first release of the new 2.x release line. The 1.5x releases will be supported until the release of 3.0. Nevertheless, users are encouraged to upgrade to version 2.

What's Changed

Bugfixes

  • Fix #2024 - media_type missing in error response by @Goldziher in #2131
  • Fix #2147 - setting app debug does not propagate to exception handling middleware by @provinzkraut in #2153
  • Fix static files not being served if a route handler with the same base path was registered by @Goldziher in #2154
  • Fix missing default values for receive and send parameters of HTMXRequest by @tompin82 in #2145
  • DTO: Fix #2125 - excluded attributes being accessed during transfer by @provinzkraut in #2127
  • DTO: Fix DTOData.create_instance ignores renaming by @abdulhaq-e in #2144
  • OpenAPI: Fix application/octet-stream set as contentEncoding instead of contentMediaType @Goldziher in #2130
  • OpenAPI: Fix response not preferring aliased fields by @gsakkis in #2150
  • OpenAPI: Fix examples not being generated deterministically by @Goldziher in #2161
  • OpenAPI: Fix example generation for Pydantic models by @guacs in #2178
  • SQLAlchemy repository: Handle dialects that don't support JSON by @thiagozf in #2139
  • JWT: Fix OPTIONS and HEAD being authenticated by default by @Goldziher in #2160
  • Fix OPTIONS and HEAD being authenticated by default for SessionAuthMiddleware by @Mattwmaster58 in #2182

New Contributors

Full Changelog: v2.0.0rc1...v2.0.0

v2.0.0rc1

05 Aug 15:12
2be2309
Compare
Choose a tag to compare
v2.0.0rc1 Pre-release
Pre-release

What's Changed

🎉 New Contributors 🎉

New features

Bugfixes

  • SQLAlchemy repository: health_check generates valid statement for oracle by @cofin in #2060
  • Fix serialization of empty strings in multipart form by @Goldziher in #2044
  • Fix #2033 - Server-side session middleware overrides CSRF cookies by @provinzkraut in #2069
  • Fix base path escaping in channels on Windows by @provinzkraut in #2112
  • DTO: Support renamed fields in DTOData and create_instance by @abdulhaq-e in #2065

Other changes

Changes to DTOs

BREAKING

This release introduces significant changes to the DTOs. This was necessary to address some bugs that came about because of some issues with the previous internal design. Unfortunately, these changes could not be made backwards compatible, but they are mostly superficial changes to the interfaces; Functionally DTOs still work the same.

The following breaking changes were introduced:

  • DTOInterface has been removed
  • ForType has been removed
  • AbstractDTOFactory has been renamed to AbstractDTO

Full Changelog: v2.0.0beta4...v2.0.0rc1

v1.51.14

04 Aug 16:48
18c4521
Compare
Choose a tag to compare

What's Changed

  • fix(v1.51): #1948 passing wrapper class to struct logging config causes pydantic exception by @JacobCoffee in #2105

Full Changelog: v1.51.13...v1.51.14

v2.0.0beta4

21 Jul 15:49
3ff5f91
Compare
Choose a tag to compare
v2.0.0beta4 Pre-release
Pre-release

What's Changed

Bugfix release containing a workaround for a bug in poetry that caused development / extra dependencies to be installed alongside the package.

This was fixed by @Goldziher in #2029.

Full Changelog: v2.0.0beta3...v2.0.0beta4

v2.0.0beta3

20 Jul 13:51
bb04e2f
Compare
Choose a tag to compare
v2.0.0beta3 Pre-release
Pre-release

Highlights

As of this release, Pydantic is an optional dependency.

What does that mean?
For you as an end user, not much; It is still supported in the same capacity as before, it's just not required anymore.
We have migrated all of our internals that previously relied on Pydantic (mainly for parsing and validation) to the amazing msgspec library, with Pydantic now being handled by an internal plugin.

The important thing is: Everything that has worked before with Pydantic will continue to work, and if you're not using Pydantic, but instead want to use attrs or pure msgspec, you won't have a required Pydantic dependency anymore.

Pydantic 2 support

Another change related to Pydantic is that this release adds support for Pydantic 2, which offers lots of improvements, new features and performance gains. Pydantic 1 is still fully supported and will be for the foreseeable future.

What's Changed

New features

  • DTO: Support piccolo ORM with PiccoloDTO by @Goldziher in #1896
  • DTO: Add include option to DTOConfig by @Goldziher in #1950
  • SQLAlchemyDTO: column/relationship type inference by @peterschutt in #1879
  • SQLAlchemy repository: New auto_commit, auto_refresh and auto_expunge options by @cofin in #1900
  • Allow customization of OpenAPIController.path from OpenAPIConfig by @jaykv in #1886
  • Include path name in ImproperlyConfiguredException message for missing param type by @euri10 in #1935

Bugfixes

  • Breaking SQLAlchemy repository: Fix spanner support by renaming the _sentinel column to sa_orm_sentinel by @cofin in #1933
  • SQLAlchemy repository: Fix audit columns created_at and updated_at defaulting to app startup time by @MatthewNewland in #1894
  • SQLAlchemyDTO: Fix handling of Sequence with defaults by @peterschutt in #1883
  • DTO / OpenAPI: Fix detection of required fields for Pydantic and msgspec by @abdulhaq-e in #1946
  • Allow JSON as redirect response by @cofin in #1908

Other changes

New Contributors

Full Changelog: v2.0.0beta2...v2.0.0beta3

v1.51.13

17 Jul 12:26
99e9db2
Compare
Choose a tag to compare

What's Changed

Full Changelog: v1.51.12...v1.51.13

v2.0.0beta2

24 Jun 19:32
9665872
Compare
Choose a tag to compare
v2.0.0beta2 Pre-release
Pre-release

Beta 2 is out now!

What does that mean?

As stated in the Beta 1 release, it means that all of the major changes are done, and you can start evaluating the 2.0 release. Upcoming beta releases will mostly include bugfixes, and you can expect a generally stable interface.

This release however is not feature complete, and we'll still be adding new features until the first rc (release candidate) release preceding the 2.0 release.

What's Changed

🎉 New Contributors 🎉

Enhancements

Fixes

Docs

Other Changes

Internal

Full Changelog: v2.0.0beta1...v2.0.0beta2

v2.0.0beta1

16 Jun 11:22
91488d7
Compare
Choose a tag to compare
v2.0.0beta1 Pre-release
Pre-release

This is the first beta release of Litestar 2.0!

What does that mean?

In practical terms, it means that all of the major changes are done, and you can start evaluating the 2.0 release. Upcoming beta releases will mostly include bugfixes, and you can expect a generally stable interface.

This release however is not feature complete, and we'll still be adding new features until the first rc (release candidate) release preceding the 2.0 release.

What's Changed

New features

General

SQLAlchemy repository

  • Add synchronous SQLAlchemy repository pattern by @cofin in #1683
  • Add oracledb support by @cofin in #1694
  • Add duckdb and Google spanner support by @cofin in #1744
  • Add JSON check constraint for Oracle dialect by @cofin in #1780
  • Add timezone aware datetime by @cofin in #1816
  • Exclude unloaded columns on to_dict by @cofin in #1802
  • Enforce UTC timestamps are stored and returned by @cofin in #1816

DTO

Bugfixes

Other changes

Breaking

Documentation

New Contributors

Full Changelog: v2.0.0alpha7...v2.0.0beta1