SQLAlchemy herunterladen

Download-Hintergrund und Release-Status.

Version 2.0

Neuestes 2.0 Release: 2.0.39 (2.0.39 über Cheeseshop) (ÄNDERUNGEN)

SQLAlchemy 2.0.39 ist mit der PGP-Schlüssel-ID von Michael Bayer signiert: C4DAFEE1 (verwenden Sie gpg --recv-keys C4DAFEE1 zum Importieren).

Bitte lesen Sie unbedingt die Migrationsanleitung von 1.4 auf 2.0 unter Was ist neu in 2.0?, um vollständige Details zu den seit 1.4 vorgenommenen Änderungen zu erhalten.

Version 1.4

Neuestes 1.4 Release: 1.4.54 (1.4.54 über Cheeseshop) (ÄNDERUNGEN)

Release-Unterstützung: Wartungsmodus

Bitte beachten Sie: Die Serie 1.4 ist die aktuelle "Wartungs"-Serie. Updates für kritische Korrekturen werden nach Bedarf verfügbar gemacht, aber es wird empfohlen, dass Anwendungen, die sich noch in aktiver Entwicklung befinden, mit dem Upgrade auf die aktuelle Serie von SQLAlchemy (derzeit die Serie **2.0**) beginnen.

SQLAlchemy 1.4.54 ist mit der PGP-Schlüssel-ID von Michael Bayer signiert: C4DAFEE1 (verwenden Sie gpg --recv-keys C4DAFEE1 zum Importieren).

Bitte lesen Sie unbedingt die Migrationsanleitung von 1.3 auf 1.4 unter Was ist neu in 1.4?, um vollständige Details zu den seit 1.3 vorgenommenen Änderungen zu erhalten.

Entwicklungsversionen

SQLAlchemy auf GitHub

Weitere Details zum Zugriff auf das Git-Repository finden Sie unter Entwicklung.

Lizenz

SQLAlchemy unterliegt der MIT-Lizenz.

Versionierungs-Schema

Alle Projekte innerhalb der SQLAlchemy Organization verwenden das gleiche Versionsnummerierungsschema, das dem vieler Projekte ähnelt, ein modifiziertes "semantisches Versionierungs"-Schema. Es basiert grob auf dem Versionsnummerierungsschema von Python, mit leichten Anpassungen für die spezifischen Bedürfnisse von SQLAlchemy und Alembic

Bei einer Versionsnummer wie "1.3.6" können wir diese in Haupt-, Neben- und Punkt-Releases aufteilen.

Punkt-Releases

Punkt-Releases sind die häufigste Release-Serie und treten bei aktiven Projekten oft alle paar Wochen oder seltener auf. Ein Punkt-Release sollte immer vollständig kompatibel sein, sodass jedes Projekt ohne Änderungen auf diese Version umsteigen kann, gegeben eine bestimmte Haupt-/Neben-Serie.. Das bedeutet, wenn ein Projekt auf Version 1.2.3 von SQLAlchemy ist, sollte dieses Projekt im Idealfall direkt auf die neueste 1.2.x-Serie, wie z.B. 1.2.19, aktualisiert werden können, ohne auf Zwischen-Releases umsteigen zu müssen.

Ein Punkt-Release enthält drei Kategorien von Änderungen

  • Fehlerbehebungen - Der Hauptzweck eines Punkt-Releases ist die Veröffentlichung von Fehlerbehebungen ohne rückwärts inkompatible Änderungen. Eine Fehlerbehebung, die als zu riskant für die Rückwärtskompatibilität eingestuft wird, wird stattdessen in ein Neben-Release aufgenommen.
  • Anwendungsfall-Ergänzungen - Ein "Anwendungsfall" ist eine Änderungskategorie, die zwischen einer "Fehlerbehebung" und einem "Feature" liegt, und sie beziehen sich meist auf die Unterstützung neuer Datenbankfunktionen. Da neue Datenbankfunktionen kontinuierlich erstellt oder von Benutzern angefordert werden und sich normalerweise auf bestimmte Datentypen oder kleine SQL-Syntaxen beziehen, werden diese Funktionen oft in einem Punkt-Release aufgenommen, sofern sie die Rückwärtskompatibilität innerhalb von SQLAlchemy oder innerhalb von Alembic-Migrationen nicht beeinträchtigen. Größere Anwendungsfall-Ergänzungen werden in einem Neben-Release veröffentlicht.
  • Kleine Feature-Ergänzungen - Da der Release-Zyklus für Punkt-Releases alle paar Wochen dauert, während der Release-Zyklus für ein Neben-Release normalerweise mindestens ein Jahr oder länger ist, werden Feature-Ergänzungen, die keine Auswirkungen auf aktuellen Code oder APIs haben, oft in Punkt-Releases aufgenommen; ein Beispiel hierfür ist die Möglichkeit, Unteroptionen bei einem ORM-Loader zu erstellen.

Beachten Sie, dass Punkt-Releases zwar der konservativste und häufigste Release-Stream sind, es aber immer möglich ist, dass versehentliche Regressionen auftreten. Es wird empfohlen, dass Projekte ihre Software immer vollständig testen, einschließlich der Verwendung von Test-Suiten und/oder Staging-Umgebungen, wenn sie auf eine neue Version einer Software der SQLAlchemy-Organisation aktualisieren.

Signifikante Neben-Releases

Neben-Releases in SQLAlchemy sind eigentlich "große" Ereignisse, da sie in der Regel ein Jahr zur Erstellung benötigen; für verwandte Projekte können Neben-Releases seltener vorkommen. Wir bezeichnen sie möglicherweise als Signifikante Neben-Releases, um anzuzeigen, dass es sich um große Ereignisse handelt, während wir gleichzeitig die Verwechslung mit dem Namen "Haupt" vermeiden, der sich normalerweise auf die linkeste Ziffer im Versionsschema bezieht. Eine Änderung im Neben-Release bedeutet, dass das Projekt Änderungen enthält, die typischerweise rückwärtskompatibel sind innerhalb des Bereichs von nicht zuvor abgekündigten APIs und aktuellen Python-Versionen, mit einem gewissen Risiko für Nicht-Rückwärtskompatibilität, insbesondere innerhalb von SQLAlchemy selbst; dieses Risiko ist aufgrund der Art der Änderungen normalerweise unvermeidlich.

Aus diesem Grund ist ein "Signifikantes Neben-Release" für SQLAlchemy selbst nicht wirklich "klein", und es gibt immer einen umfangreichen Abschnitt mit Migrationshinweisen, der jede API-Anpassung und Verhaltensänderung im Detail beschreibt, die möglicherweise identifiziert werden muss. Für andere Projekte bezieht sich ein Neben-Release typischerweise auf Änderungen in der Unterstützung von Python-Versionen, wie z.B. das Abbrechen der Unterstützung für Python 2.6, oder Alembic, das die Unterstützung für SQLAlchemy 0.9 abkürzt; eine allgemeine Vorstellung davon, was neu ist, finden Sie in der Changelog.

Ein Signifikantes Neben-Release, insbesondere in SQLAlchemy selbst, wird Folgendes enthalten

  • Haupt-Features - Neue API-Features und -Funktionen sowie strukturelle und Leistungsverbesserungen sind Teil jedes Neben-Releases für SQLAlchemy selbst und sehr oft auch für verwandte Projekte. Diese Ergänzungen sind im Allgemeinen vollständig rückwärtskompatibel, jedoch ändern sie oft viel Code intern, was ein höheres Risiko für Regressionen birgt, insbesondere in SQLAlchemy; diese Regressionen werden normalerweise innerhalb der ersten Punkt-Releases eines neuen Neben-Releases behoben. Wie immer sollten nachgelagerte Anwendungen ihre Test-Suiten ausführen und alle Probleme mit einem neuen Neben-Release melden.

  • Verhaltensänderungen - Die meisten Verhaltensänderungen sind subtil und verursachen im Allgemeinen wahrscheinlich keine Probleme. Diese Änderungen können jedoch rückwärts inkompatibel mit Endbenutzer-Code sein, der sich entweder auf ein zuvor fehlerhaftes Verhalten stützt oder der das alte Verhalten umging, das nicht mehr das gleiche Ergebnis liefern wird. Ein typisches Beispiel ist eine SQL-Renderung, die zuvor nicht richtig zitiert oder maskiert wurde und dann repariert wird; nachgelagerte Anwendungen werden dieses Problem typischerweise umgehen, indem sie die Zitierung manuell anwenden, was redundant wird, sobald SQLAlchemy es repariert. Ein Beispiel für eine solche Änderung ist Das spaltenbezogene COLLATE-Schlüsselwort zitiert jetzt den Collation-Namen, das die Zitierung von Datenbank-Collation-Namen hinzufügt, die groß-/kleinschreibungsempfindlich angegeben werden müssen.

    Verhaltensänderungen, bei denen keine Probleme erwartet werden, werden dennoch dokumentiert, falls unvorhergesehene Probleme auftreten. Ein Beispiel ist Die FOR UPDATE-Klausel wird sowohl innerhalb der Joined-Eager-Load-Subquery als auch außerhalb gerendert¶, was die Art und Weise ändert, wie "FOR UPDATE" in einem SELECT gerendert wird, das Joined-Eager-Loading einschließt. Diese Änderung betrifft hauptsächlich Benutzer von MySQL, da sie ein bekanntes MySQL-Problem umgeht und plötzlich Tabellenzeilen aus einer verwandten Tabelle in einem Joined-Eager-Load sperren würde, während dies auf diesem speziellen Backend zuvor nicht der Fall war.

  • API-Abkündigungen - SQLAlchemy und verwandte Projekte versuchen, neue Abkündigungen nur in einem Neben-Release und nicht in einem Punkt-Release hinzuzufügen. Jede abgekündigte API sollte, soweit es in höchstem Maße möglich ist, eineDeprecationWarningauslösen, wenn diese API verwendet wird. Obwohl dies für ältere Versionen nicht immer der Fall war, ist das Ziel, dass Abkündigungen nur in Neben-Releases hinzugefügt werden und dass sie Warnungen auslösen, wenn sie verwendet werden. Dies geschieht, damit Projekte einen vollständigen Neben-Release-Zyklus haben, um von der alten API weg zu migrieren, und damit die Abkündigung leicht erkennbar ist.

  • Entfernung zuvor abgekündigter APIs - Eine API, die in einem bestimmten Neben-Release abgekündigt wurde, kann bereits im nächsten Neben-Release entfernt werden, obwohl eine abgekündigte API oft mehrere Neben-Releases bestehen bleibt. In modernen Releases sollten abgekündigte APIs während der gesamten Dauer eines bestimmten Neben-Releases Warnungen ausgeben, wenn sie verwendet werden.

Haupt-Releases

Haupt-Releases beziehen sich auf den allgemeinen Reifegrad des Projekts, was ein mehrjähriger Status ist. Ein Projekt beginnt mit 0, z.B. sqlalchemy-collectd-0.0.4, was den Reifegrad von anfänglichen Alpha-Releases bis zu langzeitstabilen Releases angibt, mit der Vorstellung, dass über jedes Neben-Release hinweg wesentliche brechende Änderungen auftreten können. Bei der Hauptversion 1 gilt das Projekt als ausgereift. Hauptversion 2 und höher deuten auf wichtige neue Umstellungen für das Projekt hin, ähnlich denen von Python 2 auf Python 3.

Release-Status

Diese Tabelle fasst die gesamte Historie der SQLAlchemy-Releases zusammen, mit weiteren Links zu neueren Neben-Releases.

Haupt-/Nebenversion Erstes Release Neuestes Release Neuestes Punkt-Release Release-Status
2.1 [docs] [Was ist neu?] Entwicklung
2.0 [docs] [Was ist neu?] 2022-10-13 (beta) 2025-03-11 2.0.39 [Änderungen] Aktuelles Release
1.4 [docs] [Was ist neu?] 2020-11-02 (beta) 2024-09-05 1.4.54 [Änderungen] Wartung
1.3 [docs] [Was ist neu?] 2018-11-17 (beta) 2021-03-30 1.3.24 [Änderungen] EOL
1.2 [Was ist neu?] 2017-07-10 (beta) 2019-04-15 1.2.19 [Änderungen] EOL
1.1 [Was ist neu?] 2016-06-16 (beta) 2018-03-06 1.1.18 [Änderungen] EOL
1.0 [Was ist neu?] 2015-03-13 (beta) 2017-08-03 1.0.19 [Änderungen] EOL
0.9 2013-12-30 2015-07-22 0.9.10 [Änderungen] EOL
0.8 2012-12-14 (beta) 2014-07-22 0.8.7 [Änderungen] EOL
0.7 2011-05-21 2013-02-08 0.7.10 [Änderungen] EOL
0.6 2010-02-03 (beta) 2012-05-06 0.6.9 [Änderungen] EOL
0.5 2008-06-12 (beta) 2010-01-16 0.5.8 [Änderungen] EOL
0.4 2007-08-12 (beta) 2008-10-12 0.4.8 [Änderungen] EOL
0.3 2006-10-22 2007-10-14 0.3.11 [Änderungen] EOL
0.2 2006-05-27 2006-09-05 0.2.8 [Änderungen] EOL
0.1 2006-02-14 2006-05-05 0.1.7 [Änderungen] EOL

Erläuterung der Release-Status-Kategorien

Die folgende Tabelle fasst jede Statuskategorie zusammen

Release-Status Erläuterung
Entwicklung Aktive Entwicklung für das nächste Haupt-Release von SQLAlchemy. Der Status "Entwicklung" ist per Definition nicht auf Pypi veröffentlicht und existiert nur im Git-Repository, typischerweise im Hauptzweig. Wenn das erste Release des Status "Entwicklung" erstellt wird, wechselt der Status zu "beta".
Beta Evaluations-Releases für die aktuelle Entwicklungsversion. Diese Releases sind auf Pypi verfügbar, enthalten jedoch ein 'b' in ihrem Versionsnamen, sodass sie gemäß pep-0440 vom pip-Tool nicht installiert werden, es sei denn, das Flag --pre wird angegeben. Der Status "beta" ist im Allgemeinen gegenseitig exklusiv zum Status "Entwicklung".
Aktuelles Release Das aktuelle offizielle Release von SQLAlchemy. Fortlaufend wird daran gearbeitet, Regressionen und Fehler zu beheben, die noch ohne signifikantes Risiko der Destabilisierung angewendet werden können. Anwendungen, die sich in aktiver Entwicklung befinden, sollten immer mindestens auf das "aktuelle" Release verweisen.
Wartung Die Wartungsserie existiert, wenn die "beta"-Serie "aktuell" geworden ist und die vorherige "aktuelle" Serie zu "Wartung" wird. Die Wartungsserie akzeptiert eine begrenzte Anzahl kritischer Fehlerbehebungen, sobald diese auftreten, da erwartet wird, dass Anwendungen in aktiver Entwicklung zur "aktuellen" Version migrieren werden, falls sie dies noch nicht getan haben. Sobald die nächste Entwicklungsversion beginnt, wird die "Wartungs"-Serie nicht mehr veröffentlicht und wechselt zu "EOL".
EOL Diese Release-Version wird nicht mehr unterstützt und gilt als Legacy. Anwendungen, die mit einem EOL-Meilenstein in Produktion betrieben werden, wird dringend empfohlen, auf eine neuere Version zu aktualisieren.