Script 'mail_helper' called by obssrc
Hello community,
here is the log from the commit of package python-py-build-cmake for
openSUSE:Factory checked in at 2026-10-26 10:02:25
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/python-py-build-cmake (Old)
and /work/SRC/openSUSE:Factory/.python-py-build-cmake.new.2252680 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Package is "python-py-build-cmake"
Mon Oct 26 10:02:25 2026 rev:7 rq:1392526 version:0.5.1
Changes:
--------
---
/work/SRC/openSUSE:Factory/python-py-build-cmake/python-py-build-cmake.changes
2025-09-30 17:43:36.560350984 +0200
+++
/work/SRC/openSUSE:Factory/.python-py-build-cmake.new.2252680/python-py-build-cmake.changes
2026-10-26 10:03:52.796471021 +0100
@@ -1,0 +2,8 @@
+Sun Oct 25 19:37:13 UTC 2026 - Dirk Müller <[email protected]>
+
+- update to 0.5.1:
+ * Support free-threaded Python in latest CMake
+ * Add Python 3.15 support
+ * Drop Python 3.7 support
+
+-------------------------------------------------------------------
Old:
----
py-build-cmake-0.5.0-gh.tar.gz
New:
----
py-build-cmake-0.5.1-gh.tar.gz
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Other differences:
------------------
++++++ python-py-build-cmake.spec ++++++
--- /var/tmp/diff_new_pack.CWE4Ik/_old 2026-10-26 10:03:54.774553975 +0100
+++ /var/tmp/diff_new_pack.CWE4Ik/_new 2026-10-26 10:03:54.777554101 +0100
@@ -1,7 +1,7 @@
#
# spec file for package python-py-build-cmake
#
-# Copyright (c) 2025 SUSE LLC and contributors
+# Copyright (c) 2026 SUSE LLC and contributors
#
# All modifications and additions to the file contributed by third parties
# remain the property of their copyright owners, unless otherwise agreed
@@ -18,32 +18,33 @@
%{?sle15_python_module_pythons}
Name: python-py-build-cmake
-Version: 0.5.0
+Version: 0.5.1
Release: 0
Summary: Modern, PEP 517 compliant build backend for creating Python
packages with
License: MIT
URL: https://github.com/tttapa/py-build-cmake
Source:
https://github.com/tttapa/py-build-cmake/archive/refs/tags/%{version}.tar.gz#/py-build-cmake-%{version}-gh.tar.gz
BuildRequires: %{python_module click >= 8.1.3}
-BuildRequires: %{python_module distlib >= 0.3.5}
+BuildRequires: %{python_module distlib >= 0.4.0}
BuildRequires: %{python_module flit-core >= 3.7}
-BuildRequires: %{python_module lark}
+BuildRequires: %{python_module lark >= 1.1.9}
+BuildRequires: %{python_module packaging >= 23.2}
BuildRequires: %{python_module pip}
-BuildRequires: %{python_module pyproject-metadata}
+BuildRequires: %{python_module pyproject-metadata >= 0.9.1}
BuildRequires: %{python_module pytest}
-BuildRequires: %{python_module tomli if %python-base < 3.11}
+BuildRequires: %{python_module tomli >= 1.2.3 if %python-base < 3.11}
BuildRequires: cmake
BuildRequires: fdupes
BuildRequires: python-rpm-macros
Requires: cmake
Requires: python-click >= 8.1.3
-Requires: python-distlib >= 0.3.5
+Requires: python-distlib >= 0.4.0
Requires: python-packaging >= 23.2
%if 0%{?python_version_nodots} < 311
Requires: python-tomli >= 1.2.3
%endif
-Requires: python-lark
-Requires: python-pyproject-metadata
+Requires: python-lark >= 1.1.9
+Requires: python-pyproject-metadata >= 0.9.1
Requires(post): update-alternatives
Requires(postun): update-alternatives
BuildArch: noarch
++++++ py-build-cmake-0.5.0-gh.tar.gz -> py-build-cmake-0.5.1-gh.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/py-build-cmake-0.5.0/.github/workflows/wheel.yml
new/py-build-cmake-0.5.1/.github/workflows/wheel.yml
--- old/py-build-cmake-0.5.0/.github/workflows/wheel.yml 2025-08-14
23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/.github/workflows/wheel.yml 2026-08-22
13:02:06.000000000 +0200
@@ -12,13 +12,13 @@
jobs:
build:
runs-on: ubuntu-latest
- container: '${{ matrix.python }}:${{ matrix.python-version }}${{
matrix.image-suffix }}-bullseye'
+ container: '${{ matrix.python }}:${{ matrix.python-version }}${{
matrix.image-suffix }}-bookworm'
strategy:
matrix:
python: ['python']
- python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
+ python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
include:
- - python-version: '3.14'
+ - python-version: '3.15'
image-suffix: '-rc' # Change this to '-rc' to test pre-releases
python: 'python'
- python-version: '3.10'
@@ -46,15 +46,16 @@
test:
needs: build
runs-on: ubuntu-latest
- container: '${{ matrix.python }}:${{ matrix.python-version }}${{
matrix.image-suffix }}-bullseye'
+ container: '${{ matrix.python }}:${{ matrix.python-version }}${{
matrix.image-suffix }}-bookworm'
strategy:
matrix:
python: ['python']
- python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13']
+ python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13', '3.14']
include:
- - python-version: '3.14'
- image-suffix: '-rc' # Change this to '-rc' to test pre-releases
- python: 'python'
+ # TODO: figure out why stubgen creates __init__.pyi files for
namespace packages in Python 3.15
+ # - python-version: '3.15'
+ # image-suffix: '-rc' # Change this to '-rc' to test pre-releases
+ # python: 'python'
- python-version: '3.10'
python: 'pypy'
steps:
@@ -74,7 +75,7 @@
runs-on: ${{ matrix.os }}
strategy:
matrix:
- python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13',
'pypy3.10', '3.13t', '3.14', '3.14t']
+ python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13',
'pypy3.10', '3.13t', '3.14', '3.14t']
os: ['windows-latest']
steps:
- uses: actions/checkout@v4
@@ -103,7 +104,7 @@
runs-on: ${{ matrix.os }}
strategy:
matrix:
- python-version: ['3.7', '3.8', '3.9', '3.10', '3.11', '3.12', '3.13',
'pypy3.10', '3.13t', '3.14', '3.14t']
+ python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13',
'pypy3.10', '3.13t', '3.14', '3.14t']
os: ['windows-latest']
steps:
- uses: actions/checkout@v4
@@ -130,10 +131,8 @@
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13',
'pypy3.10', '3.13t', '3.14', '3.14t']
os: ['macos-latest']
include:
- - python-version: '3.7'
- os: 'macos-13'
- python-version: '3.13'
- os: 'macos-13'
+ os: 'macos-15-intel'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
@@ -161,10 +160,8 @@
python-version: ['3.8', '3.9', '3.10', '3.11', '3.12', '3.13',
'pypy3.10', '3.13t', '3.14'] # '3.14t' is blocked by
https://github.com/wjakob/nanobind/pull/1128
os: ['macos-latest']
include:
- - python-version: '3.7'
- os: 'macos-13'
- python-version: '3.13'
- os: 'macos-13'
+ os: 'macos-15-intel'
steps:
- uses: actions/checkout@v4
- uses: actions/setup-python@v5
@@ -188,11 +185,17 @@
runs-on: ${{ matrix.os }}
strategy:
matrix:
- os: [ubuntu-22.04, windows-2022, macos-13, macos-latest]
+ os: [ubuntu-22.04, windows-2022, macos-15-intel, macos-latest]
project: [pybind11-project, nanobind-project, swig-project]
fail-fast: false
steps:
- uses: actions/checkout@v4
+ - name: Install Rust x86_64 target
+ if: ${{ matrix.os == 'macos-latest' }}
+ run: rustup target add x86_64-apple-darwin
+ - name: Install Rust aarch64 target
+ if: ${{ matrix.os == 'macos-15-intel' }}
+ run: rustup target add aarch64-apple-darwin
- uses: actions/download-artifact@v4
with:
name: py_build_cmake-whl-python3.11
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/py-build-cmake-0.5.0/.pre-commit-config.yaml
new/py-build-cmake-0.5.1/.pre-commit-config.yaml
--- old/py-build-cmake-0.5.0/.pre-commit-config.yaml 2025-08-14
23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/.pre-commit-config.yaml 2026-08-22
13:02:06.000000000 +0200
@@ -1,6 +1,6 @@
repos:
- repo: https://github.com/astral-sh/ruff-pre-commit
- rev: "v0.11.13"
+ rev: "v0.12.9"
hooks:
- id: ruff
args: ["--fix", "--show-fixes"]
@@ -9,7 +9,7 @@
hooks:
- id: black
- repo: https://github.com/pre-commit/mirrors-mypy
- rev: "v1.16.0"
+ rev: "v1.17.1"
hooks:
- id: mypy
files: ^src
@@ -21,12 +21,12 @@
- "lark>=1.1.9,<2"
- "click>=8.1.3,<9"
- repo: https://github.com/pre-commit/mirrors-clang-format
- rev: "v20.1.5"
+ rev: "v20.1.8"
hooks:
- id: clang-format
types_or: [c++, c]
- repo: https://github.com/pre-commit/pre-commit-hooks
- rev: "v5.0.0"
+ rev: "v6.0.0"
hooks:
- id: check-added-large-files
- id: check-case-conflict
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/py-build-cmake-0.5.0/README.md
new/py-build-cmake-0.5.1/README.md
--- old/py-build-cmake-0.5.0/README.md 2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/README.md 2026-08-22 13:02:06.000000000 +0200
@@ -59,7 +59,7 @@
```toml
[project] # Project metadata
name = "example-project"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
readme = "README.md"
license = "MIT"
license-files = ["LICENSE"]
@@ -67,7 +67,7 @@
dynamic = ["version", "description"]
[build-system] # How pip and other frontends should build this project
-requires = ["py-build-cmake~=0.5.0"]
+requires = ["py-build-cmake~=0.5.1"]
build-backend = "py_build_cmake.build"
[tool.py-build-cmake.module] # Where to find the Python module to package
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/py-build-cmake-0.5.0/docs/conf.py
new/py-build-cmake-0.5.1/docs/conf.py
--- old/py-build-cmake-0.5.0/docs/conf.py 2025-08-14 23:04:51.000000000
+0200
+++ new/py-build-cmake-0.5.1/docs/conf.py 2026-08-22 13:02:06.000000000
+0200
@@ -14,7 +14,7 @@
project = "py-build-cmake"
copyright = "2025, Pieter P"
author = "Pieter P"
-release = "0.5.0"
+release = "0.5.1"
# -- General configuration ---------------------------------------------------
#
https://www.sphinx-doc.org/en/master/usage/configuration.html#general-configuration
@@ -39,7 +39,7 @@
html_context = {
"github_user": "tttapa",
"github_repo": "py-build-cmake",
- "github_version": "0.5.0",
+ "github_version": "0.5.1",
"doc_path": "docs",
}
html_show_sourcelink = False
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/docs/getting-started/first-steps.md
new/py-build-cmake-0.5.1/docs/getting-started/first-steps.md
--- old/py-build-cmake-0.5.0/docs/getting-started/first-steps.md
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/docs/getting-started/first-steps.md
2026-08-22 13:02:06.000000000 +0200
@@ -22,7 +22,7 @@
```toml
[build-system]
-requires = ["py-build-cmake~=0.5.0"]
+requires = ["py-build-cmake~=0.5.1"]
build-backend = "py_build_cmake.build"
```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/py-build-cmake-0.5.0/docs/usage/cross-compilation.md
new/py-build-cmake-0.5.1/docs/usage/cross-compilation.md
--- old/py-build-cmake-0.5.0/docs/usage/cross-compilation.md 2025-08-14
23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/docs/usage/cross-compilation.md 2026-08-22
13:02:06.000000000 +0200
@@ -88,7 +88,7 @@
We'll first clone `py-build-cmake` and its example projects:
```sh
-git clone https://github.com/tttapa/py-build-cmake --branch=0.5.0
+git clone https://github.com/tttapa/py-build-cmake --branch=0.5.1
cd py-build-cmake
```
@@ -193,7 +193,7 @@
[100%] Built target _add_module
-- Installing:
/tmp/xxxxx/staging/pybind11_project/_add_module.cpython-311-aarch64-linux-gnu.so
[...]
-Successfully built
pybind11_project-0.5.0-cp311-cp311-manylinux_2_27_aarch64.whl
+Successfully built
pybind11_project-0.5.1-cp311-cp311-manylinux_2_27_aarch64.whl
```
You can see that CMake is using the cross-compiler we downloaded, and that it
managed to locate the version of Python we requested (CPython 3.11 for
AArch64).
@@ -201,7 +201,7 @@
(`.cpython-311-aarch64-linux-gnu.so` in this case) and the Wheel tags
(`cp311-cp311-manylinux_2_27_aarch64`).
-You can now copy the Wheel package in
`examples/pybind11-project/dist/pybind11_project-0.5.0-cp311-cp311-manylinux_2_27_aarch64.whl`
+You can now copy the Wheel package in
`examples/pybind11-project/dist/pybind11_project-0.5.1-cp311-cp311-manylinux_2_27_aarch64.whl`
to e.g. a Raspberry Pi and install it using `pip install`.
### Automated Bash scripts
@@ -221,42 +221,42 @@
`examples/pybind11-project/dist` directory:
```sh
examples/pybind11-project/dist
-├── pybind11_project-0.5.0-cp37-cp37m-linux_armv6l.whl
-├── pybind11_project-0.5.0-cp37-cp37m-manylinux_2_27_aarch64.whl
-├── pybind11_project-0.5.0-cp37-cp37m-manylinux_2_27_armv7l.whl
-├── pybind11_project-0.5.0-cp37-cp37m-manylinux_2_27_x86_64.whl
-├── pybind11_project-0.5.0-cp38-cp38-linux_armv6l.whl
-├── pybind11_project-0.5.0-cp38-cp38-manylinux_2_27_aarch64.whl
-├── pybind11_project-0.5.0-cp38-cp38-manylinux_2_27_armv7l.whl
-├── pybind11_project-0.5.0-cp38-cp38-manylinux_2_27_x86_64.whl
-├── pybind11_project-0.5.0-cp39-cp39-linux_armv6l.whl
-├── pybind11_project-0.5.0-cp39-cp39-manylinux_2_27_aarch64.whl
-├── pybind11_project-0.5.0-cp39-cp39-manylinux_2_27_armv7l.whl
-├── pybind11_project-0.5.0-cp39-cp39-manylinux_2_27_x86_64.whl
-├── pybind11_project-0.5.0-cp310-cp310-linux_armv6l.whl
-├── pybind11_project-0.5.0-cp310-cp310-manylinux_2_27_aarch64.whl
-├── pybind11_project-0.5.0-cp310-cp310-manylinux_2_27_armv7l.whl
-├── pybind11_project-0.5.0-cp310-cp310-manylinux_2_27_x86_64.whl
-├── pybind11_project-0.5.0-cp311-cp311-linux_armv6l.whl
-├── pybind11_project-0.5.0-cp311-cp311-manylinux_2_27_aarch64.whl
-├── pybind11_project-0.5.0-cp311-cp311-manylinux_2_27_armv7l.whl
-├── pybind11_project-0.5.0-cp311-cp311-manylinux_2_27_x86_64.whl
-├── pybind11_project-0.5.0-cp312-cp312-linux_armv6l.whl
-├── pybind11_project-0.5.0-cp312-cp312-manylinux_2_27_aarch64.whl
-├── pybind11_project-0.5.0-cp312-cp312-manylinux_2_27_armv7l.whl
-├── pybind11_project-0.5.0-cp312-cp312-manylinux_2_27_x86_64.whl
-├── pybind11_project-0.5.0-cp313-cp313-linux_armv6l.whl
-├── pybind11_project-0.5.0-cp313-cp313-manylinux_2_27_aarch64.whl
-├── pybind11_project-0.5.0-cp313-cp313-manylinux_2_27_armv7l.whl
-├── pybind11_project-0.5.0-cp313-cp313-manylinux_2_27_x86_64.whl
-├── pybind11_project-0.5.0-pp37-pypy37_pp73-manylinux_2_27_aarch64.whl
-├── pybind11_project-0.5.0-pp37-pypy37_pp73-manylinux_2_27_x86_64.whl
-├── pybind11_project-0.5.0-pp38-pypy38_pp73-manylinux_2_27_aarch64.whl
-├── pybind11_project-0.5.0-pp38-pypy38_pp73-manylinux_2_27_x86_64.whl
-├── pybind11_project-0.5.0-pp39-pypy39_pp73-manylinux_2_27_aarch64.whl
-├── pybind11_project-0.5.0-pp39-pypy39_pp73-manylinux_2_27_x86_64.whl
-├── pybind11_project-0.5.0-pp310-pypy310_pp73-manylinux_2_27_aarch64.whl
-└── pybind11_project-0.5.0-pp310-pypy310_pp73-manylinux_2_27_x86_64.whl
+├── pybind11_project-0.5.1-cp37-cp37m-linux_armv6l.whl
+├── pybind11_project-0.5.1-cp37-cp37m-manylinux_2_27_aarch64.whl
+├── pybind11_project-0.5.1-cp37-cp37m-manylinux_2_27_armv7l.whl
+├── pybind11_project-0.5.1-cp37-cp37m-manylinux_2_27_x86_64.whl
+├── pybind11_project-0.5.1-cp38-cp38-linux_armv6l.whl
+├── pybind11_project-0.5.1-cp38-cp38-manylinux_2_27_aarch64.whl
+├── pybind11_project-0.5.1-cp38-cp38-manylinux_2_27_armv7l.whl
+├── pybind11_project-0.5.1-cp38-cp38-manylinux_2_27_x86_64.whl
+├── pybind11_project-0.5.1-cp39-cp39-linux_armv6l.whl
+├── pybind11_project-0.5.1-cp39-cp39-manylinux_2_27_aarch64.whl
+├── pybind11_project-0.5.1-cp39-cp39-manylinux_2_27_armv7l.whl
+├── pybind11_project-0.5.1-cp39-cp39-manylinux_2_27_x86_64.whl
+├── pybind11_project-0.5.1-cp310-cp310-linux_armv6l.whl
+├── pybind11_project-0.5.1-cp310-cp310-manylinux_2_27_aarch64.whl
+├── pybind11_project-0.5.1-cp310-cp310-manylinux_2_27_armv7l.whl
+├── pybind11_project-0.5.1-cp310-cp310-manylinux_2_27_x86_64.whl
+├── pybind11_project-0.5.1-cp311-cp311-linux_armv6l.whl
+├── pybind11_project-0.5.1-cp311-cp311-manylinux_2_27_aarch64.whl
+├── pybind11_project-0.5.1-cp311-cp311-manylinux_2_27_armv7l.whl
+├── pybind11_project-0.5.1-cp311-cp311-manylinux_2_27_x86_64.whl
+├── pybind11_project-0.5.1-cp312-cp312-linux_armv6l.whl
+├── pybind11_project-0.5.1-cp312-cp312-manylinux_2_27_aarch64.whl
+├── pybind11_project-0.5.1-cp312-cp312-manylinux_2_27_armv7l.whl
+├── pybind11_project-0.5.1-cp312-cp312-manylinux_2_27_x86_64.whl
+├── pybind11_project-0.5.1-cp313-cp313-linux_armv6l.whl
+├── pybind11_project-0.5.1-cp313-cp313-manylinux_2_27_aarch64.whl
+├── pybind11_project-0.5.1-cp313-cp313-manylinux_2_27_armv7l.whl
+├── pybind11_project-0.5.1-cp313-cp313-manylinux_2_27_x86_64.whl
+├── pybind11_project-0.5.1-pp37-pypy37_pp73-manylinux_2_27_aarch64.whl
+├── pybind11_project-0.5.1-pp37-pypy37_pp73-manylinux_2_27_x86_64.whl
+├── pybind11_project-0.5.1-pp38-pypy38_pp73-manylinux_2_27_aarch64.whl
+├── pybind11_project-0.5.1-pp38-pypy38_pp73-manylinux_2_27_x86_64.whl
+├── pybind11_project-0.5.1-pp39-pypy39_pp73-manylinux_2_27_aarch64.whl
+├── pybind11_project-0.5.1-pp39-pypy39_pp73-manylinux_2_27_x86_64.whl
+├── pybind11_project-0.5.1-pp310-pypy310_pp73-manylinux_2_27_aarch64.whl
+└── pybind11_project-0.5.1-pp310-pypy310_pp73-manylinux_2_27_x86_64.whl
```
### A closer look at the CMake toolchain files
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/py-build-cmake-0.5.0/docs/usage/editable-install.md
new/py-build-cmake-0.5.1/docs/usage/editable-install.md
--- old/py-build-cmake-0.5.0/docs/usage/editable-install.md 2025-08-14
23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/docs/usage/editable-install.md 2026-08-22
13:02:06.000000000 +0200
@@ -89,7 +89,9 @@
_spec.loader.exec_module(_mod)
# After importing, add its symbols to our global scope
_vars = _mod.__dict__.copy()
-for _k in
['__builtins__','__cached__','__file__','__loader__','__name__','__package__','__path__','__spec__']:
_vars.pop(_k)
+for _k in
['__builtins__','__cached__','__file__','__loader__','__name__','__package__','__path__','__spec__']:
+ try: _vars.pop(_k)
+ except KeyError: pass
globals().update(_vars)
# Clean up
del _k, _spec, _mod, _vars, _util
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/py-build-cmake-0.5.0/examples/minimal/README.md
new/py-build-cmake-0.5.1/examples/minimal/README.md
--- old/py-build-cmake-0.5.0/examples/minimal/README.md 2025-08-14
23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/examples/minimal/README.md 2026-08-22
13:02:06.000000000 +0200
@@ -124,7 +124,7 @@
[project]
name = "minimal"
readme = "README.md"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ "name" = "Pieter P", "email" = "[email protected]" }]
@@ -132,13 +132,13 @@
classifiers = [
"Development Status :: 3 - Alpha",
"Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
"Operating System :: POSIX :: Linux",
"Operating System :: Microsoft :: Windows",
"Operating System :: MacOS",
@@ -171,7 +171,7 @@
```toml
[build-system]
-requires = ["py-build-cmake~=0.5.0"]
+requires = ["py-build-cmake~=0.5.1"]
build-backend = "py_build_cmake.build"
```
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/py-build-cmake-0.5.0/examples/minimal/pyproject.toml
new/py-build-cmake-0.5.1/examples/minimal/pyproject.toml
--- old/py-build-cmake-0.5.0/examples/minimal/pyproject.toml 2025-08-14
23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/examples/minimal/pyproject.toml 2026-08-22
13:02:06.000000000 +0200
@@ -1,7 +1,7 @@
[project]
name = "minimal"
readme = "README.md"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ "name" = "Pieter P", "email" = "[email protected]" }]
@@ -9,13 +9,13 @@
classifiers = [
"Development Status :: 3 - Alpha",
"Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
"Operating System :: POSIX :: Linux",
"Operating System :: Microsoft :: Windows",
"Operating System :: MacOS",
@@ -25,7 +25,7 @@
dynamic = ["version", "description"]
[build-system]
-requires = ["py-build-cmake~=0.5.0"]
+requires = ["py-build-cmake~=0.5.1"]
build-backend = "py_build_cmake.build"
[tool.py-build-cmake.module]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/minimal/src/minimal/__init__.py
new/py-build-cmake-0.5.1/examples/minimal/src/minimal/__init__.py
--- old/py-build-cmake-0.5.0/examples/minimal/src/minimal/__init__.py
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/examples/minimal/src/minimal/__init__.py
2026-08-22 13:02:06.000000000 +0200
@@ -2,4 +2,4 @@
A simple, minimal example of building a Python C module using CMake.
"""
-__version__ = "0.5.0"
+__version__ = "0.5.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/minimal-debug-component/debug/pyproject.toml
new/py-build-cmake-0.5.1/examples/minimal-debug-component/debug/pyproject.toml
---
old/py-build-cmake-0.5.0/examples/minimal-debug-component/debug/pyproject.toml
2025-08-14 23:04:51.000000000 +0200
+++
new/py-build-cmake-0.5.1/examples/minimal-debug-component/debug/pyproject.toml
2026-08-22 13:02:06.000000000 +0200
@@ -1,19 +1,19 @@
[project]
name = "minimal-comp-debug"
readme = "README.md"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ "name" = "Pieter P", "email" = "[email protected]" }]
keywords = ["example", "addition", "subtraction", "debug"]
classifiers = []
urls = { "Documentation" = "https://tttapa.github.io/" }
-dependencies = ["minimal-comp==0.5.0"]
-version = "0.5.0"
+dependencies = ["minimal-comp==0.5.1"]
+version = "0.5.1"
description = "Debug symbols for the minimal package."
[build-system]
-requires = ["py-build-cmake~=0.5.0"]
+requires = ["py-build-cmake~=0.5.1"]
build-backend = "py_build_cmake.build_component"
[tool.py-build-cmake]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/minimal-debug-component/pyproject.toml
new/py-build-cmake-0.5.1/examples/minimal-debug-component/pyproject.toml
--- old/py-build-cmake-0.5.0/examples/minimal-debug-component/pyproject.toml
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/examples/minimal-debug-component/pyproject.toml
2026-08-22 13:02:06.000000000 +0200
@@ -1,7 +1,7 @@
[project]
name = "minimal-comp"
readme = "README.md"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ "name" = "Pieter P", "email" = "[email protected]" }]
@@ -9,13 +9,13 @@
classifiers = [
"Development Status :: 3 - Alpha",
"Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
"Operating System :: POSIX :: Linux",
"Operating System :: Microsoft :: Windows",
"Operating System :: MacOS",
@@ -26,10 +26,10 @@
[project.optional-dependencies]
docs = ["sphinx~=5.1", "matplotlib", "breathe", "furo"]
-debug = ["minimal-debug==0.5.0"]
+debug = ["minimal-debug==0.5.1"]
[build-system]
-requires = ["py-build-cmake~=0.5.0"]
+requires = ["py-build-cmake~=0.5.1"]
build-backend = "py_build_cmake.build"
[tool.py-build-cmake.module]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/minimal-debug-component/src/minimal_comp/__init__.py
new/py-build-cmake-0.5.1/examples/minimal-debug-component/src/minimal_comp/__init__.py
---
old/py-build-cmake-0.5.0/examples/minimal-debug-component/src/minimal_comp/__init__.py
2025-08-14 23:04:51.000000000 +0200
+++
new/py-build-cmake-0.5.1/examples/minimal-debug-component/src/minimal_comp/__init__.py
2026-08-22 13:02:06.000000000 +0200
@@ -2,4 +2,4 @@
A simple, minimal example of building a Python C module using CMake.
"""
-__version__ = "0.5.0"
+__version__ = "0.5.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/minimal-debug-component/tests/test_component.py
new/py-build-cmake-0.5.1/examples/minimal-debug-component/tests/test_component.py
---
old/py-build-cmake-0.5.0/examples/minimal-debug-component/tests/test_component.py
2025-08-14 23:04:51.000000000 +0200
+++
new/py-build-cmake-0.5.1/examples/minimal-debug-component/tests/test_component.py
2026-08-22 13:02:06.000000000 +0200
@@ -13,7 +13,7 @@
reason="No separate debug symbol files on macOS",
)
def test_component():
- from importlib.resources import files
+ from importlib.resources import files # noqa: PLC0415
contents = [
resource.name
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/minimal-program/pyproject.toml
new/py-build-cmake-0.5.1/examples/minimal-program/pyproject.toml
--- old/py-build-cmake-0.5.0/examples/minimal-program/pyproject.toml
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/examples/minimal-program/pyproject.toml
2026-08-22 13:02:06.000000000 +0200
@@ -1,7 +1,7 @@
[project]
name = "minimal-program"
readme = "README.md"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ "name" = "Pieter P", "email" = "[email protected]" }]
@@ -9,13 +9,13 @@
classifiers = [
"Development Status :: 3 - Alpha",
"Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
"Operating System :: POSIX :: Linux",
"Operating System :: Microsoft :: Windows",
"Operating System :: MacOS",
@@ -25,7 +25,7 @@
dynamic = ["version", "description"]
[build-system]
-requires = ["py-build-cmake~=0.5.0"]
+requires = ["py-build-cmake~=0.5.1"]
build-backend = "py_build_cmake.build"
[tool.py-build-cmake.module]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/minimal-program/src/minimal_program_module/__init__.py
new/py-build-cmake-0.5.1/examples/minimal-program/src/minimal_program_module/__init__.py
---
old/py-build-cmake-0.5.0/examples/minimal-program/src/minimal_program_module/__init__.py
2025-08-14 23:04:51.000000000 +0200
+++
new/py-build-cmake-0.5.1/examples/minimal-program/src/minimal_program_module/__init__.py
2026-08-22 13:02:06.000000000 +0200
@@ -2,4 +2,4 @@
A simple, minimal example of building a C++ program using CMake.
"""
-__version__ = "0.5.0"
+__version__ = "0.5.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/nanobind-project/CMakeLists.txt
new/py-build-cmake-0.5.1/examples/nanobind-project/CMakeLists.txt
--- old/py-build-cmake-0.5.0/examples/nanobind-project/CMakeLists.txt
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/examples/nanobind-project/CMakeLists.txt
2026-08-22 13:02:06.000000000 +0200
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.26...4.0)
-project(nanobind-project VERSION 0.5.0)
+project(nanobind-project VERSION 0.5.1)
set(PY_VERSION_SUFFIX "")
set(PY_FULL_VERSION ${PROJECT_VERSION}${PY_VERSION_SUFFIX})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/nanobind-project/pyproject.toml
new/py-build-cmake-0.5.1/examples/nanobind-project/pyproject.toml
--- old/py-build-cmake-0.5.0/examples/nanobind-project/pyproject.toml
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/examples/nanobind-project/pyproject.toml
2026-08-22 13:02:06.000000000 +0200
@@ -15,6 +15,7 @@
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
"Operating System :: POSIX :: Linux",
"Operating System :: Microsoft :: Windows",
"Operating System :: MacOS",
@@ -31,7 +32,7 @@
[build-system]
requires = [
- "py-build-cmake~=0.5.0",
+ "py-build-cmake~=0.5.1",
"nanobind~=2.8.0",
"typing_extensions>=4.12.2,<5; python_version < '3.11'",
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/nanobind-project/src/nanobind_project/__init__.py
new/py-build-cmake-0.5.1/examples/nanobind-project/src/nanobind_project/__init__.py
---
old/py-build-cmake-0.5.0/examples/nanobind-project/src/nanobind_project/__init__.py
2025-08-14 23:04:51.000000000 +0200
+++
new/py-build-cmake-0.5.1/examples/nanobind-project/src/nanobind_project/__init__.py
2026-08-22 13:02:06.000000000 +0200
@@ -1,3 +1,3 @@
"""Example project using the py-build-cmake build backend and nanobind."""
-__version__ = "0.5.0"
+__version__ = "0.5.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/pybind11-project/CMakeLists.txt
new/py-build-cmake-0.5.1/examples/pybind11-project/CMakeLists.txt
--- old/py-build-cmake-0.5.0/examples/pybind11-project/CMakeLists.txt
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/examples/pybind11-project/CMakeLists.txt
2026-08-22 13:02:06.000000000 +0200
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.18...4.0)
-project(pybind11-project VERSION 0.5.0)
+project(pybind11-project VERSION 0.5.1)
set(PY_VERSION_SUFFIX "")
set(PY_FULL_VERSION ${PROJECT_VERSION}${PY_VERSION_SUFFIX})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/pybind11-project/cross-compile-linux.sh
new/py-build-cmake-0.5.1/examples/pybind11-project/cross-compile-linux.sh
--- old/py-build-cmake-0.5.0/examples/pybind11-project/cross-compile-linux.sh
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/examples/pybind11-project/cross-compile-linux.sh
2026-08-22 13:02:06.000000000 +0200
@@ -25,9 +25,9 @@
# Select the architectures and Python versions to build for.
triples=(x86_64-bionic-linux-gnu armv6-rpi-linux-gnueabihf
armv7-neon-linux-gnueabihf aarch64-rpi3-linux-gnu)
-python_versions=("python3.7" "python3.8" "python3.9" "python3.10" "python3.11"
"python3.12" "python3.13" "python3.14")
+python_versions=("python3.8" "python3.9" "python3.10" "python3.11"
"python3.12" "python3.13" "python3.14")
pypy_triples=(x86_64-bionic-linux-gnu aarch64-rpi3-linux-gnu)
-pypy_versions=("pypy3.7-v7.3" "pypy3.8-v7.3" "pypy3.9-v7.3" "pypy3.10-v7.3"
"pypy3.11-v7.3")
+pypy_versions=("pypy3.8-v7.3" "pypy3.9-v7.3" "pypy3.10-v7.3" "pypy3.11-v7.3")
# Ensure that the necessary toolchains are available.
toolchain_folder="$PWD/../../toolchains"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/pybind11-project/pyproject.toml
new/py-build-cmake-0.5.1/examples/pybind11-project/pyproject.toml
--- old/py-build-cmake-0.5.0/examples/pybind11-project/pyproject.toml
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/examples/pybind11-project/pyproject.toml
2026-08-22 13:02:06.000000000 +0200
@@ -1,7 +1,7 @@
[project]
name = "pybind11-project" # Name on PyPI
readme = "README.md"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ "name" = "Pieter P", "email" = "[email protected]" }]
@@ -9,13 +9,13 @@
classifiers = [
"Development Status :: 3 - Alpha",
"Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
"Operating System :: POSIX :: Linux",
"Operating System :: Microsoft :: Windows",
"Operating System :: MacOS",
@@ -32,7 +32,7 @@
[build-system]
requires = [
- "py-build-cmake~=0.5.0",
+ "py-build-cmake~=0.5.1",
"pybind11>=2.13.6,<4",
"pybind11-stubgen~=2.5.4",
]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/pybind11-project/src/pybind11_project/__init__.py
new/py-build-cmake-0.5.1/examples/pybind11-project/src/pybind11_project/__init__.py
---
old/py-build-cmake-0.5.0/examples/pybind11-project/src/pybind11_project/__init__.py
2025-08-14 23:04:51.000000000 +0200
+++
new/py-build-cmake-0.5.1/examples/pybind11-project/src/pybind11_project/__init__.py
2026-08-22 13:02:06.000000000 +0200
@@ -1,3 +1,3 @@
"""Example project using the py-build-cmake build backend and pybind11."""
-__version__ = "0.5.0"
+__version__ = "0.5.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/pybind11-project/tests/test_add_module.py
new/py-build-cmake-0.5.1/examples/pybind11-project/tests/test_add_module.py
--- old/py-build-cmake-0.5.0/examples/pybind11-project/tests/test_add_module.py
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/examples/pybind11-project/tests/test_add_module.py
2026-08-22 13:02:06.000000000 +0200
@@ -11,9 +11,6 @@
def test_version():
assert py_version == py_cpp_version
assert py_version == cpp_version
- try: # No importlib in Python 3.7 and below
- from importlib.metadata import version
+ from importlib.metadata import version # noqa: PLC0415
- assert py_version == version("pybind11_project")
- except ImportError:
- pass
+ assert py_version == version("pybind11_project")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/swig-project/CMakeLists.txt
new/py-build-cmake-0.5.1/examples/swig-project/CMakeLists.txt
--- old/py-build-cmake-0.5.0/examples/swig-project/CMakeLists.txt
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/examples/swig-project/CMakeLists.txt
2026-08-22 13:02:06.000000000 +0200
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.18...4.0)
-project(swig-project VERSION 0.5.0)
+project(swig-project VERSION 0.5.1)
set(PY_VERSION_SUFFIX "")
set(PY_FULL_VERSION ${PROJECT_VERSION}${PY_VERSION_SUFFIX})
@@ -13,10 +13,10 @@
# Find Python
if (CMAKE_CROSSCOMPILING AND NOT (APPLE AND "$ENV{CIBUILDWHEEL}" STREQUAL "1"))
- find_package(Python 3.7 REQUIRED COMPONENTS Development.Module
+ find_package(Python 3.8 REQUIRED COMPONENTS Development.Module
OPTIONAL_COMPONENTS
Development.SABIModule)
else()
- find_package(Python 3.7 REQUIRED COMPONENTS Interpreter Development.Module
+ find_package(Python 3.8 REQUIRED COMPONENTS Interpreter Development.Module
OPTIONAL_COMPONENTS
Development.SABIModule)
endif()
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/swig-project/cross-compile-linux.sh
new/py-build-cmake-0.5.1/examples/swig-project/cross-compile-linux.sh
--- old/py-build-cmake-0.5.0/examples/swig-project/cross-compile-linux.sh
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/examples/swig-project/cross-compile-linux.sh
2026-08-22 13:02:06.000000000 +0200
@@ -25,9 +25,9 @@
# Select the architectures and Python versions to build for.
triples=(x86_64-bionic-linux-gnu armv6-rpi-linux-gnueabihf
armv7-neon-linux-gnueabihf aarch64-rpi3-linux-gnu)
-python_versions=("python3.7" "python3.8" "python3.9" "python3.10" "python3.11"
"python3.12" "python3.13" "python3.14")
+python_versions=("python3.8" "python3.9" "python3.10" "python3.11"
"python3.12" "python3.13" "python3.14")
pypy_triples=(x86_64-bionic-linux-gnu aarch64-rpi3-linux-gnu)
-pypy_versions=("pypy3.7-v7.3" "pypy3.8-v7.3" "pypy3.9-v7.3" "pypy3.10-v7.3"
"pypy3.11-v7.3")
+pypy_versions=("pypy3.8-v7.3" "pypy3.9-v7.3" "pypy3.10-v7.3" "pypy3.11-v7.3")
# Ensure that the necessary toolchains are available.
toolchain_folder="$PWD/../../toolchains"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/swig-project/pyproject.toml
new/py-build-cmake-0.5.1/examples/swig-project/pyproject.toml
--- old/py-build-cmake-0.5.0/examples/swig-project/pyproject.toml
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/examples/swig-project/pyproject.toml
2026-08-22 13:02:06.000000000 +0200
@@ -1,7 +1,7 @@
[project]
name = "swig-project" # Name on PyPI
readme = "README.md"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ "name" = "Pieter P", "email" = "[email protected]" }]
@@ -9,13 +9,13 @@
classifiers = [
"Development Status :: 3 - Alpha",
"Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
"Operating System :: POSIX :: Linux",
"Operating System :: Microsoft :: Windows",
"Operating System :: MacOS",
@@ -32,7 +32,7 @@
[build-system]
requires = [
- "py-build-cmake~=0.5.0",
+ "py-build-cmake~=0.5.1",
"swig~=4.3.1", # https://github.com/nightlark/swig-pypi
]
build-backend = "py_build_cmake.build"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/swig-project/src/swig_project/__init__.py
new/py-build-cmake-0.5.1/examples/swig-project/src/swig_project/__init__.py
--- old/py-build-cmake-0.5.0/examples/swig-project/src/swig_project/__init__.py
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/examples/swig-project/src/swig_project/__init__.py
2026-08-22 13:02:06.000000000 +0200
@@ -1,3 +1,3 @@
"""Example project using the py-build-cmake build backend and SWIG."""
-__version__ = "0.5.0"
+__version__ = "0.5.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/examples/swig-project/tests/test_add_module.py
new/py-build-cmake-0.5.1/examples/swig-project/tests/test_add_module.py
--- old/py-build-cmake-0.5.0/examples/swig-project/tests/test_add_module.py
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/examples/swig-project/tests/test_add_module.py
2026-08-22 13:02:06.000000000 +0200
@@ -9,9 +9,6 @@
def test_version():
assert py_version == cpp_version
- try: # No importlib in Python 3.7 and below
- from importlib.metadata import version
+ from importlib.metadata import version # noqa: PLC0415
- assert py_version == version("swig_project")
- except ImportError:
- pass
+ assert py_version == version("swig_project")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/py-build-cmake-0.5.0/noxfile.py
new/py-build-cmake-0.5.1/noxfile.py
--- old/py-build-cmake-0.5.0/noxfile.py 2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/noxfile.py 2026-08-22 13:02:06.000000000 +0200
@@ -14,6 +14,7 @@
from __future__ import annotations
+import contextlib
import hashlib
import os
import platform
@@ -21,22 +22,17 @@
import shutil
import sys
import sysconfig
+import sysconfig as dist_sysconfig
from difflib import unified_diff
from pathlib import Path
+from sysconfig import get_platform as sysconfig_get_platform
from tarfile import open as open_tar
from zipfile import ZipFile
import jinja2
import nox
-if sys.version_info < (3, 8):
- import distutils.sysconfig as dist_sysconfig
- from distutils.util import get_platform as sysconfig_get_platform
-else:
- import sysconfig as dist_sysconfig
- from sysconfig import get_platform as sysconfig_get_platform
-
-version = "0.5.0"
+version = "0.5.1"
project_dir = Path(__file__).resolve().parent
examples = "minimal-program", "pybind11-project", "nanobind-project"
@@ -70,6 +66,10 @@
"implementation": sys.implementation,
"platform": sys.platform,
},
+ "have_stubgen": (
+ sys.implementation.name != "pypy"
+ and not sysconfig.get_config_var("Py_GIL_DISABLED")
+ ),
}
@@ -109,6 +109,11 @@
whl_expect = sorted(filter(bool, whl_expect))
with ZipFile(whl) as z:
whl_actual = sorted(z.namelist())
+ # TODO: stubgen sometimes generates this file (e.g. on macos-15-intel
+ # with Python 3.13), even though it shouldn't do this for
+ # namespace packages. For now, just ignore it.
+ with contextlib.suppress(ValueError):
+ whl_actual.remove("namespace_project/__init__.pyi")
if whl_expect != whl_actual:
diff = "\n".join(unified_diff(whl_expect, whl_actual))
session.error("Wheel contents mismatch:\n" + diff)
@@ -133,24 +138,22 @@
py_v = sys.version_info
ext_suffix = dist_sysconfig.get_config_var("EXT_SUFFIX")
assert isinstance(ext_suffix, str)
- simple = name in ["minimal", "bare-c-module"]
free_threading = bool(sysconfig.get_config_var("Py_GIL_DISABLED"))
- if simple and ext_suffix.endswith(".pyd") and py_v < (3, 8):
- ext_suffix = ".pyd" # what a mess ...
- elif name == "nanobind-project":
- if py_v < (3, 8):
- ext_suffix = None # skip
- elif impl.name == "cpython" and py_v >= (3, 12) and not free_threading:
+ abi3_multiarch = ""
+ if py_v >= (3, 15) and impl.name == "cpython":
+ abi3_multiarch = "-" + sysconfig.get_config_var("MULTIARCH")
+ if name == "nanobind-project":
+ if impl.name == "cpython" and py_v >= (3, 12) and not free_threading:
ext_suffix = "." + ext_suffix.rsplit(".", 1)[-1]
if sys.platform != "win32":
- ext_suffix = ".abi3" + ext_suffix
+ ext_suffix = ".abi3" + abi3_multiarch + ext_suffix
elif name == "swig-project":
if sys.platform == "win32" and free_threading:
ext_suffix = None # skip
- if impl.name == "cpython" and py_v >= (3, 7) and not free_threading:
+ if impl.name == "cpython" and not free_threading:
ext_suffix = "." + ext_suffix.rsplit(".", 1)[-1]
if sys.platform != "win32":
- ext_suffix = ".abi3" + ext_suffix
+ ext_suffix = ".abi3" + abi3_multiarch + ext_suffix
return ext_suffix
@@ -163,7 +166,12 @@
dist_dir = "dist"
session.env["PIP_FIND_LINKS"] = str(Path(dist_dir).resolve())
session.install(f"py-build-cmake=={version}")
- for name in "find-python", "find-python-4":
+ if sysconfig.get_config_var("Py_GIL_DISABLED"):
+ # old CMake policies don't support free-threading builds
+ tests = ("find-python-4",)
+ else:
+ tests = "find-python", "find-python-4"
+ for name in tests:
with session.chdir(f"test-packages/{name}"):
shutil.rmtree(".py-build-cmake_cache", ignore_errors=True)
shutil.rmtree("dist-nox", ignore_errors=True)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/py-build-cmake-0.5.0/pyproject.toml
new/py-build-cmake-0.5.1/pyproject.toml
--- old/py-build-cmake-0.5.0/pyproject.toml 2025-08-14 23:04:51.000000000
+0200
+++ new/py-build-cmake-0.5.1/pyproject.toml 2026-08-22 13:02:06.000000000
+0200
@@ -12,7 +12,7 @@
[project]
name = "py-build-cmake"
readme = "README.md"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ "name" = "Pieter P", "email" = "[email protected]" }]
@@ -22,13 +22,13 @@
"Topic :: System :: Archiving :: Packaging",
"Topic :: System :: Software Distribution",
"Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
"Operating System :: POSIX :: Linux",
"Operating System :: Microsoft :: Windows",
"Operating System :: MacOS",
@@ -108,7 +108,7 @@
]
[tool.ruff.lint.per-file-ignores]
-"noxfile.py" = ["T20"] # Removes print
statements
+"noxfile.py" = ["T20", "PT"] # Removes print
statements, not a pytest file
"**/tests/**" = ["T20"]
"examples/**" = ["T20"]
"scripts/**" = ["T20"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/py-build-cmake-0.5.0/src/py_build_cmake/__init__.py
new/py-build-cmake-0.5.1/src/py_build_cmake/__init__.py
--- old/py-build-cmake-0.5.0/src/py_build_cmake/__init__.py 2025-08-14
23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/src/py_build_cmake/__init__.py 2026-08-22
13:02:06.000000000 +0200
@@ -3,4 +3,4 @@
extensions built using CMake.
"""
-__version__ = "0.5.0"
+__version__ = "0.5.1"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/py-build-cmake-0.5.0/src/py_build_cmake/build.py
new/py-build-cmake-0.5.1/src/py_build_cmake/build.py
--- old/py-build-cmake-0.5.0/src/py_build_cmake/build.py 2025-08-14
23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/src/py_build_cmake/build.py 2026-08-22
13:02:06.000000000 +0200
@@ -523,7 +523,7 @@
make_program: Path | None = None
if generator is not None and "ninja" in generator.lower():
with contextlib.suppress(ImportError):
- import ninja # type: ignore[import-not-found]
+ import ninja # type: ignore[import-not-found] # noqa: PLC0415
make_program = Path(ninja.BIN_DIR) / "ninja"
if plat.system == "Windows":
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore' old/py-build-cmake-0.5.0/src/py_build_cmake/cli.py
new/py-build-cmake-0.5.1/src/py_build_cmake/cli.py
--- old/py-build-cmake-0.5.0/src/py_build_cmake/cli.py 2025-08-14
23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/src/py_build_cmake/cli.py 2026-08-22
13:02:06.000000000 +0200
@@ -5,13 +5,16 @@
import click
from . import __version__
+from .build import _BuildBackend as backend
+from .commands.cmd_runner import CommandRunner
from .common.platform import determine_build_platform_info
+from .config.options.config_path import ConfPath
+from .config.options.config_reference import ConfigReference
+from .config.options.pyproject_options import get_component_options,
get_options
def cmake_command(directory, build_path, verbose, dry, cross, local, override):
def get_cmaker(index: int):
- from .build import _BuildBackend as backend
- from .commands.cmd_runner import CommandRunner
src_dir = Path(directory or ".").resolve()
config_settings = {
@@ -233,14 +236,10 @@
"--component", is_flag=True, help="Documentation for the build_component
backend."
)
def format(md, component):
- from .config.options.config_path import ConfPath
- from .config.options.config_reference import ConfigReference
- from .config.options.pyproject_options import get_component_options,
get_options
-
if md:
- from .help import help_print_md as help_print
+ from .help import help_print_md as help_print # noqa: PLC0415
else:
- from .help import help_print
+ from .help import help_print # noqa: PLC0415
help_pth = ConfPath.from_string("pyproject.toml/tool/py-build-cmake")
pr_md = print if md else (lambda *args, **kwargs: None)
pr_tx = (lambda *args, **kwargs: None) if md else print
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/src/py_build_cmake/commands/cmake.py
new/py-build-cmake-0.5.1/src/py_build_cmake/commands/cmake.py
--- old/py-build-cmake-0.5.0/src/py_build_cmake/commands/cmake.py
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/src/py_build_cmake/commands/cmake.py
2026-08-22 13:02:06.000000000 +0200
@@ -222,7 +222,14 @@
cmake_version = self.cmake_settings.minimum_required
has_t_flag = NormalizedVersion("3.30") <=
NormalizedVersion(cmake_version)
dmu = "dmut" if has_t_flag else "dmu"
- return ";".join("ON" if c in self.plat.python_abiflags else "OFF" for
c in dmu)
+ flags = self.plat.python_abiflags
+ if "t" in flags and not has_t_flag:
+ msg = "CMake version %s does not support the free-threaded ABI,
but "
+ msg += "the current interpreter requires it. You should upgrade to
"
+ msg += "CMake 3.30 or later, and upgrade the CMake minimum
required "
+ msg += "version or policies in your CMakeLists.txt file
accordingly."
+ logger.warning(msg, cmake_version)
+ return tuple("ON" if c in flags else "OFF" for c in dmu)
def get_native_python_implementation(self) -> str | None:
return {
@@ -288,8 +295,11 @@
yield Option(prefix + "_SOSABI", "")
else:
yield Option(prefix + "_SOSABI", "abi3")
- # TODO: FIND_ABI seems to confuse CMake
- # yield Option(prefix + "_FIND_ABI",
self.get_native_python_abi_tuple())
+ # TODO: FIND_ABI seems to confuse CMake on older versions, so only set
+ # it if we need to enable the free-threaded ABI
+ abi = self.get_native_python_abi_tuple()
+ if len(abi) == 4 and abi[-1] == "ON":
+ yield Option(prefix + "_FIND_ABI", ";".join(abi))
def get_cross_python_hints(self, prefix: str) -> Generator[Option]:
"""FindPython hints and artifacts to set when cross-compiling."""
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/src/py_build_cmake/commands/cmd_runner.py
new/py-build-cmake-0.5.1/src/py_build_cmake/commands/cmd_runner.py
--- old/py-build-cmake-0.5.0/src/py_build_cmake/commands/cmd_runner.py
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/src/py_build_cmake/commands/cmd_runner.py
2026-08-22 13:02:06.000000000 +0200
@@ -3,6 +3,7 @@
import re
import sys
from pprint import pprint
+from shlex import join
from subprocess import CalledProcessError
from subprocess import run as sp_run
@@ -28,8 +29,6 @@
pprint(log_kwargs, width=200)
print(flush=True)
elif self.dry:
- from shlex import join
-
print(join(args[0]))
if not self.dry:
return sp_run(*args, **kwargs) # noqa: PLW1510
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/src/py_build_cmake/common/__init__.py
new/py-build-cmake-0.5.1/src/py_build_cmake/common/__init__.py
--- old/py-build-cmake-0.5.0/src/py_build_cmake/common/__init__.py
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/src/py_build_cmake/common/__init__.py
2026-08-22 13:02:06.000000000 +0200
@@ -151,7 +151,7 @@
@property
def norm_name(self):
- from .util import normalize_name_wheel
+ from .util import normalize_name_wheel # noqa: PLC0415
return normalize_name_wheel(self.package_name)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/src/py_build_cmake/common/platform.py
new/py-build-cmake-0.5.1/src/py_build_cmake/common/platform.py
--- old/py-build-cmake-0.5.0/src/py_build_cmake/common/platform.py
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/src/py_build_cmake/common/platform.py
2026-08-22 13:02:06.000000000 +0200
@@ -8,7 +8,7 @@
import sysconfig
from dataclasses import dataclass, field
from pathlib import Path
-from typing import Dict, List, Mapping, cast
+from typing import Dict, List, Literal, Mapping, cast
import packaging.tags
@@ -28,14 +28,9 @@
logger = logging.getLogger(__name__)
-if sys.version_info < (3, 8):
- OSIdentifier = str
- WheelTags = Dict[str, List[str]]
-else:
- from typing import Literal
- OSIdentifier = Literal["linux", "windows", "mac", "pyodide"]
- WheelTags = Dict[Literal["pyver", "abi", "arch"], List[str]]
+OSIdentifier = Literal["linux", "windows", "mac", "pyodide"]
+WheelTags = Dict[Literal["pyver", "abi", "arch"], List[str]]
def _get_python_prefixes():
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/src/py_build_cmake/config/dynamic.py
new/py-build-cmake-0.5.1/src/py_build_cmake/config/dynamic.py
--- old/py-build-cmake-0.5.0/src/py_build_cmake/config/dynamic.py
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/src/py_build_cmake/config/dynamic.py
2026-08-22 13:02:06.000000000 +0200
@@ -38,6 +38,7 @@
import logging
import sys
from contextlib import contextmanager
+from importlib.util import module_from_spec, spec_from_file_location
from pathlib import Path
import distlib.version # type: ignore[import-untyped]
@@ -84,12 +85,8 @@
for target in child.targets
):
v_node = child.value
- if sys.version_info >= (3, 8):
- if isinstance(v_node, ast.Constant) and
isinstance(v_node.value, str):
- version = v_node.value
- break
- elif isinstance(v_node, ast.Str):
- version = v_node.s
+ if isinstance(v_node, ast.Constant) and isinstance(v_node.value,
str):
+ version = v_node.value
break
return ast.get_docstring(node), version
@@ -110,7 +107,6 @@
_import_i += 1
logger.debug("Loading module %s", mod_filename)
- from importlib.util import module_from_spec, spec_from_file_location
mod_name = f"py_build_cmake.dummy.import{_import_i}"
spec = spec_from_file_location(mod_name, mod_filename)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/src/py_build_cmake/config/load.py
new/py-build-cmake-0.5.1/src/py_build_cmake/config/load.py
--- old/py-build-cmake-0.5.0/src/py_build_cmake/config/load.py 2025-08-14
23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/src/py_build_cmake/config/load.py 2026-08-22
13:02:06.000000000 +0200
@@ -3,11 +3,10 @@
import contextlib
import logging
import os
-import pprint
-import sys
from copy import copy
from dataclasses import fields
from pathlib import Path, PurePosixPath
+from pprint import pp
from typing import Any, Dict, Optional, cast
import pyproject_metadata
@@ -42,11 +41,6 @@
logger = logging.getLogger(__name__)
-if sys.version_info < (3, 8):
- pp = pprint.pprint
-else:
- pp = pprint.pp
-
def read_full_config(
plat: BuildPlatformInfo,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/src/py_build_cmake/config/options/config_option.py
new/py-build-cmake-0.5.1/src/py_build_cmake/config/options/config_option.py
--- old/py-build-cmake-0.5.0/src/py_build_cmake/config/options/config_option.py
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/src/py_build_cmake/config/options/config_option.py
2026-08-22 13:02:06.000000000 +0200
@@ -206,8 +206,8 @@
return vals
def finalize(self, values: ValueReference) -> Any:
- from .config_reference import ConfigReference
- from .override import ConfigOverrider
+ from .config_reference import ConfigReference # noqa: PLC0415
+ from .override import ConfigOverrider # noqa: PLC0415
if values.is_value_set(self.default_index):
# Our own option as a "single" ConfigOption
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/src/py_build_cmake/config/quirks/__init__.py
new/py-build-cmake-0.5.1/src/py_build_cmake/config/quirks/__init__.py
--- old/py-build-cmake-0.5.0/src/py_build_cmake/config/quirks/__init__.py
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/src/py_build_cmake/config/quirks/__init__.py
2026-08-22 13:02:06.000000000 +0200
@@ -13,10 +13,21 @@
def config_quirks_pypy(plat: BuildPlatformInfo, config: ValueReference):
- if plat.python_version_info < (3, 8):
- with contextlib.suppress(KeyError):
- del config.values["stubgen"]
- logger.info("Mypy is not supported on PyPy <3.8, disabling
stubgen")
+ with contextlib.suppress(KeyError):
+ del config.values["stubgen"]
+ msg = "ast-serialize and librt (mypy dependencies) do not support "
+ msg += "PyPy (https://github.com/python/mypy/issues/21460), "
+ msg += "disabling stubgen"
+ logger.info(msg)
+
+
+def config_quirks_free_threaded(plat: BuildPlatformInfo, config:
ValueReference):
+ with contextlib.suppress(KeyError):
+ del config.values["stubgen"]
+ msg = "ast-serialize and librt (mypy dependencies) do not support the "
+ msg += "free-threaded ABI
(https://github.com/python/mypy/issues/21460), "
+ msg += "disabling stubgen"
+ logger.info(msg)
def config_quirks(plat: BuildPlatformInfo, config: ValueReference):
@@ -32,3 +43,6 @@
}.get(plat.implementation)
if dispatch is not None:
dispatch(plat, config)
+ if "t" in plat.python_abiflags:
+ # TODO: how best to check on Windows?
+ config_quirks_free_threaded(plat, config)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/src/py_build_cmake/export/editable/wrapper.py
new/py-build-cmake-0.5.1/src/py_build_cmake/export/editable/wrapper.py
--- old/py-build-cmake-0.5.0/src/py_build_cmake/export/editable/wrapper.py
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/src/py_build_cmake/export/editable/wrapper.py
2026-08-22 13:02:06.000000000 +0200
@@ -38,7 +38,9 @@
_spec.loader.exec_module(_mod)
# After importing, add its symbols to our global scope
_vars = _mod.__dict__.copy()
- for _k in ['{"','".join(special_dunders)}']: _vars.pop(_k)
+ for _k in ['{"','".join(special_dunders)}']:
+ try: _vars.pop(_k)
+ except KeyError: pass
globals().update(_vars)
# Clean up
del _k, _spec, _mod, _vars, _util
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/src/py_build_cmake/export/native_tags.py
new/py-build-cmake-0.5.1/src/py_build_cmake/export/native_tags.py
--- old/py-build-cmake-0.5.0/src/py_build_cmake/export/native_tags.py
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/src/py_build_cmake/export/native_tags.py
2026-08-22 13:02:06.000000000 +0200
@@ -52,10 +52,6 @@
debug = "d"
if py_version >= (3, 13) and sysconfig.get_config_var("Py_GIL_DISABLED"):
threading = "t"
- if py_version < (3, 8):
- with_pymalloc = sysconfig.get_config_var("WITH_PYMALLOC")
- if with_pymalloc or with_pymalloc is None:
- pymalloc = "m"
return f"{threading}{debug}{pymalloc}" # tdm
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/src/py_build_cmake/export/wheel.py
new/py-build-cmake-0.5.1/src/py_build_cmake/export/wheel.py
--- old/py-build-cmake-0.5.0/src/py_build_cmake/export/wheel.py 2025-08-14
23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/src/py_build_cmake/export/wheel.py 2026-08-22
13:02:06.000000000 +0200
@@ -1,4 +1,3 @@
-# ruff: noqa: PLR0912, PLR0915, RUF015, UP031, PTH112, B007, PTH118, PTH123,
PLW2901
# This code was largely copied from distlib to work around
# https://github.com/pypa/distlib/issues/246, and it does not comply with the
# ruff warnings used throughout py-build-cmake, so we ignore the entire file
for
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/test-packages/bare-c-module/pyproject.toml
new/py-build-cmake-0.5.1/test-packages/bare-c-module/pyproject.toml
--- old/py-build-cmake-0.5.0/test-packages/bare-c-module/pyproject.toml
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/test-packages/bare-c-module/pyproject.toml
2026-08-22 13:02:06.000000000 +0200
@@ -1,9 +1,9 @@
[project]
name = "bare-c-module"
-version = "0.5.0"
+version = "0.5.1"
description = "Single extension module, without any folders or __init__.py"
readme = "README.md"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ "name" = "Pieter P", "email" = "[email protected]" }]
@@ -11,13 +11,13 @@
classifiers = [
"Development Status :: 3 - Alpha",
"Programming Language :: Python :: 3",
- "Programming Language :: Python :: 3.7",
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
+ "Programming Language :: Python :: 3.14",
"Operating System :: POSIX :: Linux",
"Operating System :: Microsoft :: Windows",
"Operating System :: MacOS",
@@ -26,7 +26,7 @@
dependencies = []
[build-system]
-requires = ["py-build-cmake~=0.5.0"]
+requires = ["py-build-cmake~=0.5.1"]
build-backend = "py_build_cmake.build"
[tool.py-build-cmake.module]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/test-packages/cmake-options/pyproject.toml
new/py-build-cmake-0.5.1/test-packages/cmake-options/pyproject.toml
--- old/py-build-cmake-0.5.0/test-packages/cmake-options/pyproject.toml
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/test-packages/cmake-options/pyproject.toml
2026-08-22 13:02:06.000000000 +0200
@@ -1,9 +1,9 @@
[project]
name = "cmake-options"
-version = "0.5.0"
+version = "0.5.1"
description = "Checks parsing and escaping of CMake options"
readme = "README.md"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ "name" = "Pieter P", "email" = "[email protected]" }]
@@ -13,7 +13,7 @@
dependencies = []
[build-system]
-requires = ["py-build-cmake~=0.5.0"]
+requires = ["py-build-cmake~=0.5.1"]
build-backend = "py_build_cmake.build"
[tool.py-build-cmake.sdist]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/test-packages/cmake-options/tests/test_placeholder.py
new/py-build-cmake-0.5.1/test-packages/cmake-options/tests/test_placeholder.py
---
old/py-build-cmake-0.5.0/test-packages/cmake-options/tests/test_placeholder.py
2025-08-14 23:04:51.000000000 +0200
+++
new/py-build-cmake-0.5.1/test-packages/cmake-options/tests/test_placeholder.py
2026-08-22 13:02:06.000000000 +0200
@@ -1,2 +1,2 @@
def test_placeholder():
- import cmake_options # noqa: F401
+ import cmake_options # noqa: F401, PLC0415
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/test-packages/cmake-preset/pyproject.toml
new/py-build-cmake-0.5.1/test-packages/cmake-preset/pyproject.toml
--- old/py-build-cmake-0.5.0/test-packages/cmake-preset/pyproject.toml
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/test-packages/cmake-preset/pyproject.toml
2026-08-22 13:02:06.000000000 +0200
@@ -1,15 +1,15 @@
[project]
name = "cmake-preset"
-version = "0.5.0"
+version = "0.5.1"
description = "Test the use of CMake presets"
readme = "README.md"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ "name" = "Pieter P", "email" = "[email protected]" }]
[build-system]
-requires = ["py-build-cmake~=0.5.0"]
+requires = ["py-build-cmake~=0.5.1"]
build-backend = "py_build_cmake.build"
[tool.py-build-cmake.module]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/test-packages/empty-config/pyproject.toml
new/py-build-cmake-0.5.1/test-packages/empty-config/pyproject.toml
--- old/py-build-cmake-0.5.0/test-packages/empty-config/pyproject.toml
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/test-packages/empty-config/pyproject.toml
2026-08-22 13:02:06.000000000 +0200
@@ -1,12 +1,12 @@
[project]
name = "empty-config"
readme = "README.md"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ "name" = "Pieter P", "email" = "[email protected]" }]
dynamic = ["version", "description"]
[build-system]
-requires = ["py-build-cmake~=0.5.0"]
+requires = ["py-build-cmake~=0.5.1"]
build-backend = "py_build_cmake.build"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/test-packages/empty-config/src/empty_config/__init__.py
new/py-build-cmake-0.5.1/test-packages/empty-config/src/empty_config/__init__.py
---
old/py-build-cmake-0.5.0/test-packages/empty-config/src/empty_config/__init__.py
2025-08-14 23:04:51.000000000 +0200
+++
new/py-build-cmake-0.5.1/test-packages/empty-config/src/empty_config/__init__.py
2026-08-22 13:02:06.000000000 +0200
@@ -2,7 +2,7 @@
Empty config
"""
-__version__ = "0.5.0"
+__version__ = "0.5.1"
def add(a, b):
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/test-packages/find-python/pyproject.toml
new/py-build-cmake-0.5.1/test-packages/find-python/pyproject.toml
--- old/py-build-cmake-0.5.0/test-packages/find-python/pyproject.toml
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/test-packages/find-python/pyproject.toml
2026-08-22 13:02:06.000000000 +0200
@@ -1,12 +1,12 @@
[project]
name = "find-python"
-version = "0.5.0"
+version = "0.5.1"
description = "Test for CMake FindPython"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
license = "MIT"
[build-system]
-requires = ["py-build-cmake~=0.5.0"]
+requires = ["py-build-cmake~=0.5.1"]
build-backend = "py_build_cmake.build"
[tool.py-build-cmake.module]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/test-packages/find-python-4/cross-compile-linux.sh
new/py-build-cmake-0.5.1/test-packages/find-python-4/cross-compile-linux.sh
--- old/py-build-cmake-0.5.0/test-packages/find-python-4/cross-compile-linux.sh
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/test-packages/find-python-4/cross-compile-linux.sh
2026-08-22 13:02:06.000000000 +0200
@@ -25,9 +25,9 @@
# Select the architectures and Python versions to build for.
triples=(x86_64-bionic-linux-gnu armv6-rpi-linux-gnueabihf
armv7-neon-linux-gnueabihf aarch64-rpi3-linux-gnu)
-python_versions=("python3.7" "python3.8" "python3.9" "python3.10" "python3.11"
"python3.12" "python3.13" "python3.14")
+python_versions=("python3.8" "python3.9" "python3.10" "python3.11"
"python3.12" "python3.13" "python3.14")
pypy_triples=(x86_64-bionic-linux-gnu aarch64-rpi3-linux-gnu)
-pypy_versions=("pypy3.7-v7.3" "pypy3.8-v7.3" "pypy3.9-v7.3" "pypy3.10-v7.3"
"pypy3.11-v7.3")
+pypy_versions=("pypy3.8-v7.3" "pypy3.9-v7.3" "pypy3.10-v7.3" "pypy3.11-v7.3")
# Ensure that the necessary toolchains are available.
toolchain_folder="$PWD/../../toolchains"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/test-packages/find-python-4/pyproject.toml
new/py-build-cmake-0.5.1/test-packages/find-python-4/pyproject.toml
--- old/py-build-cmake-0.5.0/test-packages/find-python-4/pyproject.toml
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/test-packages/find-python-4/pyproject.toml
2026-08-22 13:02:06.000000000 +0200
@@ -1,12 +1,12 @@
[project]
name = "find-python-4"
-version = "0.5.0"
+version = "0.5.1"
description = "Test for CMake FindPython"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
license = "MIT"
[build-system]
-requires = ["py-build-cmake~=0.5.0"]
+requires = ["py-build-cmake~=0.5.1"]
build-backend = "py_build_cmake.build"
[tool.py-build-cmake.module]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/test-packages/local-options/pyproject.toml
new/py-build-cmake-0.5.1/test-packages/local-options/pyproject.toml
--- old/py-build-cmake-0.5.0/test-packages/local-options/pyproject.toml
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/test-packages/local-options/pyproject.toml
2026-08-22 13:02:06.000000000 +0200
@@ -1,9 +1,9 @@
[project]
name = "local-options"
-version = "0.5.0"
+version = "0.5.1"
description = "Checks loading of local override files"
readme = "README.md"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ "name" = "Pieter P", "email" = "[email protected]" }]
@@ -13,7 +13,7 @@
dependencies = []
[build-system]
-requires = ["py-build-cmake~=0.5.0"]
+requires = ["py-build-cmake~=0.5.1"]
build-backend = "py_build_cmake.build"
[tool.py-build-cmake.sdist]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/test-packages/local-options/tests/test_placeholder.py
new/py-build-cmake-0.5.1/test-packages/local-options/tests/test_placeholder.py
---
old/py-build-cmake-0.5.0/test-packages/local-options/tests/test_placeholder.py
2025-08-14 23:04:51.000000000 +0200
+++
new/py-build-cmake-0.5.1/test-packages/local-options/tests/test_placeholder.py
2026-08-22 13:02:06.000000000 +0200
@@ -1,2 +1,2 @@
def test_placeholder():
- import local_options # noqa: F401
+ import local_options # noqa: F401, PLC0415
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/test-packages/namespace-project-a/CMakeLists.txt
new/py-build-cmake-0.5.1/test-packages/namespace-project-a/CMakeLists.txt
--- old/py-build-cmake-0.5.0/test-packages/namespace-project-a/CMakeLists.txt
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/test-packages/namespace-project-a/CMakeLists.txt
2026-08-22 13:02:06.000000000 +0200
@@ -1,5 +1,5 @@
cmake_minimum_required(VERSION 3.18...4.0)
-project(pybind11-project VERSION 0.5.0)
+project(pybind11-project VERSION 0.5.1)
set(PY_VERSION_SUFFIX "")
set(PY_FULL_VERSION ${PROJECT_VERSION}${PY_VERSION_SUFFIX})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/test-packages/namespace-project-a/pyproject.toml
new/py-build-cmake-0.5.1/test-packages/namespace-project-a/pyproject.toml
--- old/py-build-cmake-0.5.0/test-packages/namespace-project-a/pyproject.toml
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/test-packages/namespace-project-a/pyproject.toml
2026-08-22 13:02:06.000000000 +0200
@@ -1,9 +1,9 @@
[project]
name = "namespace-project-a" # Name on PyPI
-version = "0.5.0"
+version = "0.5.1"
readme = "README.md"
description = "Part A of a namespace package"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ "name" = "Pieter P", "email" = "[email protected]" }]
@@ -14,7 +14,7 @@
[build-system]
requires = [
- "py-build-cmake~=0.5.0",
+ "py-build-cmake~=0.5.1",
"pybind11>=2.13.6,<4",
"pybind11-stubgen~=2.5.4",
]
@@ -40,7 +40,7 @@
install_components = ["python_modules", "python_stubs"]
[tool.py-build-cmake.stubgen]
-packages = ["namespace_project.add_module"]
+modules = ["namespace_project.add_module"]
[tool.pytest.ini_options]
testpaths = ["tests"]
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/test-packages/namespace-project-a/tests/test_add_module.py
new/py-build-cmake-0.5.1/test-packages/namespace-project-a/tests/test_add_module.py
---
old/py-build-cmake-0.5.0/test-packages/namespace-project-a/tests/test_add_module.py
2025-08-14 23:04:51.000000000 +0200
+++
new/py-build-cmake-0.5.1/test-packages/namespace-project-a/tests/test_add_module.py
2026-08-22 13:02:06.000000000 +0200
@@ -1,6 +1,3 @@
-import sys
-
-import pytest
from namespace_project.add_module import __version__, add
@@ -8,11 +5,7 @@
assert add(1, 2) == 3
[email protected](
- sys.version_info < (3, 8),
- reason="No importlib.metadata.version support on older versions of Python",
-)
def test_version():
- from importlib.metadata import version
+ from importlib.metadata import version # noqa: PLC0415
assert __version__ == version("namespace_project_a")
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/test-packages/namespace-project-b/pyproject.toml
new/py-build-cmake-0.5.1/test-packages/namespace-project-b/pyproject.toml
--- old/py-build-cmake-0.5.0/test-packages/namespace-project-b/pyproject.toml
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/test-packages/namespace-project-b/pyproject.toml
2026-08-22 13:02:06.000000000 +0200
@@ -1,9 +1,9 @@
[project]
name = "namespace-project-b" # Name on PyPI
-version = "0.5.0"
+version = "0.5.1"
readme = "README.md"
description = "Part B of a namespace package"
-requires-python = ">=3.7"
+requires-python = ">=3.8"
license = "MIT"
license-files = ["LICENSE"]
authors = [{ "name" = "Pieter P", "email" = "[email protected]" }]
@@ -14,7 +14,7 @@
[build-system]
requires = [
- "py-build-cmake~=0.5.0",
+ "py-build-cmake~=0.5.1",
]
build-backend = "py_build_cmake.build"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/tests/expected_contents/minimal/whl.txt
new/py-build-cmake-0.5.1/tests/expected_contents/minimal/whl.txt
--- old/py-build-cmake-0.5.0/tests/expected_contents/minimal/whl.txt
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/tests/expected_contents/minimal/whl.txt
2026-08-22 13:02:06.000000000 +0200
@@ -8,7 +8,7 @@
minimal/_add_module.pyi
minimal/add_module.py
minimal/py.typed
-{% if sys.implementation.name != 'pypy' or sys.version_info >= (3, 8) %}
+{% if have_stubgen %}
minimal/__init__.pyi
minimal/add_module.pyi
{% endif %}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/tests/expected_contents/minimal-comp/whl.txt
new/py-build-cmake-0.5.1/tests/expected_contents/minimal-comp/whl.txt
--- old/py-build-cmake-0.5.0/tests/expected_contents/minimal-comp/whl.txt
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/tests/expected_contents/minimal-comp/whl.txt
2026-08-22 13:02:06.000000000 +0200
@@ -8,7 +8,7 @@
minimal_comp/_add_module.pyi
minimal_comp/add_module.py
minimal_comp/py.typed
-{% if sys.implementation.name != 'pypy' or sys.version_info >= (3, 8) %}
+{% if have_stubgen %}
minimal_comp/__init__.pyi
minimal_comp/add_module.pyi
{% endif %}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/tests/expected_contents/namespace-project-a/whl.txt
new/py-build-cmake-0.5.1/tests/expected_contents/namespace-project-a/whl.txt
---
old/py-build-cmake-0.5.0/tests/expected_contents/namespace-project-a/whl.txt
2025-08-14 23:04:51.000000000 +0200
+++
new/py-build-cmake-0.5.1/tests/expected_contents/namespace-project-a/whl.txt
2026-08-22 13:02:06.000000000 +0200
@@ -7,6 +7,6 @@
namespace_project/_add_module.pyi
namespace_project/add_module.py
namespace_project/py.typed
-{% if sys.implementation.name != 'pypy' or sys.version_info >= (3, 8) %}
+{% if have_stubgen %}
namespace_project/add_module.pyi
{% endif %}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/tests/expected_contents/namespace-project-b/whl.txt
new/py-build-cmake-0.5.1/tests/expected_contents/namespace-project-b/whl.txt
---
old/py-build-cmake-0.5.0/tests/expected_contents/namespace-project-b/whl.txt
2025-08-14 23:04:51.000000000 +0200
+++
new/py-build-cmake-0.5.1/tests/expected_contents/namespace-project-b/whl.txt
2026-08-22 13:02:06.000000000 +0200
@@ -5,6 +5,6 @@
namespace_project_b-{{version}}.dist-info/entry_points.txt
namespace_project/sub_module.py
namespace_project/py.typed
-{% if sys.implementation.name != 'pypy' or sys.version_info >= (3, 8) %}
+{% if have_stubgen %}
namespace_project/sub_module.pyi
{% endif %}
\ No newline at end of file
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/tests/expected_contents/nanobind-project/whl.txt
new/py-build-cmake-0.5.1/tests/expected_contents/nanobind-project/whl.txt
--- old/py-build-cmake-0.5.0/tests/expected_contents/nanobind-project/whl.txt
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/tests/expected_contents/nanobind-project/whl.txt
2026-08-22 13:02:06.000000000 +0200
@@ -12,7 +12,7 @@
nanobind_project/add_module.py
nanobind_project/py.typed
nanobind_project/sub_package/__init__.py
-{% if sys.implementation.name != 'pypy' or sys.version_info >= (3, 8) %}
+{% if have_stubgen %}
nanobind_project/__init__.pyi
nanobind_project/add.pyi
nanobind_project/add_module.pyi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn'
'--exclude=.svnignore'
old/py-build-cmake-0.5.0/tests/expected_contents/pybind11-project/whl.txt
new/py-build-cmake-0.5.1/tests/expected_contents/pybind11-project/whl.txt
--- old/py-build-cmake-0.5.0/tests/expected_contents/pybind11-project/whl.txt
2025-08-14 23:04:51.000000000 +0200
+++ new/py-build-cmake-0.5.1/tests/expected_contents/pybind11-project/whl.txt
2026-08-22 13:02:06.000000000 +0200
@@ -12,7 +12,7 @@
pybind11_project/add_module.py
pybind11_project/py.typed
pybind11_project/sub_package/__init__.py
-{% if sys.implementation.name != 'pypy' or sys.version_info >= (3, 8) %}
+{% if have_stubgen %}
pybind11_project/__init__.pyi
pybind11_project/add.pyi
pybind11_project/add_module.pyi