Movatterモバイル変換


[0]ホーム

URL:


Get SQLAlchemy

Download background and Release Status.

Version 2.1

Latest 2.1 Release:2.1.0b1(2.1.0b1 via Cheeseshop)(CHANGES)

SQLAlchemy 2.1.0b1 is signed using Michael Bayer’s PGP key idC4DAFEE1 (usegpg --recv-keys C4DAFEE1 to import).

Please be sure to review the 2.0 to 2.1 migration guide, found atWhat's New in 2.1?, for full details on changes made since 2.0.

Version 2.0

Latest 2.0 Release:2.0.46(2.0.46 via Cheeseshop)(CHANGES)

SQLAlchemy 2.0.46 is signed using Michael Bayer’s PGP key idC4DAFEE1 (usegpg --recv-keys C4DAFEE1 to import).

Please be sure to review the 1.4 to 2.0 migration guide, found atWhat's New in 2.0?, for full details on changes made since 1.4.

Development Versions

SQLAlchemy on GitHub

For further details on Git repository access please seedevelopment.

License

SQLAlchemy is covered by theMIT License.

Version Numbering Scheme

All projects within theSQLAlchemy Organization use the same version numbering scheme, whichis like that of many projects, a modified "semantic versioning" scheme. It isbased roughly on thePython version numbering scheme,with slight adjustments to suit the particular needs of SQLAlchemy and Alembic:

Given a version number like "1.3.6", we can break it up intomajor,minor,andpoint release.

Point Releases

Point releases are the most common release series, occurring as often as every fewweeks or less for active projects. A point releaseshouldalways be fully compatible for any project to move to thatversion with no changes, given a particular major/minor series.. This means, if aproject is on version 1.2.3 of SQLAlchemy, in the ideal case this projectshould be able to upgrade directly to the latest 1.2.x series, such as 1.2.19without the need to move to interim releases.

A point release includes three categories of change:

  • Bug fixes - the primary purpose of a point release is to release fixes for bugswith no backwards incompatible changes being made. A bug fix that isdetermined to be too risky towards backwards compatibility will instead bepushed into a minor release.
  • Use case additions - A "use case" is a category of change that falls inbetween a "bug fix" and a "feature", and they most often apply to support fornew database capabilities. As new database capabilites are created orrequested by users continuously, and usually refer to particular datatypes orsmall SQL syntaxes, these capabilities are often added to a point releaseprovided they don't break backwards compatibility within SQLAlchemy or withinAlembic migrations. Larger use case additions are released within a minorrelease.
  • Small feature additions - As the release cycle for point releases are everyfew weeks, whereas the release cycle for a minor release is usually at least ayear or more, feature additions that have no impact on any current code orAPis will often be included in point releases; an example would be theability to createsub-options on an ORM loader option.

Note that while point releases are the most conservative and frequent releasestream, it is always possible that an accidental regression may be introduced.It is advised that projects always fully test their software including the useof test suites and/or staging environments when upgrading to a new version ofany SQLAlchemy organization software.

Significant Minor Releases

Minor releases in SQLAlchemy are actually kind of "major" events as theytypically take a year to produce; for related projects, minor releasesmay come less frequently. We may refer to them asSignificant Minor Releasesto indicate that they are major events, while at the same time not conflatingthem with the name "major" as typically refers to the leftmost digit in theversioniong scheme. A change in minor releasemeans that the project includes changes that aretypically backwards compatiblewithin the range of not-previously-deprecated APIs and current Python versions,with some risk of non-backwards compatibility, particularly within SQLAlchemyitself; this risk is usually unavoidable due to the nature of the changes.

For this reason, a "Significant Minor Release" is not really that "minor" for SQLAlchemy itself, andthere is alwaysanextensive migration notes section describing in great detailevery API adjustment and behavioral change which may need to be identified.For other projects, a minor release typically refers to changes in Python versionsupport, such as dropping support for Python 2.6, or Alembic dropping support forSQLAlchemy 0.9; a general idea of what's new is in the changelog.

A Significant Minor Release, particularly in SQLAlchemy itself, will include:

  • Major new features - new API features and capabilities, as well as structuraland performance improvements, are part of every minor release forSQLAlchemy itself and very often for related projects. These additions aregenerally fully backwards-compatible, however as they often change lots ofcode internally, there is a higher risk of regressions, particularly inSQLAlchemy; these regressions are usually worked out within the first fewpoint releases of a new minor release. As always, downstream applications should run theirtest suites and report any issues with a new minor release.

  • Behavioral changes - Most behavioral changes are subtle and unlikely to cause issuesin the general case. These changes may however be backwards-incompatible withend-user code that is either relying upon a previously broken behavior, orwhich was working around the old behavior which will no longer produce thesame result. A typical example is a SQL rendering that was previously notquoting or escaping correctly, which is then repaired; downstream applicationswill typically be working around this problem by applying the quoting manually,which becomes redundant once SQLAlchemy repairs it. An example of such a changeisThe column-level COLLATE keyword now quotes the collation name,which adds quoting to database collation names which must be specified ina case sensitive manner.

    Behavioral changes that aren't expected to cause issues are nonethelessdocumented in case some unforeseen issue arises; an example isFOR UPDATEclause is rendered within the joined eager load subquery as well as outside¶,which modifies how "FOR UPDATE" is rendered in a SELECT that includes joinedeager loading. This change impacts users of MySQL the most, as it worksaround a known MySQL issue and will suddenly start locking table rows froma related table in a joined-eager load, whereas this was not the case beforeon this particular backend.

  • API Deprecations - SQLAlchemy and related projects attempt to add new deprecationsonly within a minor release and not within a point release. Any deprecatedAPI should to the greatest degree possible emit aDeprecationWarning whenthat API is used. While this was not always the case for older versions, thegoal is that deprecations are only added in minor releases and that theyshould emit warnings when used. This is so that projects have an entireminor release cycle to migrate off the old API and that the deprecation iseasy to recognize.

  • Removal of previously deprecated APIs - an API that was deprecated in aparticular minor release may be removed as soon as the next minor release, thoughoften a deprecated API will remain for multiple minor releases. In modernreleases, deprecated APIs should be emitting warning when used throughout thespan of a particular minor release.

Major releases

Major releases refer to the general maturity state of the project, which is amulti-year status. A project begins with 0, e.g. sqlalchemy-collectd-0.0.4,which indicates the range of maturity from initial alpha releases intolong-term stable releases, with the notion that major breaking changes mayoccur across each minor release. At major version 1, the project is consideredto be mature. Major version 2 and higher each indicate major new shifts for theproject of a similar nature as that of Python 2 to Python 3.

Release Status

This table summarizes the overall history of SQLAlchemy releases withfurther links for more recent minor releases.

Major/Minor VersionFirst ReleaseLatest ReleaseLatest Point ReleaseRelease Status
2.1[docs][What's New?] 2026-01-21(beta) 2026-01-21(beta)2.1.0b1[changes]Beta
2.0[docs][What's New?] 2022-10-13(beta) 2026-01-212.0.46[changes]Current Release
1.4[docs][What's New?] 2020-11-02(beta) 2024-09-051.4.54[changes]EOL
1.3[What's New?] 2018-11-17(beta) 2021-03-301.3.24[changes]EOL
1.2[What's New?] 2017-07-10(beta) 2019-04-151.2.19[changes]EOL
1.1[What's New?] 2016-06-16(beta) 2018-03-061.1.18[changes]EOL
1.0[What's New?] 2015-03-13(beta) 2017-08-031.0.19[changes]EOL
0.9 2013-12-30 2015-07-220.9.10[changes]EOL
0.8 2012-12-14(beta) 2014-07-220.8.7[changes]EOL
0.7 2011-05-21 2013-02-080.7.10[changes]EOL
0.6 2010-02-03(beta) 2012-05-060.6.9[changes]EOL
0.5 2008-06-12(beta) 2010-01-160.5.8[changes]EOL
0.4 2007-08-12(beta) 2008-10-120.4.8[changes]EOL
0.3 2006-10-22 2007-10-140.3.11[changes]EOL
0.2 2006-05-27 2006-09-050.2.8[changes]EOL
0.1 2006-02-14 2006-05-050.1.7[changes]EOL

About Release Status Categories

The following table summarizes each status category:

Release StatusExplanation
Development Active development for the next major release of SQLAlchemy. The "development" status is by definition not released on Pypi and only exists within the git repository, typically under the main branch. When the first release of the "development" status is created, the status moves to "beta".
Beta Evaluation releases for the current development version. These releases are available on Pypi, however include a 'b' character in their version name so that perpep-0440 these releases will not be installed by the pip tool unless the--pre flag is specified. The "beta" status is generally mutually exclusive versus the "development" status.
Current Release The current official release of SQLAlchemy. Ongoing work is performed to close out regressions and bugs that can still be applied without significant risk of destabilization. Applications which are under active development should seek to always refer to at least the "current" release.
Maintenance The maintenance series exists when the "beta" series has become "current", and the previous "current" series becomes "maintenance". The maintenance series accepts a limited set of critical bug fixes as they are encountered, as it is expected that applications under active development will be migrating to the "current" release if they have not done so already. Once the next development version begins, the "maintenance" series is no longer released and moves to "EOL".
EOL This release version is no longer maintained and is considered legacy. Applications in production use against an EOL milestone are strongly advised to upgrade to a newer version.

Current Releases

Python

Website content copyright © by SQLAlchemy authors and contributors. SQLAlchemy and its documentation are licensed under the MIT license.

SQLAlchemy is a trademark of Michael Bayer. mike(&)zzzcomputing.com All rights reserved.

Website generation byzeekofile, with huge thanks to theBlogofile project.

MastodonMastodon


[8]ページ先頭

©2009-2026 Movatter.jp