Changelog

0.17.1

  • Tests aktualisiert, um mit dem neu veröffentlichten pyproject-metadata 0.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.toml fü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 ImportError aus, wenn das erneute Erstellen des Pakets beim Importieren einer editierbaren Installation fehlschlägt.

  • Korrigiert den Wheel-Plattform-Tag für GraalPy.

  • Fügt .gitignore und .hgignore Dateien 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 colorama unter 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_dirs und exclude_files, die an die Meson-Funktion install_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 distutils nicht mehr, was die Entfernung der Abhängigkeit von setuptools unter Python 3.12 oder neuer ermöglicht.

  • Fordert patchelf unter Linux unbedingt an. Das Paket patchelf wird zu den Build-Abhängigkeiten hinzugefügt, wenn kein geeignetes patchelf-Executable im $PATH gefunden wird. Dies vermeidet Fälle, in denen meson setup während des Build-Prozesses zweimal ausgeführt wurde, um festzustellen, ob patchelf benötigt wird.

  • Ermöglicht die Konfiguration des für den Build-Prozess zu verwendenden meson-Executables über die Umgebungsvariable $MESON oder den Schlüssel meson unter [tool.meson-python] in pyproject.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-RPATH auf Unterverzeichnisse des Build-Verzeichnisses zeigt.

  • Korrigiert die Unterstützung für die Python Limited C API beim Kompilieren für PyPy.

  • Benennt die Konfigurationseinstellung builddir in build-dir um. Aus Gründen der Abwärtskompatibilität bleibt die Konfigurationseinstellung buildir als Alias erhalten.

Christoph Reiter, Daniele Nicolodi, Elliott Sales de Andrade, Ralf Gommers, Yue Yang — 26-10-2023

0.14.0

  • Führt meson install nicht 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 von meson install-Optionen, die von meson-python selbst interpretiert werden.

  • Befolgt die Option --skip-subprojects, wenn diese für den Befehl meson install angegeben wird.

  • Implementiert Unterstützung für die Argumente exclude_directories und exclude_files für die Meson-Funktionen install_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.toml kein version-Feld enthält und version nicht als dynamisch deklariert ist, wird ein Fehler ausgelöst, anstatt leise die in meson.build deklarierte Version zu verwenden.

  • Korrigiert die mtime der Quelldateien im sdist-Tarball.

  • Fügt die Compiler objc und objcpp zur Cross-Datei hinzu, die generiert wird, wenn $ARCHFLAGS gesetzt 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 $ARCHFLAGS generiert wird.

  • Korrigiert die Handhabung von null Meson-Installations-Tags.

Charles Brunet, Daniele Nicolodi — 22-06-2023.

0.13.1

  • Korrigiert eine Regression bei der Cross-Kompilierung über $ARCHFLAGS auf 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_PLATFORM beim Cross-Kompilieren über $ARCHFLAGS auf macOS festzulegen.

  • Fügt die Option --quiet beim Aufrufen von meson install hinzu. Die Installationspfade sind ein Detail der Implementierung von meson-python und 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 purelib und platlib aufgeteilt 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 $ARCHFLAGS auf macOS.

  • Übergibt die Option --reconfigure an meson setup, wenn und nur wenn das angegebene Build-Verzeichnis existiert und ein gültiges Meson-Build-Verzeichnis ist.

  • Übergibt die Option --no-rebuild an meson install.

  • Ermöglicht die Auswahl der Dateien, die in das Wheel aufgenommen werden sollen, über Meson-Installations-Tags, indem die Option --tags an meson install über pyproject.toml oder 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 ninja nicht zu den Build-Abhängigkeiten hinzu, wenn $NINJA gesetzt ist, aber nicht auf ein ninja-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 setuptools für Python 3.12 und neuer hinzu. Dies behebt einen Build-Fehler, da Meson von dem in Python 3.12 entfernten Standardbibliotheksmodul distutils abhängt.

  • Erhöht die erforderliche Version von pyproject-metadata auf 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 platlib und purelib aufgeteilt ist.

  • Generiert keine Warnung, wenn pyproject.toml keinen project-Abschnitt enthält und die Python-Paketmetadaten aus meson.build abgeleitet 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 Tabelle tool.meson-python.args anzugeben.

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_TARGET versehentlich in $MACOS_DEPLOYMENT_TARGET umbenannt wurde.

Filipe Laíns, Stefan van der Walt — 17-02-2023.

0.12.0

  • Fordert das Paket typing_extensions für Python < 3.10 an, anstatt nur für Python < 3.8.

  • Gibt eine Fehlermeldung aus und löst SystemExit bei 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, compile und install in der Tabelle tools.meson-python.args in pyproject.toml oder über die Konfigurationseinstellungen dist-args, setup-args, compile-args und install-args zu übergeben.

  • Verwendet, wenn möglich, das System-ninja. Gibt andernfalls ninja als Build-Abhängigkeit zurück.

  • Schließt von mesonadd_dist_script generierte Dateien in die sdist ein.

  • Verwendet tomllib ab Python 3.11.

  • Entfernt die Abhängigkeit vom Paket wheel.

  • Behebt einen Fehler, bei dem die Datei entry_points.txt nicht 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/packaging zu 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_subdirs nicht in Wheels enthalten war.

  • Berücksichtigt MACOSX_DEPLOYMENT_TARGET fü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 UnboundLocalError im 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 zu pyproject-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.