Releases: litestar-org/litestar
v2.4.2
❤️ Sponsors ❤️
GitHub Sponsors: Telemetry Sports (via @chris-telemetry) @benjamin-kirkbride @crisog @geeshta
OpenCollective: Christian Y, Anonymous
What's Changed
- Fix OpenAPI handling of parameters with duplicated names by @peterschutt in #2788
- Fix late failure where
DTOData
is used without a DTO by @peterschutt in #2789 - Correctly propagate camelCase names on OpenAPI schema by @peterschutt in #2800
- Fix error handling in event handler stream by @peterschutt in #2810 and #2814
- Fix OpenAPI schema for pydantic computed fields by @peterschutt in #2797
New Contributors
- @elliot-hall made their first contribution in #2796
Full Changelog: v2.4.1...v2.4.2
v2.4.1
❤️ Sponsors ❤️
GitHub Sponsors: Telemetry Sports (via @chris-telemetry) @benjamin-kirkbride @crisog @geeshta
OpenCollective: Christian Y, Anonymous
Bugfixes 🐛
- Fix circular import when importing from
litestar.security.jwt
by @peterschutt in #2784 - Raise config error when generator dependencies are cached by @peterschutt in #2780
Full Changelog: v2.4.0...v2.4.1
v2.4.0
❤️ Sponsors ❤️
GitHub Sponsors: Telemetry Sports (via @chris-telemetry) @benjamin-kirkbride @crisog @geeshta
OpenCollective: Christian Y, Anonymous
What's Changed
- View the Litestar Release Notes
🎉 New Contributors 🎉
- @leejayhsu made their first contribution in #2639
- @mbeijen made their first contribution in #2633
- @baoliay2008 made their first contribution in #2670
- @jdglaser made their first contribution in #2676
- @hunterjsb made their first contribution in #2710
- @cesarmg1980 made their first contribution in #2749
- @marcuslimdw made their first contribution in #2757
Bugfixes 🐛
- Fix
HTTPException
handling during concurrent dependency resolving by @smithk86 in #2596 - Fix CLI plugin commands not showing up in command list by @peterschutt in #2441
- Fix OpenAPI examples format by @guacs in #2660
- Fix OpenAPI schemas incorrectly flagged as duplicates by @chris-telemetry in #2475
- Fix OpenAPI schema generation partially broken since litestar version 2.3.0 by @Alc-Alc in #2648
- Fix Pydantic URL type support in OpenAPI and serialization by @provinzkraut in #2701
- Fix incorrect
ValidationException
message when multiple errors were encountered by @peterschutt in #2716 - Fix missing
write-only
mark indto_field()
signature by @floxay in #2684 - Fix DTO renaming renames all fields of the same name in nested DTOs by @provinzkraut in #2764
- Fix handling of DTO objects nested in mappings by @peterschutt in #2775
- Fix inconsistent sequence union parameter errors by @peterschutt in #2776
- Fix
Unexpected ASGI message 'websocket.close', after sending 'websocket.close'
in channels WebSocket handlers by @peterschutt in #2691
Features 🔧
- Add
server_lifespan
hook by @cofin in #2658 - Add
template_str
for rendering from strings by @JacobCoffee in #2689 - Deprecate
litestar.contrib.piccolo
by @cofin in #2704 - Improve ASGI extension interface by @provinzkraut in #2756
- Support nested DTO field renaming by @provinzkraut in #2764
Other Changes
- Expose
advanced-alchemy
atlitestar.plugins.sqlalchemy
by @cofin in #2654 - Move
contrib.jwt
tosecurity.jwt
by @cofin in #2646 - Correctly raise
WebSocketDisconnect
inWebSocket.receive()
by @peterschutt in #2690
Full Changelog: v2.3.2...v2.4.0
v2.3.2
❤️ Sponsors ❤️
GitHub Sponsors: Telemetry Sports (via @chris-telemetry) @benjamin-kirkbride @crisog @geeshta
OpenCollective: Christian Y, Anonymous
What's Changed
- fix(router): fix reference cycle in node validation by @provinzkraut in #2630
New Contributors
Full Changelog: v2.3.1...v2.3.2
v2.3.1
❤️ Sponsors ❤️
GitHub Sponsors: Telemetry Sports (via @chris-telemetry) @benjamin-kirkbride @crisog @geeshta
OpenCollective: Christian Y, Anonymous
What's Changed
- fix(CLI): #2613 - SSL certificate feature breaks default no-tls setups when using reload or multiple workers by @provinzkraut in #2616
Full Changelog: v2.3.0...v2.3.1
v2.3.0
❤️ Sponsors ❤️
GitHub Sponsors: Telemetry Sports (via @chris-telemetry) @benjamin-kirkbride @crisog @geeshta
OpenCollective: Christian Y, Anonymous
What's Changed
Bugfixes 🐛
- Use the custom request class if available when handling exceptions by @guacs in #2444
- Support generic types for OpenAPI schema generation by @guacs in #2463
- Fix rendering of openapi parameter examples by @peterschutt in #2509
- Fix UTF-8 handling for structlog request logging by @brakhane in #2530
- Fix
ExceptionHandler
typing by @peterschutt in #2533 - Fix variable length tuples in OpenaAPI by @peterschutt in #2552
- Fix channels performance issue with polling without subscriptions by @provinzkraut in #2547
- Fix missing missing oauth2 callback in swagger by @heralight in #2524
- Fix CLI schema export with non-serializable types by @peterschutt in #2581
- Fix OpenAPI schema generation for
Literal
andEnum
unions withNone
by @peterschutt in #2550 - Fix cache overrides when using same route with different handlers by @Alc-Alc in #2592
New features 🔧
- Python 3.12 support by @JacobCoffee in #2396
signature_types
application arg by @peterschutt in #2422- Rapidoc for openapi schema visualisation by @betaboon in #2522
- Support for Pydantic 1 and 2 within the same application by @provinzkraut in #2487
ResponseCacheConfig.cache_response_filter
by @peterschutt in #2537- SSL Context and self-signed certificates for CLI by @geeshta in #2554
- PKCE support by @heralight in #2524
New Contributors 🎉
- @pbaletkeman made their first contribution in #2506
- @betaboon made their first contribution in #2522
- @brakhane made their first contribution in #2530
- @orgarten made their first contribution in #2497
- @AgarwalPragy made their first contribution in #2558
- @heralight made their first contribution in #2524
- @dybi made their first contribution in #2572
- @myslak71 made their first contribution in #2598
Full Changelog: v2.2.1...v2.3.0
v2.2.1
💰 Sponsors 💰
GitHub Sponsors: @benjamin-kirkbride @crisog
OpenCollective: Christian Y, Anonymous
What's Changed
Deprecations ⚠️
- refactor: Deprecate
LitestarType
. by @peterschutt in #2428
Warning
Adds a warning starting in v2.2.1, to be removed in v3.0.0
Fixes 🔧
- fix(infra): add
full
back to optional dependencies by @JacobCoffee in #2433
Full Changelog: v2.2.0...v2.2.1
v2.2.0
💰 Sponsors 💰
GitHub Sponsors: @benjamin-kirkbride @crisog
OpenCollective: Christian Y, Anonymous
What's Changed
Bugfixes
- Fix #2381 - Objects converted to
bool
in debug response by @geeshta in #2384 - Fix #2358: Re-export filters and exceptions from advanced-alchemy by @provinzkraut in #2360
- Fix: Re-Add missing
create_engine()
method to SQLAlchemy configs by @peterschutt in #2382 - Fix #2368 - before_request handler modifies handler signature by @provinzkraut in #2391
- Fix #1301 - Ensure compression is applied before response caching by @provinzkraut in #2393
- Don't implicitly parse URL encoded form data as JSON by @provinzkraut in #2394
New features
- Enable CLI by default by @lsanpablo in #2346
- Allow customization of Pydantic integration by @cofin in #2404
- Add
/schema/openapi.yml
to the available schema paths by @JacobCoffee in #2411 - Add experimental
DTOCodegenBackend
by @provinzkraut in #2388 - Improve error messages for missing required parameters by @provinzkraut in #2418
Other changes
- (typing): app
listeners
param typed asSequence
. by @peterschutt in #2366 - Lazy import example creator by @provinzkraut in #2390
Documentation
- Remove stale hooks #2375 by @JacobCoffee in #2377
- Update
url
topath
inRedirect
to resolve #2407 by @JacobCoffee in #2410 - Add section for
DTOCodegenBackend
by @provinzkraut in #2415 - Fix
docs/usage/testing
indentation by @Lancetnik in #2425
New Contributors
- @lsanpablo made their first contribution in #2346
- @hyperknot made their first contribution in #2420
- @Lancetnik made their first contribution in #2425
Full Changelog: v2.1.1...v2.2.0
v2.1.1
💰 Sponsors 💰
GitHub Sponsors: @benjamin-kirkbride @crisog
OpenCollective: Christian Y, GitHub Sponsors, Shubham Prajapati, Snyk
What's Changed
Bugfixes
- Fix
DeprecationWarning
raised byResponse.to_asgi_response
by @provinzkraut in #2364
Full Changelog: v2.1.0...v2.1.1
v2.1.0
💰 Sponsors 💰
GitHub Sponsors: @benjamin-kirkbride @crisog
OpenCollective: Christian Y, GitHub Sponsors, Shubham Prajapati, Snyk
🎉 New Contributors 🎉
- @ddxv made their first contribution in #2194
- @juan-riveros made their first contribution in #2191
- @davidbrochart made their first contribution in #2247
- @sean-donoghue made their first contribution in #2259
- @sykloid made their first contribution in #2277
- @benjamin-kirkbride made their first contribution in #2276
- @wevonosky made their first contribution in #2268
- @geeshta made their first contribution in #2298
- @RobertRosca made their first contribution in #2329
What's Changed
➕ Features
- feat: make
302
the defaultstatus_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 usingto_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
- docs: updates htmx docs by @cofin in #2202
- docs(DTO): Replace PartialDataDTO with DTOData by @ddxv in #2194
- docs: update benchmarks by @provinzkraut in #2198
- docs: add
app
to events usage example by @juan-riveros in #2191 - docs(responses): fix cookie example reference by @aorith in #2215
- docs(security): incorrect argument to Litestar by @aorith in #2220
- docs: fix typo by @davidbrochart in #2247
- docs: Miscellaneous fixes by @sean-donoghue in #2259
- docs: Add
litestar-fullstack
to README and docs by @odiseo0 in #2284 - docs: Fix async sessions, Pydantic V2 by @geeshta in #2298
- docs(templates): Add missing sync_to_thread for examples by @provinzkraut
in #2309 - docs(signature-namespace): Fix code block to render without removing the imports by @Alc-Alc
in #2326 - docs: docs/update links by @RobertRosca in #2329
🔧 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 fortime-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
intest_file_response
by @sobolevn
in #2331
Full Changelog: v2.0.0...v2.0.2x