Skip to content

Commit

Permalink
Python 3.13 Support, 3.8 EOL (#374)
Browse files Browse the repository at this point in the history
Add support for Python 3.13.
Remove 3.8 because it is EOL as of Oct 2024.

Bump to pybind11 2.13.0+, which add Python 3.13 support in CI.
  • Loading branch information
ax3l authored Jan 8, 2025
1 parent 45ff86c commit 69ef222
Show file tree
Hide file tree
Showing 5 changed files with 10 additions and 10 deletions.
2 changes: 1 addition & 1 deletion CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -143,7 +143,7 @@ foreach(D IN LISTS AMReX_SPACEDIM)
pyamrex_enable_IPO(pyAMReX_${D}d)
else()
# conditionally defined target in pybind11
# https://github.com/pybind/pybind11/blob/v2.12.0/tools/pybind11Common.cmake#L397-L403
# https://github.com/pybind/pybind11/blob/v2.13.0/tools/pybind11Common.cmake#L407-L413
target_link_libraries(pyAMReX_${D}d PRIVATE pybind11::lto)
endif()
endif()
Expand Down
6 changes: 3 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -52,8 +52,8 @@ pyAMReX depends on the following popular third party software.
- a mature [C++17](https://en.wikipedia.org/wiki/C%2B%2B17) compiler, e.g., GCC 8, Clang 7, NVCC 11.0, MSVC 19.15 or newer
- [CMake 3.24.0+](https://cmake.org)
- [AMReX *development*](https://amrex-codes.github.io): we automatically download and compile a copy of AMReX
- [pybind11](https://github.com/pybind/pybind11/) 2.12.0+: we automatically download and compile a copy of pybind11 ([new BSD](https://github.com/pybind/pybind11/blob/master/LICENSE))
- [Python](https://python.org) 3.8+
- [pybind11](https://github.com/pybind/pybind11/) 2.13.0+: we automatically download and compile a copy of pybind11 ([new BSD](https://github.com/pybind/pybind11/blob/master/LICENSE))
- [Python](https://python.org) 3.9+
- [Numpy](https://numpy.org) 1.15+

Optional dependencies include:
Expand Down Expand Up @@ -199,7 +199,7 @@ Furthermore, pyAMReX adds a few selected CMake build options:
| `pyAMReX_pybind11_src` | *None* | Absolute path to pybind11 source directory (preferred if set) |
| `pyAMReX_pybind11_internal` | **ON**/OFF | Needs a pre-installed pybind11 library if set to `OFF` |
| `pyAMReX_pybind11_repo` | `https://github.com/pybind/pybind11.git` | Repository URI to pull and build pybind11 from |
| `pyAMReX_pybind11_branch` | `v2.12.0` | Repository branch for `pyAMReX_pybind11_repo` |
| `pyAMReX_pybind11_branch` | `v2.13.6` | Repository branch for `pyAMReX_pybind11_repo` |
| `Python_EXECUTABLE` | (newest found) | Path to Python executable |

As one example, one can also build against a local AMReX copy.
Expand Down
4 changes: 2 additions & 2 deletions cmake/dependencies/pybind11.cmake
Original file line number Diff line number Diff line change
Expand Up @@ -41,7 +41,7 @@ function(find_pybind11)
mark_as_advanced(FETCHCONTENT_UPDATES_DISCONNECTED_FETCHEDpybind11)
endif()
elseif(NOT pyAMReX_pybind11_internal)
find_package(pybind11 2.12.0 CONFIG REQUIRED)
find_package(pybind11 2.13.0 CONFIG REQUIRED)
message(STATUS "pybind11: Found version '${pybind11_VERSION}'")
endif()
endfunction()
Expand All @@ -56,7 +56,7 @@ option(pyAMReX_pybind11_internal "Download & build pybind11" ON)
set(pyAMReX_pybind11_repo "https://github.com/pybind/pybind11.git"
CACHE STRING
"Repository URI to pull and build pybind11 from if(pyAMReX_pybind11_internal)")
set(pyAMReX_pybind11_branch "v2.12.0"
set(pyAMReX_pybind11_branch "v2.13.6"
CACHE STRING
"Repository branch for pyAMReX_pybind11_repo if(pyAMReX_pybind11_internal)")

Expand Down
4 changes: 2 additions & 2 deletions docs/source/install/dependencies.rst
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,8 @@ Please see installation instructions below.
- `CMake 3.24.0+ <https://cmake.org>`__
- `Git 2.18+ <https://git-scm.com>`__
- `AMReX <https://amrex-codes.github.io>`__: we automatically download and compile a copy
- `pybind11 2.12.0+ <https://github.com/pybind/pybind11/>`__: we automatically download and compile a copy
- `Python 3.8+ <https://www.python.org>`__
- `pybind11 2.13.0+ <https://github.com/pybind/pybind11/>`__: we automatically download and compile a copy
- `Python 3.9+ <https://www.python.org>`__

- `numpy 1.15+ <https://numpy.org>`__

Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -244,7 +244,7 @@ def build_extension(self, ext):
ext_modules=cxx_modules,
cmdclass=cmdclass,
zip_safe=False,
python_requires=">=3.8",
python_requires=">=3.8", # left for CI, truly ">=3.9"
tests_require=["pytest"],
install_requires=install_requires,
# cmdclass={'test': PyTest},
Expand All @@ -264,11 +264,11 @@ def build_extension(self, ext):
"Topic :: Software Development :: Libraries",
"Programming Language :: C++",
"Programming Language :: Python :: 3",
"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",
(
"License :: OSI Approved :: BSD License"
), # TODO: use real SPDX: BSD-3-Clause-LBNL
Expand Down

0 comments on commit 69ef222

Please sign in to comment.