変更履歴¶
0.17.1¶
新しくリリースされた
pyproject-metadata
0.9.0で動作するようにテストを更新しました。gitの作業ツリーで実行されない場合でも動作するようにテストを修正しました。
Daniele Nicolodi — 2024年10月23日。
0.17.0¶
限定APIおよびフリースレッドCPythonをターゲットとするwheelのビルドを拒否するようにしました。フリースレッドCPythonビルドは、まだ限定APIをサポートしていません。
Mesonのネイティブファイルとクロスファイルの書き込みには常にUTF-8エンコーディングを使用します。Mesonのイントロスペクションデータと
pyproject.toml
の読み込みには常にUTF-8エンコーディングを使用します。ソースディストリビューションの作成時に、コミットされていない変更を含めないようにしました。以前は、バージョン管理下にあるファイルのコミットされていない変更は含まれていましたが、追跡されていないファイルは含まれていませんでした。この動作には強力なユースケースがなく、維持するには驚きが大きすぎました。
ソースディストリビューションを再現可能にしました。ソースディストリビューションアーカイブで生成されたファイルには、
pyproject.toml
の変更時間を使用します。限定APIをターゲットとするwheelをビルドする場合、PyPyの
abi3
wheelタグを無効にします。PyPyは限定APIをサポートしていますが、安定したABIはサポートしていません。編集可能なインストールをインポートするときに、パッケージの再構築が失敗した場合、
ImportError
を発生させます。GraalPyのwheelプラットフォームタグを修正しました。
ビルドディレクトリが空の場合、
.gitignore
および.hgignore
ファイルをビルドディレクトリに追加します。存在しないディレクトリの
install_subdir()
を許可します。
Christian Clauss、Daniele Nicolodi、Jonathan J. Helmus、Leo Singer、Loïc Estève、Michael Simacek、Ralf Gommers、Simon McVittie — 2024年10月19日。
0.16.0¶
コンパイル済みの実行可能ファイルまたはPython拡張モジュールを出荷しない場合でも、共有ライブラリを出荷するwheelをプラットフォーム依存として正しく検出するようにしました。
arm64でのmacOSプラットフォームの最小ABIタグとして11.0を使用します。arm64にはより低いバージョンは存在しません。
$ARCHFLAGS
環境変数の解析を改善しました。繰り返される-arch
フラグを正しく処理します。標準出力ストリームで使用されるエンコーディングでエンコードできないUnicode文字を含むファイル名をログに記録しようとしても中断しないようにしました。
Windowsでの
colorama
への依存を削除しました。サポートされていないストリームにログを記録する場合、すべてのANSIターミナルエスケープの使用を抑制します。
エラーメッセージのANSIエスケープカラーリングを修正しました。
編集可能なインストールでも、Mesonの
install_subdir()
関数に渡されるexclude_dirs
およびexclude_files
引数を尊重します。編集可能なインストールからロードされたモジュールに対して、
pkgutil.iter_packages()
が適切に動作するようにしました。ディレクトリをインストールするMesonの
custom_target()
関数をサポートしました。編集可能なインストールで、モジュールのインポート時に再構築がトリガーされると、パッケージが再構築されていることを示すメッセージを発行しますが、作業がない場合は出力を抑制します。
Daniele Nicolodi、Loïc Estève、Ralf Gommers — 2024年4月16日
0.15.0¶
wheelファイルの圧縮を有効にしました。これにより、wheelが数倍小さくなる可能性があります。
Python 3.12以降ではMeson 1.2.3以降が必要です。Meson 1.2.3では
distutils
が不要になり、Python 3.12以降ではsetuptools
への依存関係を削除できるようになりました。Linuxでは
patchelf
を無条件に必要とします。$PATH
に適切なpatchelf
実行可能ファイルが見つからない場合、patchelf
パッケージがビルド依存関係に追加されます。これにより、patchelf
が必要かどうかを判断するために、ビルドプロセス中にmeson setup
が2回実行されるケースを回避できます。$MESON
環境変数またはpyproject.toml
の[tool.meson-python]
の下にあるmeson
キーを使用して、ビルドプロセスで使用するmeson
実行可能ファイルを構成できるようにします。FreeBSDでのwheelプラットフォームタグの生成を修正しました。
他のUNIXライクシステムへのサポートを拡張し、FreeBSDでテストが合格するようにしました。
パッケージメタデータでのパッケージ名の正規化を修正し、パッケージ名の検証を改善しました。
ビルド
RPATH
がビルドディレクトリのサブディレクトリを指している場合のRPATH
処理を修正しました。PyPy向けにコンパイルする場合のPython限定C APIのサポートを修正しました。
builddir
構成設定の名前をbuild-dir
に変更しました。後方互換性のために、buildir
構成設定はエイリアスとして引き続きサポートされます。
Christoph Reiter、Daniele Nicolodi、Elliott Sales de Andrade、Ralf Gommers、Yue Yang — 2023年10月26日
0.14.0¶
wheelをビルドするために
meson install
を実行しないようにしました。ファイルはビルドディレクトリとソースディレクトリからwheelに追加されるため、これは不要でした。これはmeson install
オプションの処理には影響しません。これらのオプションはmeson-python
自体によって解釈されます。meson install
コマンドに指定した場合、--skip-subprojects
に従います。Mesonの
install_subdir()
関数および同様のインストール関数へのexclude_directories
およびexclude_files
引数のサポートを実装しました。これにはMesonバージョン1.1.0以降が必要です。Python限定APIをターゲットとするwheelのビルドのサポートを実装しました。Python限定APIをターゲットとする拡張モジュールは、近日公開のMeson 1.3.0リリースから簡単にビルドできます。
pyproject.toml
にversion
フィールドが含まれておらず、version
が動的に宣言されていない場合は、meson.build
で宣言されたバージョンを静かに使用する代わりに、エラーを発生させます。sdist tarball内のソースファイルのmtimeを修正しました。
$ARCHFLAGS
が設定されている場合、生成されるクロスファイルにobjc
およびobjcpp
コンパイラーを追加します。広範なドキュメントの改善。
Charles Brunet、Daniele Nicolodi、Henry Schreiner、Michał Górny、Ralf Gommers — 2023年9月5日
0.13.2¶
$ARCHFLAGS
を使用するときに生成されるクロスファイルのシステム名を修正しました。null
Mesonインストールタグの処理を修正しました。
Charles Brunet、Daniele Nicolodi — 2023年6月22日。
0.13.1¶
$ARCHFLAGS
を介したmacOSでのクロスコンパイルでの回帰を修正しました。この回帰では、クロスファイルが作成される前にビルドディレクトリに書き込まれ、エラーが発生していました。macOSで
$ARCHFLAGS
を介してクロスコンパイルするときに、$_PYTHON_HOST_PLATFORM
を設定する必要がなくなりました。meson install
を呼び出すときに、--quiet
オプションを追加しました。インストールパスはmeson-python
の実装の詳細であり、通常はユーザーにとって関心のあるものではありません。wheelに追加されたファイルを一覧表示するときに、現在の行をオーバーライドするときのターミナルロギングを修正しました。
purelib
とplatlib
のwheelの場所に分割されたパッケージが検出されたときに発行されるエラーメッセージを改善しました。
Daniele Nicolodi、Ralf Gommers — 2023年4月28日。
0.13.0¶
編集可能なインストールのサポートを追加しました。
meson setup
に渡されるデフォルトのビルドオプションを調整しました。wheelまたはsdistのビルド成果物が作成されるディレクトリが存在することを確認します。PDMでのビルドを修正しました。
macOSでの
$ARCHFLAGS
を使用したクロスコンパイルのC++コンパイラーの指定を修正しました。指定されたビルドディレクトリが存在し、有効なMesonビルドディレクトリである場合にのみ、
meson setup
に--reconfigure
オプションを渡します。meson install
に--no-rebuild
オプションを渡します。pyproject.toml
または設定を通じてmeson install
に--tags
オプションを渡すことで、wheelに含めるファイルを選択できるようにします。Visual Studio環境のセットアップが必要なWindowsを除き、プロジェクトをビルドするための
meson compile
の間接的な使用を避けます。$NINJA
が設定されていても、それが必須の最小バージョンを満たすninja
実行可能ファイルを指していない場合は、ninja
をビルド依存関係に追加しません。Mesonが必須の最小バージョンを満たしているかを実行時に検証します。
ネイティブファイルとクロスファイルをソースディレクトリではなく、ビルドディレクトリに配置します。
typing-extensions
パッケージの依存関係を削除します。Python 3.12以降では
setuptools
への依存関係を追加します。これは、Python 3.12で削除されたdistutils
標準ライブラリモジュールにMesonが依存していることによるビルドエラーを修正します。必須の
pyproject-metadata
バージョンを0.7.1に引き上げます。現在のインタープリターで受け入れられるサフィックスと拡張モジュールのファイル名サフィックスを照合しないことで、より多くのクロスコンパイル設定を許可します。
Mesonによってインストールされるファイルがwheelの場所にマップできない場合にエラーを発生させます。
パッケージが
platlib
とpurelib
の間で分割されている場合にエラーを発生させます。pyproject.toml
にproject
セクションが含まれておらず、Pythonパッケージのメタデータがmeson.build
から派生している場合に警告を生成しません。pyproject.toml
の検証エラーのレポートを改善します。pyproject.toml
のツール固有のオプションの検証を修正します。特に、tool.meson-python.args
テーブルでオプションの不完全なセットを指定できるようにします。
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 — 2023-04-18。
0.12.1¶
$MACOSX_DEPLOYMENT_TARGET
環境変数が誤って$MACOS_DEPLOYMENT_TARGET
にリネームされたリグレッションを修正しました。
Filipe Laíns, Stefan van der Walt — 2023-02-17。
0.12.0¶
Python < 3.8の場合だけでなく、Python < 3.10の場合にも
typing_extensions
パッケージを必要とするようにしました。予期されたエラーに対して、エラーメッセージを出力し、
SystemExit
を発生させます。エラーメッセージの一貫性を修正します。
$ARCHFLAGS
を介したsetuptoolsスタイルのmacOSクロスコンパイルをサポートします。$_PYTHON_HOST_PLATFORM
を介してmacOSプラットフォームタグを上書きできるようにします。不明な構成設定が発生した場合に、エラーメッセージに最も類似した既知のオプション名を含むヒントを含めます。
Daniele Nicolodi, Filipe Laíns, Henry Schreiner, Matthias Köppe, Thomas A Caswell — 2022-12-22。
0.11.0¶
プロジェクトが
mesonbuild
組織に移動しました。Pythonインタープリターをイントロスペクトしてwheelタグを決定します。
ユーザーが
pyproject.toml
のtools.meson-python.args
テーブルのdist
,setup
,compile
, およびinstall
エントリ、またはdist-args
,setup-args
,compile-args
, およびinstall-args
設定を通じて、オプションを直接Mesonに渡せるようにします。可能であれば、システムの
ninja
を使用します。それ以外の場合は、ninja
をビルド依存関係として返します。mesonadd_dist_script
によって生成されたファイルをsdistに含めます。Python 3.11以降では
tomllib
を使用します。wheel
パッケージの依存関係を削除します。entry_points.txt
ファイルが生成されなかったバグを修正しました。Cygwin Python拡張機能が認識されていなかったバグを修正しました。
Ben Greiner, Daniele Nicolodi, Filipe Laíns, Henry Schreiner, Matthias Köppe, Ralf Gommers, Sam Thursfield, Thomas Li — 2022-11-21。
0.10.0¶
pypa/packaging
の動作に合わせて、macOS 11以降のマイナーバージョンを無視します。
Filipe Laíns, Ralf Gommers — 2022-10-05。
0.9.0¶
ABIタグ検出に関する更なる修正。
x86_64ホストで実行されている32ビットPythonでの誤ったタグを修正しました。
sdistの権限を修正しました。
誤ったPyPyタグを修正しました。
wheelに
install_subdirs
が含まれていなかったのを修正しました。プラットフォームタグのために
MACOSX_DEPLOYMENT_TARGET
を考慮に入れるようにしました。不要な場合は、バイナリにrpathを設定しないようにしました。
Eli Schwartz, Filipe Laíns, Matthias Köppe, Peyton Murray, Ralf Gommers, Thomas Kluyver, Thomas Li — 2022-09-29。
0.8.1¶
タグ検出コードの
UnboundLocalError
を修正しました。
Filipe Laíns, Ralf Gommers — 2022-07-28。
0.8.0¶
誤ったABIタグが生成される場合があるのを修正しました。
プラットフォーム文字列にマイナーバージョンがないmacOS 11および12のインストールに対する回避策を追加しました。
Filipe Laíns — 2022-07-26。
0.7.0¶
Meson 0.63.0で誤ったPythonおよびABIタグが生成されるのを修正しました。
プロジェクトライセンスがプロジェクトメタデータに含まれていなかったのを修正しました。
Filipe Laíns, Ralf Gommers — 2022-07-22。
0.6.0¶
プロジェクトがMITに再ライセンスされました。
サポートされていないインタープリターで実行した場合にエラーを出力するようにしました。
わずかに壊れていたDebianヒューリスティクスを修正しました。
pep621
の依存関係をpyproject-metadata
に更新しました。
Filipe Laíns, Ralf Gommers, Thomas A Caswell — 2022-06-21。
0.5.0¶
依存関係検出の改善。
コミットされていない変更をsdistに含めます。
Filipe Laíns — 2022-05-26。
0.4.0¶
リリースビルドの適切なデフォルト引数を設定します。
Filipe Laíns — 2022-05-06。
0.3.0¶
初期のクロスプラットフォームサポート。
ライブラリのバンドルはLinuxでのみサポートされています。
初期ドキュメントを追加します。
ビルドディレクトリがプロジェクトソースに配置されるようになりました。
Filipe Laíns, Rafael Silva — 2022-03-23。
0.2.1¶
Mesonからプロジェクトバージョンを動的に取得するのを修正しました。
Filipe Laíns — 2022-02-26。
0.2.0¶
正しいABIタグとPythonタグを選択します。
Mesonに正しいPython実行可能ファイルを使用させるようにしました。
auditwheelを独自のベンダーリングメカニズムに置き換えました。
Filipe Laíns — 2022-01-24。
0.1.2¶
auditwheelが実行されていなかったのを修正しました。
Filipe Laíns — 2021-11-12。
0.1.1¶
Python < 3.9 のマイナーな互換性の問題を修正しました。
Filipe Laíns — 2021-10-28。
0.1.0¶
初期リリース。
Filipe Laíns — 2021-10-28。