變更日誌

0.17.1

  • 更新測試以適用於新發佈的 pyproject-metadata 0.9.0。

  • 修復未在 git 工作樹中執行時的測試問題。

Daniele Nicolodi — 2024-10-23。

0.17.0

  • 拒絕建置以受限 API 和自由執行緒 CPython 為目標的 wheel:自由執行緒 CPython 建置目前尚不支援受限 API。

  • 始終使用 UTF-8 編碼來寫入 Meson 原生和跨平台檔案。始終使用 UTF-8 編碼來讀取 Meson 自省資料和 pyproject.toml

  • 建立原始碼發佈包時,請勿包含未提交的變更。先前,會包含版本控制下檔案的未提交變更,但不會包含未追蹤的檔案。此行為沒有強烈的使用案例,並且太令人驚訝而不應保留。

  • 使原始碼發佈可重現:針對原始碼發佈封存中的產生檔案使用 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

  • 正確偵測到運送共用程式庫的 wheel 也會是平台相關的,即使它沒有運送編譯的可執行檔或 Python 擴充模組。

  • 在 arm64 上使用 11.0 作為最低 macOS 平台 ABI 標籤:較低的版本在 arm64 上不存在。

  • 改善對 $ARCHFLAGS 環境變數的剖析。正確處理重複的 -arch 旗標。

  • 當嘗試記錄包含無法在標準輸出串流使用的編碼中編碼的 Unicode 字元的檔案名稱時,請勿中斷。

  • 捨棄 Windows 上對 colorama 的相依性。

  • 在記錄到不支援它們的串流時,抑制所有使用 ANSI 終端跳脫字元的情況。

  • 修正錯誤訊息的 ANSI 跳脫字元色彩。

  • 在可編輯安裝中,也遵守傳遞給 install_subdir() Meson 函數的 exclude_dirsexclude_files 引數。

  • pkgutil.iter_packages() 正確適用於從可編輯安裝載入的模組。

  • 新增對安裝目錄的 custom_target() Meson 函數的支援。

  • 在可編輯安裝中,當在模組匯入時觸發重建時,發出訊息指示正在重建套件,但當沒有工作要做時,抑制任何輸出。

Daniele Nicolodi、Loïc Estève、Ralf Gommers — 2024-04-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 套件新增至建置相依性。這避免了在建置過程中執行兩次 meson setup 以判斷是否需要 patchelf 的情況。

  • 允許透過 $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

  • 請勿執行 meson install 來建置 wheel。由於檔案是從建置和原始碼目錄新增到 wheel 中,因此這是沒有必要的。這不會影響 meson install 選項的處理,這些選項由 meson-python 本身解譯。

  • 當為 meson install 命令指定時,遵守 --skip-subprojects

  • 實作支援 Meson install_subdir() 函數和類似安裝函數的 exclude_directoriesexclude_files 引數。這需要 Meson 1.1.0 或更新版本。

  • 實作支援建置以 Python 受限 API 為目標的 wheel。從即將發佈的 Meson 1.3.0 版本開始,可以輕鬆地建置以 Python 受限 API 為目標的擴充模組。

  • pyproject.toml 不包含 version 欄位,且 version 未宣告為動態時,請引發錯誤,而不是靜默地使用 meson.build 中宣告的版本。

  • 修正 sdist tarball 中原始檔的 mtime。

  • 當設定 $ARCHFLAGS 時,將 objcobjcpp 編譯器新增至產生的跨平台檔案。

  • 廣泛的說明文件改善。

Charles Brunet、Daniele Nicolodi、Henry Schreiner、Michał Górny、Ralf Gommers — 2023-09-05

0.13.2

  • 修正使用 $ARCHFLAGS 時產生的跨平台檔案中的系統名稱。

  • 修正 null Meson 安裝標籤的處理。

Charles Brunet、Daniele Nicolodi — 2023-06-22。

0.13.1

  • 修正 macOS 上透過 $ARCHFLAGS 進行跨編譯的迴歸,其中跨平台檔案在建立之前就寫入建置目錄中,導致錯誤。

  • 在 macOS 上透過 $ARCHFLAGS 進行跨編譯時,請勿要求設定 $_PYTHON_HOST_PLATFORM

  • 在叫用 meson install 時,新增 --quiet 選項。安裝路徑是 meson-python 實作的詳細資訊,且通常對使用者而言並不重要。

  • 修正列出新增至 wheel 的檔案時覆寫目前行的終端記錄。

  • 改善當偵測到在 purelibplatlib wheel 位置之間分割的套件時,發出的錯誤訊息。

Daniele Nicolodi、Ralf Gommers — 2023-04-28。

0.13.0

  • 新增對可編輯安裝的支援。

  • 調整傳遞給 meson setup 的預設建置選項。

  • 請確保建立 wheel 或 sdist 建構產物的目錄存在。修正使用 PDM 建構時的問題。

  • 修正使用 macOS 上的 $ARCHFLAGS 進行交叉編譯時,C++ 編譯器的規格。

  • 僅當指定的建構目錄存在且為有效的 Meson 建構目錄時,才將 --reconfigure 選項傳遞給 meson setup

  • --no-rebuild 選項傳遞給 meson install

  • 允許透過 Meson 安裝標籤選擇要包含在 wheel 中的檔案,方法是透過 pyproject.toml 或組態設定將 --tags 選項傳遞給 meson install

  • 除非在 Windows 上需要設定 Visual Studio 環境,否則不要使用 meson compile 間接來建構專案。

  • 如果設定了 $NINJA 但它並未指向具有所需最低版本的 ninja 可執行檔,則不要將 ninja 新增至建構相依性。

  • 在執行時驗證 Meson 是否滿足最低版本需求。

  • 將原生和交叉編譯檔案放置在建構目錄中,而不是原始碼目錄中。

  • 移除 typing-extensions 套件相依性。

  • 在 Python 3.12 及更新版本中新增對 setuptools 的相依性。這修正了由於 Meson 相依於 Python 3.12 中移除的 distutils 標準函式庫模組而導致的建構錯誤。

  • 將所需的 pyproject-metadata 版本提高至 0.7.1。

  • 允許更多交叉編譯設定,方法是不檢查擴充模組的檔案名稱後綴是否符合目前直譯器接受的後綴。

  • 當 Meson 將安裝的檔案無法對應到 wheel 位置時,引發錯誤。

  • 當套件在 platlibpurelib 之間分割時,引發錯誤。

  • 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年4月18日。

0.12.1

  • 修正回歸錯誤,其中 $MACOSX_DEPLOYMENT_TARGET 環境變數被意外重新命名為 $MACOS_DEPLOYMENT_TARGET

Filipe Laíns, Stefan van der Walt — 2023年2月17日。

0.12.0

  • 對於 Python < 3.10 而不是僅限於 Python < 3.8,需要 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 表格中的 distsetupcompileinstall 條目,或透過 dist-argssetup-argscompile-argsinstall-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

  • 忽略 macOS 11 或更新版本上的次要版本,以符合 pypa/packaging 的行為。

Filipe Laíns, Ralf Gommers — 2022年10月5日。

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年9月29日。

0.8.1

  • 修正標籤偵測程式碼中的 UnboundLocalError

Filipe Laíns, Ralf Gommers — 2022年7月28日。

0.8.0

  • 修正在某些情況下產生不正確 ABI 標籤的問題。

  • 為平台字串中遺失次要版本的 macOS 11 和 12 安裝新增變通方法。

Filipe Laíns — 2022年7月26日。

0.7.0

  • 修正 Meson 0.63.0 中產生錯誤的 Python 和 ABI 標籤的問題。

  • 修正專案授權未包含在專案中繼資料中的問題。

Filipe Laíns, Ralf Gommers — 2022年7月22日。

0.6.0

  • 專案重新授權為 MIT 授權。

  • 在不受支援的直譯器中執行時會發生錯誤。

  • 修正稍微損壞的 Debian 啟發法。

  • pep621 相依性更新為 pyproject-metadata

Filipe Laíns, Ralf Gommers, Thomas A Caswell — 2022年6月21日。

0.5.0

  • 改進相依性偵測。

  • 將未提交的變更包含在 sdist 中。

Filipe Laíns — 2022年5月26日。

0.4.0

  • 為發行版本設定健全的預設引數。

Filipe Laíns — 2022年5月6日。

0.3.0

  • 初始跨平台支援。

  • 程式庫捆綁仍然僅在 Linux 上支援。

  • 新增初始文件。

  • 建構目錄現在位於專案原始碼中。

Filipe Laíns, Rafael Silva — 2022年3月23日。

0.2.1

  • 修正從 Meson 動態取得專案版本的問題。

Filipe Laíns — 2022年2月26日。

0.2.0

  • 選取正確的 ABI 和 Python 標籤。

  • 強制 Meson 使用正確的 Python 可執行檔。

  • 以內部供應機制取代 auditwheel。

Filipe Laíns — 2022年1月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日。