Skip to content

Commit d80e787

Browse files
committed
build(python): add Python 3.14 support and update build dependencies
- Add Python 3.10-3.14 classifiers in pyproject.toml - Enable Python 3.14 wheel builds in CI workflows by removing cp314 from cibuildwheel skip list - Pin pybind11 to 3.0.4 and setuptools to 83.0.0 across pyproject.toml, CI workflows, and documentation
1 parent 8a3d485 commit d80e787

5 files changed

Lines changed: 16 additions & 11 deletions

File tree

.github/workflows/BuildAndPublish.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,7 @@ jobs:
3131
cache: 'pip'
3232

3333
- name: Add requirements
34-
run: python -m pip install --upgrade setuptools pybind11>=2.12.0 cibuildwheel
34+
run: python -m pip install setuptools==83.0.0 pybind11==3.0.4 cibuildwheel
3535

3636
- name: Copy Build Files
3737
run: python setup.py copy_build_files
@@ -43,7 +43,7 @@ jobs:
4343
CIBW_BUILD_FRONTEND: "pip; args: --verbose"
4444
CIBW_ENVIRONMENT: "FORCE_AVX2=1 CMAKE_BUILD_PARALLEL_LEVEL=4"
4545
CIBW_ENVIRONMENT_MACOS: "FORCE_AVX2=1 MACOSX_DEPLOYMENT_TARGET=11.00 CMAKE_BUILD_PARALLEL_LEVEL=4"
46-
CIBW_SKIP: "cp314-* cp314t-* pp*win*"
46+
CIBW_SKIP: "cp314t-* pp*win*"
4747

4848
# upload artifacts
4949
- name: Upload Build Artifacts
@@ -65,7 +65,7 @@ jobs:
6565
python-version: "3.12"
6666

6767
- name: Add requirements
68-
run: python -m pip install --upgrade setuptools pybind11>=2.12.0
68+
run: python -m pip install setuptools==83.0.0 pybind11==3.0.4
6969

7070
- name: Copy Build Files
7171
run: python setup.py copy_build_files

.github/workflows/BuildAndTest.yml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
cache: 'pip'
2828

2929
- name: Add requirements
30-
run: python -m pip install --upgrade setuptools pybind11>=2.12.0 cibuildwheel
30+
run: python -m pip install setuptools==83.0.0 pybind11==3.0.4 cibuildwheel
3131

3232
- name: Copy Build Files
3333
run: python setup.py copy_build_files
@@ -39,7 +39,7 @@ jobs:
3939
CIBW_BUILD_FRONTEND: "pip; args: --verbose"
4040
CIBW_ENVIRONMENT: "FORCE_AVX2=1 CMAKE_BUILD_PARALLEL_LEVEL=4"
4141
CIBW_ENVIRONMENT_MACOS: "FORCE_AVX2=1 MACOSX_DEPLOYMENT_TARGET=11.00 CMAKE_BUILD_PARALLEL_LEVEL=4"
42-
CIBW_SKIP: "cp314t-* cp314-* pp*win*"
42+
CIBW_SKIP: "cp314t-* pp*win*"
4343

4444
build_sdist:
4545
runs-on: ubuntu-latest
@@ -54,7 +54,7 @@ jobs:
5454
python-version: "3.12"
5555

5656
- name: Add requirements
57-
run: python -m pip install --upgrade setuptools pybind11>=2.12.0
57+
run: python -m pip install setuptools==83.0.0 pybind11==3.0.4
5858

5959
- name: Copy Build Files
6060
run: python setup.py copy_build_files

docs/tutorials/installation.rst

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ This can be useful if you want to:
2929
python -m venv venv && . venv/bin/activate
3030
3131
# install build dependencies
32-
pip install setuptools>=77.0 pybind11 build
32+
pip install setuptools==83.0.0 pybind11==3.0.4 build
3333
python setup.py copy_build_files # copy c++ library to ./lib/
3434
3535
# install

python/README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@ cd DynamicExplorationGraph/python
3838
Make sure a C++ compiler is configured on your system (e.g. g++ under Linux, [Build Tools for Visual Studio](https://visualstudio.microsoft.com/downloads/) under Windows, [XCode](https://developer.apple.com/xcode/) under macOS).
3939

4040
```shell
41-
pip install setuptools>=77.0 pybind11 build
41+
pip install setuptools==83.0.0 pybind11==3.0.4 build
4242
python setup.py copy_build_files # copy c++ library to ./lib/
4343
pip install .
4444
```
@@ -166,7 +166,7 @@ The crEG paper introduces an additional parameter, *LIDType*, to determine wheth
166166

167167
### BuildError: `pybind11/typing.h:104:58: error: ‘copy_n’ is not a member of ‘std’`
168168

169-
This is a pybind11 bug, that occurs when compiling it with gcc-14. Change the pybind version to 2.12.
169+
This is a pybind11 bug, that occurs when compiling older pybind11 versions with gcc-14. Change the pybind version to 3.0.4.
170170

171171
## How to publish a new version
172172
- Run `git checkout main` and `git pull` to be sure, all updates are fetched

python/pyproject.toml

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
[build-system]
22
requires = [
3-
"setuptools>=77.0",
4-
"pybind11==2.12.0",
3+
"setuptools==83.0.0",
4+
"pybind11==3.0.4",
55
"wheel",
66
"ninja",
77
"cmake>=3.12"
@@ -29,6 +29,11 @@ classifiers = [
2929
"Development Status :: 2 - Pre-Alpha",
3030
"Intended Audience :: Developers",
3131
"Programming Language :: Python :: 3",
32+
"Programming Language :: Python :: 3.10",
33+
"Programming Language :: Python :: 3.11",
34+
"Programming Language :: Python :: 3.12",
35+
"Programming Language :: Python :: 3.13",
36+
"Programming Language :: Python :: 3.14",
3237
]
3338

3439
[project.urls]

0 commit comments

Comments
 (0)