diff --git a/.github/workflows/cibuildwheel.yml b/.github/workflows/cibuildwheel.yml index dbe1cec105ee..83b79f327ce8 100644 --- a/.github/workflows/cibuildwheel.yml +++ b/.github/workflows/cibuildwheel.yml @@ -69,8 +69,32 @@ jobs: curl -Lo LICENSE/LICENSE_QHULL https://github.com/qhull/qhull/raw/2020.2/COPYING.txt + - name: Build wheels for CPython 3.12 + uses: pypa/cibuildwheel@39a63b5912f086dd459cf6fcb13dcdd3fe3bc24d # v2.15.0 + env: + CIBW_BUILD: "cp312-*" + CIBW_SKIP: "*-musllinux* *i686* *win32*" + CIBW_MANYLINUX_X86_64_IMAGE: manylinux2014 + CIBW_MANYLINUX_I686_IMAGE: manylinux2014 + MPL_DISABLE_FH4: "yes" + CIBW_ARCHS: ${{ matrix.cibw_archs }} + # Remove this once NumPy with Python 3.12 wheels is not pre-release. + CIBW_BEFORE_BUILD: >- + pip install certifi "Cython>=0.29.34,<3.1" "pybind11>=2.6" "pyproject-metadata >= 0.7.1" "setuptools>=60" "setuptools_scm>=7" && + pip install --pre "numpy>=1.25" && + rm -rf {package}/build + CIBW_BEFORE_BUILD_WINDOWS: >- + pip install certifi colorama "Cython>=0.29.34,<3.1" delvewheel "pybind11>=2.6" "pyproject-metadata >= 0.7.1" "setuptools>=60" "setuptools_scm>=7" && + pip install --pre "numpy>=1.25" && + rm -rf {package}/build + CIBW_ENVIRONMENT: PIP_NO_BUILD_ISOLATION=0 + # Remove this once contourpy has Python 3.12 wheels. + CIBW_BEFORE_TEST: >- + pip install "meson>=1.2.0" "meson-python>=0.13.1" "ninja" "pybind11>=2.10.4" && + pip install --pre "numpy>=1.25" + - name: Build wheels for CPython 3.11 - uses: pypa/cibuildwheel@v2.12.1 + uses: pypa/cibuildwheel@39a63b5912f086dd459cf6fcb13dcdd3fe3bc24d # v2.15.0 env: CIBW_BUILD: "cp311-*" CIBW_SKIP: "*-musllinux*" @@ -83,7 +107,7 @@ jobs: CIBW_ARCHS: ${{ matrix.cibw_archs }} - name: Build wheels for CPython 3.10 - uses: pypa/cibuildwheel@v2.12.1 + uses: pypa/cibuildwheel@39a63b5912f086dd459cf6fcb13dcdd3fe3bc24d # v2.15.0 env: CIBW_BUILD: "cp310-*" CIBW_SKIP: "*-musllinux*" @@ -96,7 +120,7 @@ jobs: CIBW_ARCHS: ${{ matrix.cibw_archs }} - name: Build wheels for CPython 3.9 - uses: pypa/cibuildwheel@v2.12.1 + uses: pypa/cibuildwheel@39a63b5912f086dd459cf6fcb13dcdd3fe3bc24d # v2.15.0 env: CIBW_BUILD: "cp39-*" CIBW_SKIP: "*-musllinux*" @@ -109,7 +133,7 @@ jobs: CIBW_ARCHS: ${{ matrix.cibw_archs }} - name: Build wheels for CPython 3.8 - uses: pypa/cibuildwheel@v2.12.0 + uses: pypa/cibuildwheel@39a63b5912f086dd459cf6fcb13dcdd3fe3bc24d # v2.15.0 env: CIBW_BUILD: "cp38-*" CIBW_SKIP: "*-musllinux*" @@ -121,10 +145,10 @@ jobs: MPL_DISABLE_FH4: "yes" CIBW_ARCHS: ${{ matrix.cibw_archs }} - - name: Build wheels for PyPy - uses: pypa/cibuildwheel@v2.12.1 + - name: Build wheels for PyPy 3.8 + uses: pypa/cibuildwheel@39a63b5912f086dd459cf6fcb13dcdd3fe3bc24d # v2.15.0 env: - CIBW_BUILD: "pp38-* pp39-*" + CIBW_BUILD: "pp38-*" CIBW_SKIP: "*-musllinux*" CIBW_BEFORE_BUILD: >- pip install certifi oldest-supported-numpy && @@ -132,6 +156,23 @@ jobs: CIBW_ARCHS: ${{ matrix.cibw_archs }} if: matrix.cibw_archs != 'aarch64' + - name: Build wheels for PyPy 3.9 + uses: pypa/cibuildwheel@39a63b5912f086dd459cf6fcb13dcdd3fe3bc24d # v2.15.0 + env: + CIBW_BUILD: "pp39-*" + CIBW_SKIP: "*-musllinux*" + CIBW_BEFORE_BUILD: >- + pip install certifi "Cython>=0.29.34,<3.0" "pybind11>=2.6" "setuptools>=42" "setuptools_scm>=7" && + pip install "numpy>=1.25" && + git clean -fxd build + CIBW_BEFORE_BUILD_WINDOWS: >- + pip install certifi delvewheel "pybind11>=2.6" "setuptools>=42" "setuptools_scm>=7" && + pip install "numpy>=1.25" && + git clean -fxd build + CIBW_ARCHS: ${{ matrix.cibw_archs }} + CIBW_ENVIRONMENT: PIP_NO_BUILD_ISOLATION=0 PIP_NO_DEPENDENCIES=0 + if: matrix.cibw_archs != 'aarch64' + - name: Validate that LICENSE files are included in wheels run: | python3 ./ci/check_wheel_licenses.py