SQLAlchemy release 0.8.0 final is now available.

This release now sets 0.8 as the official production series of SQLAlchemy, following two beta releases.

Version 0.8 marks the most consistent, extensible and performant version of SQLAlchemy to date. The development cycle for 0.8 has been particularly long, starting in April of 2012 with a rewrite of the internals of the relationship() construct, followed by the addition of a significant amount of new functionality regarding "polymorphic" querying, and later into a major upgrade to the typing system, including an extensible operator system and type-specific SQL expression support.

Some major new features include:

In addition, a new API for external dialects, along with an associated test suite, allows third-party dialects to be organized and tested in a consistent manner. Several new or updated SQLAlchemy dialects make use of this system, most notably an all new version of IBM DB2 for SQLAlchemy as well as sqlalchemy-akiban.

Beyond the major new additions, SQLAlchemy internals and tests continue to be improved and simplified. Long functions and classes have been broken out into compositions of small functions, which are easier to understand as well as to unit test; tests themselves are being moved from long lists of assertions within a single test into small units each containing a single assertion, with an emphasis on testing smaller units of functionality more exhaustively. The test suite has now surpassed 5000 individual tests, which are run via continuous integration against a variety of Python platforms and DBAPI implementations using on-demand Amazon EC2 instances. Coverage is also high: sqlalchemy.orm is at 95%, sqlalchemy.sql is at 94%, sqlalchemy.ext.declarative is at 99%.

For a full overview of major features and behavioral changes in SQLAlchemy, refer to the What's New? document. For a detailed list of changes in 0.8 and throughout the 0.8 series, refer to the Changelog.

SQLAlchemy 0.8.0 is available for download on the Download Page.