Meson-Kompatibilität

meson-python integriert sich eng mit Meson, um Python-Wheels und sdists zu erstellen. Daher hängt die korrekte Funktion von der von Meson implementierten Funktionalität ab. meson-python bemüht sich, die Kompatibilität mit möglichst alten Meson-Versionen aufrechtzuerhalten. Einige Funktionen sind jedoch nur mit neueren Meson-Versionen verfügbar.

0.64.0

Meson ist 0.64.0 ist die minimal erforderliche Version.

1.1.0

Meson 1.1.0 oder neuer wird benötigt, um die Argumente exclude_files und exclude_directories für die Meson-Installationsfunktion install_subdir() und ähnliche Installationsfunktionen zu unterstützen. Auf älteren Meson-Versionen haben diese Argumente keine Auswirkung.

1.2.0

Meson 1.2.0 oder neuer wird benötigt, um die Option --skip-subprojects zu unterstützen, die an meson install übergeben werden kann, um Dateien, die von einigen oder allen Unterprojekten installiert wurden, nicht in das Python-Wheel aufzunehmen.

1.2.3

Meson 1.2.3 oder neuer wird benötigt, um Python 3.12 oder neuer zu unterstützen. Seit Version 1.2.3 verlässt sich Meson nicht mehr auf das Modul distutils, das in Python 3.12 aus der Standardbibliothek entfernt wurde. Wenn es unter Python 3.12 installiert ist, ist meson-python von Meson 1.2.3 oder neuer abhängig.

1.3.0

Meson 1.3.0 oder neuer wird für die Kompilierung von Erweiterungsmodulen benötigt, die auf die eingeschränkte Python-API abzielen.

Build-Frontends erstellen standardmäßig Pakete in einer isolierten Python-Umgebung, in der Build-Abhängigkeiten installiert sind. Meistens werden die neuesten Versionen der Build-Abhängigkeiten installiert, es sei denn, ein Paket oder seine Build-Abhängigkeiten deklarieren explizit eine Versionsbeschränkung. Wenn ein Paket jedoch Funktionalitäten verwendet, die nur in Kombination mit einer bestimmten Meson-Version implementiert sind, wird empfohlen, eine Versionsanforderung explizit in pyproject.toml zu deklarieren. Zum Beispiel

[build-system]
build-backend = 'mesonpy'
requires = [
  'meson-python',
  'meson >= 1.1.0',
]