Changelog¶
0.17.1¶
Tests aktualisiert, um mit dem neu veröffentlichten
pyproject-metadata0.9.0 zu funktionieren.Tests behoben, um auch außerhalb eines Git-Arbeitsbaums zu funktionieren.
Daniele Nicolodi — 23-10-2024.
0.17.0¶
Verhindert das Erstellen von Wheels, die auf die Limited API und Free-Threaded CPython abzielen: Der Free-Threaded CPython-Build unterstützt die Limited API noch nicht.
Verwendet immer UTF-8-Kodierung für das Schreiben von Meson-Native- und Cross-Dateien. Verwendet immer UTF-8-Kodierung für das Lesen von Meson-Introspektionsdaten und
pyproject.toml.Nicht committete Änderungen werden nicht mehr beim Erstellen von Quellcodeverteilungen (source distributions) enthalten. Zuvor waren nicht committete Änderungen an Dateien unter Versionskontrolle enthalten, aber keine untracked Dateien. Es gab keinen starken Anwendungsfall für dieses Verhalten und es war zu überraschend, um es beizubehalten.
Macht Quellcodeverteilungen reproduzierbar: Verwendet die Änderungszeit von
pyproject.tomlfür die generierten Dateien in den Archiven der Quellcodeverteilungen.Deaktiviert das
abi3-Wheel-Tag für PyPy beim Erstellen von Wheels, die auf die Limited API abzielen: PyPy unterstützt die Limited API, aber nicht die stabile ABI.Löst
ImportErroraus, wenn das erneute Erstellen des Pakets beim Importieren einer editierbaren Installation fehlschlägt.Korrigiert den Wheel-Plattform-Tag für GraalPy.
Fügt
.gitignoreund.hgignoreDateien zum Build-Verzeichnis hinzu, wenn dieses leer ist.Erlaubt das Erstellen von
install_subdir()für fehlende Verzeichnisse.
Christian Clauss, Daniele Nicolodi, Jonathan J. Helmus, Leo Singer, Loïc Estève, Michael Simacek, Ralf Gommers, Simon McVittie — 19-10-2024.
0.16.0¶
Erkennt korrekt ein Wheel, das gemeinsam genutzte Bibliotheken (shared libraries) enthält, als plattformabhängig, auch wenn es keine kompilierten ausführbaren Dateien oder Python-Erweiterungsmodule enthält.
Verwendet 11.0 als minimale macOS-Plattform-ABI-Tag auf arm64: Niedrigere Versionen existieren auf arm64 nicht.
Verbessert das Parsen der Umgebungsvariable
$ARCHFLAGS. Behandelt doppelte-arch-Flags korrekt.Bricht nicht ab, wenn versucht wird, Dateinamen zu protokollieren, die Unicode-Zeichen enthalten, die nicht in der für den Standardausgabestrom verwendeten Kodierung kodiert werden können.
Entfernt die Abhängigkeit von
coloramaunter Windows.Unterdrückt alle Verwendungen von ANSI-Terminal-Escapes, wenn in einen Stream protokolliert wird, der diese nicht unterstützt.
Korrigiert die ANSI-Escape-Färbung von Fehlermeldungen.
Berücksichtigt die Argumente
exclude_dirsundexclude_files, die an die Meson-Funktioninstall_subdir()übergeben werden, auch bei editierbaren Installationen.Lässt
pkgutil.iter_packages()für Module, die aus editierbaren Installationen geladen wurden, korrekt funktionieren.Fügt Unterstützung für die Meson-Funktion
custom_target()hinzu, die ein Verzeichnis installiert.Bei editierbaren Installationen, wenn ein erneutes Erstellen beim Importieren eines Moduls ausgelöst wird, wird eine Meldung ausgegeben, die angibt, dass das Paket neu erstellt wird, aber keine Ausgabe, wenn keine Arbeit zu tun ist.
Daniele Nicolodi, Loïc Estève, Ralf Gommers — 16-04-2024
0.15.0¶
Aktiviert die Komprimierung für Wheel-Dateien. Dies kann zu mehrmals kleineren Wheels führen.
Erfordert Meson 1.2.3 oder neuer für Python 3.12 oder neuer. Meson 1.2.3 benötigt
distutilsnicht mehr, was die Entfernung der Abhängigkeit vonsetuptoolsunter Python 3.12 oder neuer ermöglicht.Fordert
patchelfunter Linux unbedingt an. Das Paketpatchelfwird zu den Build-Abhängigkeiten hinzugefügt, wenn kein geeignetespatchelf-Executable im$PATHgefunden wird. Dies vermeidet Fälle, in denenmeson setupwährend des Build-Prozesses zweimal ausgeführt wurde, um festzustellen, obpatchelfbenötigt wird.Ermöglicht die Konfiguration des für den Build-Prozess zu verwendenden
meson-Executables über die Umgebungsvariable$MESONoder den Schlüsselmesonunter[tool.meson-python]inpyproject.toml.Korrigiert die Generierung des Wheel-Plattform-Tags unter FreeBSD.
Erweitert die Unterstützung auf andere UNIX-ähnliche Systeme und lässt die Tests unter FreeBSD erfolgreich durchlaufen.
Korrigiert die Normalisierung des Paketnamens in den Paketmetadaten und verbessert die Validierung des Paketnamens.
Korrigiert die
RPATH-Handhabung, wenn der Build-RPATHauf Unterverzeichnisse des Build-Verzeichnisses zeigt.Korrigiert die Unterstützung für die Python Limited C API beim Kompilieren für PyPy.
Benennt die Konfigurationseinstellung
builddirinbuild-dirum. Aus Gründen der Abwärtskompatibilität bleibt die Konfigurationseinstellungbuildirals Alias erhalten.
Christoph Reiter, Daniele Nicolodi, Elliott Sales de Andrade, Ralf Gommers, Yue Yang — 26-10-2023
0.14.0¶
Führt
meson installnicht mehr zum Erstellen eines Wheels aus. Dies war unnötig, da Dateien aus den Build- und Quellverzeichnissen zum Wheel hinzugefügt werden. Dies hat keinen Einfluss auf die Handhabung vonmeson install-Optionen, die vonmeson-pythonselbst interpretiert werden.Befolgt die Option
--skip-subprojects, wenn diese für den Befehlmeson installangegeben wird.Implementiert Unterstützung für die Argumente
exclude_directoriesundexclude_filesfür die Meson-Funktioneninstall_subdir()und ähnliche Installationsfunktionen. Dies erfordert Meson Version 1.1.0 oder neuer.Implementiert Unterstützung für das Erstellen von Wheels, die auf die Python Limited API abzielen. Erweiterungsmodule, die auf die Python Limited API abzielen, können ab der kommenden Meson 1.3.0-Version einfach erstellt werden.
Wenn
pyproject.tomlkeinversion-Feld enthält undversionnicht als dynamisch deklariert ist, wird ein Fehler ausgelöst, anstatt leise die inmeson.builddeklarierte Version zu verwenden.Korrigiert die mtime der Quelldateien im sdist-Tarball.
Fügt die Compiler
objcundobjcppzur Cross-Datei hinzu, die generiert wird, wenn$ARCHFLAGSgesetzt ist.Umfangreiche Dokumentationsverbesserungen.
Charles Brunet, Daniele Nicolodi, Henry Schreiner, Michał Górny, Ralf Gommers — 05-09-2023
0.13.2¶
Korrigiert den Systemnamen in der Cross-Datei, die bei Verwendung von
$ARCHFLAGSgeneriert wird.Korrigiert die Handhabung von
nullMeson-Installations-Tags.
Charles Brunet, Daniele Nicolodi — 22-06-2023.
0.13.1¶
Korrigiert eine Regression bei der Cross-Kompilierung über
$ARCHFLAGSauf macOS, bei der die Cross-Datei im Build-Verzeichnis geschrieben wurde, bevor es erstellt wurde, was zu einem Fehler führte.Es ist nicht mehr erforderlich,
$_PYTHON_HOST_PLATFORMbeim Cross-Kompilieren über$ARCHFLAGSauf macOS festzulegen.Fügt die Option
--quietbeim Aufrufen vonmeson installhinzu. Die Installationspfade sind ein Detail der Implementierung vonmeson-pythonund für den Benutzer im Allgemeinen nicht von Interesse.Korrigiert die Terminalprotokollierung beim Überschreiben der aktuellen Zeile beim Auflisten von Dateien, die dem Wheel hinzugefügt werden.
Verbessert die Fehlermeldung, die ausgegeben wird, wenn ein Paket erkannt wird, das zwischen den Wheel-Speicherorten
purelibundplatlibaufgeteilt ist.
Daniele Nicolodi, Ralf Gommers — 28-04-2023.
0.13.0¶
Fügt Unterstützung für editierbare Installationen hinzu.
Passt die Standard-Build-Optionen an, die an
meson setupübergeben werden.Stellt sicher, dass das Verzeichnis, in dem die Build-Artefakte des Wheels oder der sdist erstellt werden, existiert. Behebt das Bauen mit PDM.
Korrigiert die Spezifikation des C++-Compilers für die Cross-Kompilierung mit
$ARCHFLAGSauf macOS.Übergibt die Option
--reconfigureanmeson setup, wenn und nur wenn das angegebene Build-Verzeichnis existiert und ein gültiges Meson-Build-Verzeichnis ist.Übergibt die Option
--no-rebuildanmeson install.Ermöglicht die Auswahl der Dateien, die in das Wheel aufgenommen werden sollen, über Meson-Installations-Tags, indem die Option
--tagsanmeson installüberpyproject.tomloder Konfigurationseinstellungen übergeben wird.Verwendet nicht die
meson compile-Indirektion, um das Projekt zu bauen, außer unter Windows, wo es erforderlich ist, die Visual Studio-Umgebung einzurichten.Fügt
ninjanicht zu den Build-Abhängigkeiten hinzu, wenn$NINJAgesetzt ist, aber nicht auf einninja-Executable mit der erforderlichen Mindestversion zeigt.Verifiziert zur Laufzeit, dass Meson die Mindestanforderung erfüllt.
Platziert Native- und Cross-Dateien im Build-Verzeichnis anstatt im Quellverzeichnis.
Entfernt die Abhängigkeit vom Paket
typing-extensions.Fügt die Abhängigkeit von
setuptoolsfür Python 3.12 und neuer hinzu. Dies behebt einen Build-Fehler, da Meson von dem in Python 3.12 entfernten Standardbibliotheksmoduldistutilsabhängt.Erhöht die erforderliche Version von
pyproject-metadataauf 0.7.1.Ermöglicht einige weitere Cross-Kompilierungs-Setups, indem die Suffixe von Erweiterungsmodulen nicht gegen die vom aktuellen Interpreter akzeptierten Suffixe geprüft werden.
Löst einen Fehler aus, wenn eine Datei, die von Meson installiert werden würde, nicht einer Wheel-Position zugeordnet werden kann.
Löst einen Fehler aus, wenn ein Paket zwischen
platlibundpurelibaufgeteilt ist.Generiert keine Warnung, wenn
pyproject.tomlkeinenproject-Abschnitt enthält und die Python-Paketmetadaten ausmeson.buildabgeleitet werden.Verbessert die Berichterstattung über
pyproject.toml-Validierungsfehler.Korrigiert die Validierung von Tool-spezifischen Optionen in
pyproject.toml. Insbesondere wird erlaubt, einen unvollständigen Satz von Optionen in der Tabelletool.meson-python.argsanzugeben.
Daniele Nicolodi, Doron Behar, Eli Schwartz, Filipe Laíns, Lars Pastewka, Luigi Giugliano, Matthias Köppe, Peter Urban, Ralf Gommers, Stefan van der Walt, Thomas Li — 18-04-2023.
0.12.1¶
Korrigiert eine Regression, bei der die Umgebungsvariable
$MACOSX_DEPLOYMENT_TARGETversehentlich in$MACOS_DEPLOYMENT_TARGETumbenannt wurde.
Filipe Laíns, Stefan van der Walt — 17-02-2023.
0.12.0¶
Fordert das Paket
typing_extensionsfür Python < 3.10 an, anstatt nur für Python < 3.8.Gibt eine Fehlermeldung aus und löst
SystemExitbei erwarteten Fehlern aus.Überarbeitet Fehlermeldungen zur Konsistenz.
Unterstützt Setuptools-ähnliche macOS-Cross-Kompilierung über
$ARCHFLAGS.Ermöglicht die Überschreibung des macOS-Plattform-Tags über
$_PYTHON_HOST_PLATFORM.Fügt einen Hinweis mit den ähnlichsten bekannten Optionsnamen in die Fehlermeldung ein, die ausgegeben wird, wenn eine unbekannte Konfigurationseinstellung gefunden wird.
Daniele Nicolodi, Filipe Laíns, Henry Schreiner, Matthias Köppe, Thomas A Caswell — 22-12-2022.
0.11.0¶
Projekt wurde zur
Mesonbuild-Organisation migriert.Bestimmt Wheel-Tags durch Introspektion des Python-Interpreters.
Ermöglicht Benutzern, Optionen direkt an Meson über die Einträge
dist,setup,compileundinstallin der Tabelletools.meson-python.argsinpyproject.tomloder über die Konfigurationseinstellungendist-args,setup-args,compile-argsundinstall-argszu übergeben.Verwendet, wenn möglich, das System-
ninja. Gibt andernfallsninjaals Build-Abhängigkeit zurück.Schließt von
mesonadd_dist_scriptgenerierte Dateien in die sdist ein.Verwendet
tomllibab Python 3.11.Entfernt die Abhängigkeit vom Paket
wheel.Behebt einen Fehler, bei dem die Datei
entry_points.txtnicht generiert wurde.Behebt einen Fehler, bei dem Cygwin Python-Erweiterungen nicht erkannt wurden.
Ben Greiner, Daniele Nicolodi, Filipe Laíns, Henry Schreiner, Matthias Köppe, Ralf Gommers, Sam Thursfield, Thomas Li — 21-11-2022.
0.10.0¶
Ignoriert die Nebenversion unter macOS 11 oder neuer, um das Verhalten von
pypa/packagingzu spiegeln.
Filipe Laíns, Ralf Gommers — 05-10-2022.
0.9.0¶
Weitere Korrekturen bei der ABI-Tag-Erkennung.
Korrigiert den falschen Tag auf 32-Bit-Python, das auf einem x86_64-Host läuft.
Korrigiert sdist-Berechtigungen.
Korrigiert falsche PyPy-Tags.
Korrigiert, dass
install_subdirsnicht in Wheels enthalten war.Berücksichtigt
MACOSX_DEPLOYMENT_TARGETfür den Plattform-Tag.Setzt den rpath auf Binärdateien nicht, wenn er nicht benötigt wird.
Eli Schwartz, Filipe Laíns, Matthias Köppe, Peyton Murray, Ralf Gommers, Thomas Kluyver, Thomas Li — 29-09-2022.
0.8.1¶
Korrigiert
UnboundLocalErrorim Tag-Erkennungscode.
Filipe Laíns, Ralf Gommers — 28-07-2022.
0.8.0¶
Korrigiert, dass manchmal die falschen ABI-Tags generiert wurden.
Fügt einen Workaround für macOS 11- und 12-Installationen hinzu, denen eine Nebenversion im Plattform-String fehlt.
Filipe Laíns — 26-07-2022.
0.7.0¶
Korrigiert die falschen Python- und ABI-Tags, die in Meson 0.63.0 generiert wurden.
Korrigiert, dass die Projektlizenz nicht in den Projektmetadaten enthalten war.
Filipe Laíns, Ralf Gommers — 22-07-2022.
0.6.0¶
Projekt wurde unter die MIT-Lizenz gestellt.
Fehlerausgabe bei Ausführung in einem nicht unterstützten Interpreter.
Korrigiert leicht fehlerhafte Debian-Heuristiken.
Aktualisiert die
pep621-Abhängigkeit zupyproject-metadata.
Filipe Laíns, Ralf Gommers, Thomas A Caswell — 21-06-2022.
0.5.0¶
Verbesserungen bei der Abhängigkeitserkennung.
Schließt nicht committete Änderungen in sdists ein.
Filipe Laíns — 26-05-2022.
0.4.0¶
Setzt vernünftige Standardargumente für Release-Builds.
Filipe Laíns — 06-05-2022.
0.3.0¶
Initiale plattformübergreifende Unterstützung.
Das Bündeln von Bibliotheken wird weiterhin nur unter Linux unterstützt.
Fügt initiale Dokumentation hinzu.
Das Build-Verzeichnis befindet sich jetzt im Projekt-Quellcode.
Filipe Laíns, Rafael Silva — 23-03-2022.
0.2.1¶
Korrigiert das dynamische Abrufen der Projektversion aus Meson.
Filipe Laíns — 26-02-2022.
0.2.0¶
Wählt die korrekten ABI- und Python-Tags aus.
Erzwingt, dass Meson die richtige Python-Executable verwendet.
Ersetzt auditwheel durch einen internen Vendoring-Mechanismus.
Filipe Laíns — 24-01-2022.
0.1.2¶
Korrigiert, dass auditwheel nicht ausgeführt wurde.
Filipe Laíns — 12-11-2021.
0.1.1¶
Korrigiert ein geringfügiges Kompatibilitätsproblem mit Python < 3.9.
Filipe Laíns — 28-10-2021.
0.1.0¶
Erste Veröffentlichung.
Filipe Laíns — 28-10-2021.