変更履歴

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.tomlversionフィールドが含まれておらず、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に追加されたファイルを一覧表示するときに、現在の行をオーバーライドするときのターミナルロギングを修正しました。

  • purelibplatlibの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の場所にマップできない場合にエラーを発生させます。

  • パッケージが platlibpurelib の間で分割されている場合にエラーを発生させます。

  • pyproject.tomlproject セクションが含まれておらず、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.tomltools.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。