**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
* Expose `ParsedType` as public API by peterschutt in https://github.com/litestar-org/litestar/pull/1677
* Add `--pdb` flag and `LITESTAR_PDB` environment variable by provinzkraut in https://github.com/litestar-org/litestar/pull/1742
* Improve schema generation for constrained fields (msgspec and pydantic) by Goldziher in https://github.com/litestar-org/litestar/pull/1751
* Add `operation_class` argument to HTTP route handlers to override OpenAPI `Operation` class by smithk86 in https://github.com/litestar-org/litestar/pull/1732
* Handle nested Literal annotations for OpenApi schema generation by gsakkis in https://github.com/litestar-org/litestar/pull/1829
* Add `--reload-dir` option to CLI `run` command by peterschutt in https://github.com/litestar-org/litestar/pull/1689
* Optional `rich-click` integration by cofin in https://github.com/litestar-org/litestar/pull/1745
* Allow extra attributes on JWTs by cofin in https://github.com/litestar-org/litestar/pull/1695
* Add default modes for `WebSocket` `iter_` methods by provinzkraut in https://github.com/litestar-org/litestar/pull/1733
SQLAlchemy repository
* Add synchronous SQLAlchemy repository pattern by cofin in https://github.com/litestar-org/litestar/pull/1683
* Add oracledb support by cofin in https://github.com/litestar-org/litestar/pull/1694
* Add duckdb and Google spanner support by cofin in https://github.com/litestar-org/litestar/pull/1744
* Add JSON check constraint for Oracle dialect by cofin in https://github.com/litestar-org/litestar/pull/1780
* Add timezone aware datetime by cofin in https://github.com/litestar-org/litestar/pull/1816
* Exclude unloaded columns on `to_dict` by cofin in https://github.com/litestar-org/litestar/pull/1802
* Enforce UTC timestamps are stored and returned by cofin in https://github.com/litestar-org/litestar/pull/1816
DTO
* Support nested keyword arguments in `DTOData.create_instance()` by peterschutt in https://github.com/litestar-org/litestar/pull/1741
* Support hybrid properties and association proxies in `SQLAlchemyDTO` by peterschutt in https://github.com/litestar-org/litestar/pull/1754 and https://github.com/litestar-org/litestar/pull/1776
* Support transfer to generic collection types by peterschutt in https://github.com/litestar-org/litestar/pull/1764
* Support data transfer for non-generic builtin collection annotations by peterschutt in https://github.com/litestar-org/litestar/pull/1799
* Exclude leading underscore fields by default by peterschutt in https://github.com/litestar-org/litestar/pull/1777
* Msgspec and Pydantic DTO factory implementations by peterschutt in https://github.com/litestar-org/litestar/pull/1712
* Factory: Support for arbitrary generic wrappers by peterschutt in https://github.com/litestar-org/litestar/pull/1801
Bugfixes
* Fix 1674: Store and reuse state `deep_copy` directive when copying state by peterschutt in https://github.com/litestar-org/litestar/pull/1678
* Fix 1652: `ParsedType.is_subclass_of(X)` true for union if all union types are subtypes of X by peterschutt in https://github.com/litestar-org/litestar/pull/1690
* Fix 1699: Inconsistent template autoescape behavior by peterschutt in https://github.com/litestar-org/litestar/pull/1718
* Fix 1691: Missing `ChannelsPlugin` in signature namespace population by peterschutt in https://github.com/litestar-org/litestar/pull/1719
* Fix 1681: Gzip not sending small streaming responses by peterschutt in https://github.com/litestar-org/litestar/pull/1723
* Fix 1726: Premature transfer to nested models with `DTOData` by peterschutt in https://github.com/litestar-org/litestar/pull/1731
* Fix 1711: Incorrect `sync_to_thread` warnings for generator dependencies by peterschutt in https://github.com/litestar-org/litestar/pull/1716 and provinzkraut in https://github.com/litestar-org/litestar/pull/1740
* Fix 1762: Dependency injection not available for custom dependencies in `WebSocketListener` by JacobCoffee in https://github.com/litestar-org/litestar/pull/1807
* Fix 1795: OpenAPI schema for `Dict[K, V]` ignores generic by gsakkis in https://github.com/litestar-org/litestar/pull/1828
* Fix JSON comparisons in SQLAlchemy repositories by cofin in https://github.com/litestar-org/litestar/pull/1794
* Fix `simple_asdict()` with attribute value having dataclass type by peterschutt in https://github.com/litestar-org/litestar/pull/1729
* Fix `WebSocketTestSession` not timing out without when connection is not accepted by smithk86 in https://github.com/litestar-org/litestar/pull/1696
* Fix attrs converter unstructuring behavior for attrs models by Goldziher in https://github.com/litestar-org/litestar/pull/1682
* Prevent `msgspec.field` from being called with too many arguments by MatthewNewland in https://github.com/litestar-org/litestar/pull/1686
* Fix alembic migrations generated for models using `GUID` by cofin in https://github.com/litestar-org/litestar/pull/1676
Other changes
* Update cryptography to >= 41.0 by peterschutt in https://github.com/litestar-org/litestar/pull/1772
* Change `ExceptionHandlersMap` to `MutableMapping` by peterschutt in https://github.com/litestar-org/litestar/pull/1791
* Upgrade Swagger UI to `5.0.0` with OpenAPI `3.1` support by cofin in https://github.com/litestar-org/litestar/pull/1826
Breaking
* Remove `state` parameter from `AfterExceptionHookHandler` and `BeforeMessageSendHookHandler` by provinzkraut in https://github.com/litestar-org/litestar/pull/1739
* Remove unused `dto/exceptions.py` by peterschutt in https://github.com/litestar-org/litestar/pull/1773
* Remove generic base from `BaseRouteHandler` by peterschutt in https://github.com/litestar-org/litestar/pull/1819
* Deprecate `Litestar` parameter `preferred_validation_backend` private by provinzkraut in https://github.com/litestar-org/litestar/pull/1810
* Move `Response.get_serializer()` to `serialization.get_serializer()`. by peterschutt in https://github.com/litestar-org/litestar/pull/1820
* Remove `ResponseContainer` and introduce `ASGIResponse` by peterschutt in https://github.com/litestar-org/litestar/pull/1790
Documentation
* Add DTO factory tutorial by peterschutt in https://github.com/litestar-org/litestar/pull/1654
* Add 1565 plugin docs by peterschutt in https://github.com/litestar-org/litestar/pull/1568
* Add debugging guide by provinzkraut in https://github.com/litestar-org/litestar/pull/1742
* Add SQLAlchemy repository tutorial by cofin in https://github.com/litestar-org/litestar/pull/1778
* Add v2 migration guide and release documents by provinzkraut in https://github.com/litestar-org/litestar/pull/1701
* DTO usage docs: Excluding from nested fields. by peterschutt in https://github.com/litestar-org/litestar/pull/1797
* Consistent usage of Oxford commas by patrickarmengol in https://github.com/litestar-org/litestar/pull/1766
* Fix a typo in `openapi.rst` by eldano1995 in https://github.com/litestar-org/litestar/pull/1722
* Fix outdated module imports in Flask migration guide by 01EK98 in https://github.com/litestar-org/litestar/pull/1746
* Fix imports in authentication middleware docs by ctrl-Felix in https://github.com/litestar-org/litestar/pull/1811
* Fix `Request` and `WebSocket` generic args in examples by ctrl-Felix in https://github.com/litestar-org/litestar/pull/1815
New Contributors
* MatthewNewland made their first contribution in https://github.com/litestar-org/litestar/pull/1686
* eldano1995 made their first contribution in https://github.com/litestar-org/litestar/pull/1722
* 01EK98 made their first contribution in https://github.com/litestar-org/litestar/pull/1746
* sarbor made their first contribution in https://github.com/litestar-org/litestar/pull/1755
* ctrl-Felix made their first contribution in https://github.com/litestar-org/litestar/pull/1811
**Full Changelog**: https://github.com/litestar-org/litestar/compare/v2.0.0alpha7...v2.0.0beta1