News and Updates
SQLAlchemy 2.0.57 Released
November 04, 2026 permalink
SQLAlchemy 2.0.57 is now available.
Release 2.0.57 contains no code changes from 2.0.56. It is the first 2.0 release where every file published to PyPI, including the source distribution as well as all wheels, is uploaded through PyPI's trusted publishing mechanism from SQLAlchemy's GitHub Actions workflow with an attestation, so that the complete release carries provenance information.
The detailed changelog for 2.0.57 is at Changelog.
SQLAlchemy 2.0.57 is available on the Download Page.
SQLAlchemy 2.1.8 Released
November 04, 2026 permalink
SQLAlchemy 2.1.8 is now available.
Release 2.1.8 contains no code changes from 2.1.7. It is the first 2.1 release where every file published to PyPI, including the source distribution as well as all wheels, is uploaded through PyPI's trusted publishing mechanism from SQLAlchemy's GitHub Actions workflow with an attestation, so that the complete release carries provenance information. The same change was also made for 2.0.57.
The detailed changelog for 2.1.8 is at Changelog.
SQLAlchemy 2.1.8 is available on the Download Page.
SQLAlchemy 2.0.56 Released
November 03, 2026 permalink
SQLAlchemy 2.0.56 is now available.
Release 2.0.56 contains a series of bugfixes backported from the 2.1.x series, including several more asyncio fixes, among them a regression involving cancellation during AsyncConnection.close(), as well as an ORM fix where criteria added via PropComparator.and_() in selectinload() or lazyload() could lose its parenthesization when the statement came from the compiled cache, and a fix for "expanding" IN parameters whose generated names could collide with other bound parameters in the same statement.
The detailed changelog for 2.0.56 is at Changelog.
SQLAlchemy 2.0.56 is available on the Download Page.
SQLAlchemy 2.1.7 Released
November 03, 2026 permalink
SQLAlchemy 2.1.7 is now available.
Release 2.1.7 fixes a series of regressions in the 2.1 series, mostly in the ORM, including issues with ORM-native dataclass mappings, selectinload() against aliased many-to-many targets, and execution options applied within SAVEPOINTs, as well as a pool regression where garbage collected connections were not returned to the pool on Python 3.15. The release also adds new SessionTransaction.connections and SessionTransaction.bound_connection() accessors, improves typing so that constructs such as Column(Integer) may be assigned to a wider declared type such as Column[int | None], and includes the fixes that were also released in 2.0.56.
The detailed changelog for 2.1.7 is at Changelog.
SQLAlchemy 2.1.7 is available on the Download Page.
SQLAlchemy 2.1.6 Released
October 21, 2026 permalink
SQLAlchemy 2.1.6 is now available.
Release 2.1.6 fixes two ORM regressions in the 2.1 series, one involving multiple with_loader_criteria() options that refer to the same entity in correlated subqueries, and another where .params() would not be applied to statements created using Select.from_statement() when the compiled cache is not in use. The release also contains several fixes that are also backported to the 2.0.x series including more asyncio fixes as well as fixes involving statement caching and dynamic "expanding" parameters for "IN" expressions.
The detailed changelog for 2.1.6 is at Changelog.
SQLAlchemy 2.1.6 is available on the Download Page.