diff --git a/.github/workflows/build.yaml b/.github/workflows/build.yaml index bec239f..f7cce0d 100644 --- a/.github/workflows/build.yaml +++ b/.github/workflows/build.yaml @@ -13,7 +13,7 @@ jobs: runs-on: ubuntu-latest strategy: matrix: - python-version: ["3.8", "3.9", "3.10", "3.11"] + python-version: ["3.8", "3.9", "3.10", "3.11", "3.12"] steps: - uses: actions/checkout@v3 @@ -44,13 +44,13 @@ jobs: - uses: actions/checkout@v3 with: fetch-depth: 0 - cache: "pip" - cache-dependency-path: "setup.cfg" - name: Set up Python uses: actions/setup-python@v4 with: python-version: 3.8 + cache: "pip" + cache-dependency-path: "setup.cfg" - name: Install dependencies run: | @@ -72,7 +72,7 @@ jobs: needs: [build_and_test] if: startsWith(github.ref, 'refs/tags/') env: - CIBW_BUILD: "cp3{8,9,10,11}-{manylinux_x86_64,manylinux_aarch64,macosx_arm64,macosx_x86_64}" + CIBW_BUILD: "cp3{8,9,10,11,12}-{manylinux_x86_64,manylinux_aarch64,macosx_arm64,macosx_x86_64}" CIBW_ARCHS_MACOS: "x86_64 arm64" # use line below to enable aarch64 builds # CIBW_ARCHS_LINUX: "auto aarch64" diff --git a/.github/workflows/rebase_checker.yaml b/.github/workflows/rebase_checker.yaml index 62aeca7..65516d9 100644 --- a/.github/workflows/rebase_checker.yaml +++ b/.github/workflows/rebase_checker.yaml @@ -1,4 +1,3 @@ ---- name: Check that 'main' is not merged into the development branch on: pull_request diff --git a/pyproject.toml b/pyproject.toml index 0b0052e..7025159 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "setuptools<65", + "setuptools", "lsst-versions >= 1.3.0", "wheel", "pybind11 >= 2.5.0", diff --git a/setup.py b/setup.py index e96aa88..fa4edf7 100644 --- a/setup.py +++ b/setup.py @@ -11,11 +11,12 @@ import glob -# Importing this automatically enables parallelized builds -import numpy.distutils.ccompiler # noqa: F401 -from pybind11.setup_helpers import Pybind11Extension, build_ext +from pybind11.setup_helpers import ParallelCompile, Pybind11Extension, build_ext from setuptools import setup +# Optional multithreaded build. +ParallelCompile("NPY_NUM_BUILD_JOBS").install() + # Find the source code -- we can combine it into a single module pybind_src = sorted(glob.glob("python/lsst/sphgeom/*.cc")) cpp_src = sorted(glob.glob("src/*.cc"))