From 4405119951fd610d3dff107430261ae5d8afdd40 Mon Sep 17 00:00:00 2001 From: Kyle Altendorf Date: Wed, 31 Aug 2022 15:16:41 -0400 Subject: [PATCH] Python 3.11 (#332) * Python 3.11 * Allow alpha through release Python versions * add 3.11 to new wheels workflow * cibw prerelease * update to pybind11 2.10.0 * Update build-wheels.yml * Update build-test.yaml * just call cibuildwheel ourselves * manylinux2014 for CPython 3.11 Intel * just call cibuildwheel ourselves (more like the others) * stop doubling up on allowing alpha pythons * oops --- .github/workflows/build-test.yaml | 5 ++--- .github/workflows/build-wheels.yml | 29 ++++++++++++++++++++++++----- python-bindings/CMakeLists.txt | 2 +- setup.py | 4 ++-- 4 files changed, 29 insertions(+), 11 deletions(-) diff --git a/.github/workflows/build-test.yaml b/.github/workflows/build-test.yaml index 178fde85b..26d93fe64 100644 --- a/.github/workflows/build-test.yaml +++ b/.github/workflows/build-test.yaml @@ -23,14 +23,13 @@ jobs: fail-fast: false matrix: os: [macos-latest, ubuntu-latest, windows-latest] - python: ['3.7', '3.8', '3.9', '3.10'] + python: ['3.7', '3.8', '3.9', '3.10', '3.11'] steps: - name: Checkout code uses: actions/checkout@v3 - - uses: actions/setup-python@v2 - name: Install Python + - uses: chia-network/actions/setup-python@main with: python-version: ${{ matrix.python }} diff --git a/.github/workflows/build-wheels.yml b/.github/workflows/build-wheels.yml index d5c9680ca..38e46f965 100644 --- a/.github/workflows/build-wheels.yml +++ b/.github/workflows/build-wheels.yml @@ -43,16 +43,34 @@ jobs: python: - major-dot-minor: '3.7' cibw-build: 'cp37-*' + manylinux: + arch: manylinux2014 + intel: manylinux2010 matrix: '3.7' - major-dot-minor: '3.8' cibw-build: 'cp38-*' + manylinux: + arch: manylinux2014 + intel: manylinux2010 matrix: '3.8' - major-dot-minor: '3.9' cibw-build: 'cp39-*' + manylinux: + arch: manylinux2014 + intel: manylinux2010 matrix: '3.9' - major-dot-minor: '3.10' cibw-build: 'cp310-*' + manylinux: + arch: manylinux2014 + intel: manylinux2010 matrix: '3.10' + - major-dot-minor: '3.11' + cibw-build: 'cp311-*' + manylinux: + arch: manylinux2014 + intel: manylinux2014 + matrix: '3.11' arch: - name: ARM matrix: arm @@ -114,18 +132,17 @@ jobs: - name: Install pipx run: | pip install pipx + - name: Build and test - uses: pypa/cibuildwheel@v2.7.0 - with: - output-dir: dist env: + CIBW_PRERELEASE_PYTHONS: True CIBW_BUILD_VERBOSITY_MACOS: 0 CIBW_BUILD_VERBOSITY_LINUX: 0 CIBW_BUILD_VERBOSITY_WINDOWS: 0 CIBW_BUILD: ${{ matrix.python.cibw-build }} CIBW_SKIP: '*-manylinux_i686 *-win32 *-musllinux_*' - CIBW_MANYLINUX_AARCH64_IMAGE: manylinux2014 - CIBW_MANYLINUX_X86_64_IMAGE: manylinux2010 + CIBW_MANYLINUX_AARCH64_IMAGE: ${{ matrix.python.manylinux['arm'] }} + CIBW_MANYLINUX_X86_64_IMAGE: ${{ matrix.python.manylinux['intel'] }} CIBW_ENVIRONMENT_LINUX: "PATH=/project/cmake-3.17.3-Linux-`uname -m`/bin:$PATH" CIBW_BEFORE_ALL_LINUX: > yum -y install epel-release @@ -176,6 +193,8 @@ jobs: && cp {wheel} {dest_dir} CIBW_TEST_REQUIRES: pytest CIBW_TEST_COMMAND: py.test -v {project}/python-bindings/test.py + run: + pipx run --spec='cibuildwheel==2.9.0' cibuildwheel --output-dir dist 2>&1 - name: Upload artifacts uses: actions/upload-artifact@v3 diff --git a/python-bindings/CMakeLists.txt b/python-bindings/CMakeLists.txt index 5a8c3815c..2e331c3d6 100644 --- a/python-bindings/CMakeLists.txt +++ b/python-bindings/CMakeLists.txt @@ -2,7 +2,7 @@ FetchContent_Declare( pybind11 GIT_REPOSITORY https://github.com/pybind/pybind11.git - GIT_TAG v2.6.2 + GIT_TAG v2.10.0 ) FetchContent_MakeAvailable(pybind11 relic) diff --git a/setup.py b/setup.py index 4d2482b9d..7b4c0bfbb 100644 --- a/setup.py +++ b/setup.py @@ -196,8 +196,8 @@ def build_extensions(self): long_description_content_type="text/markdown", url="https://github.com/Chia-Network/bls-signatures", python_requires=">=3.7", - setup_requires=["pybind11>=2.5.0"], - install_requires=["pybind11>=2.5.0"], + setup_requires=["pybind11>=2.10.0"], + install_requires=["pybind11>=2.10.0"], ext_modules=ext_modules, cmdclass={"build_ext": BuildExt}, zip_safe=False,