From ffec484d847a869c7b184bf3e999d81249781c86 Mon Sep 17 00:00:00 2001 From: Lindsey Gray Date: Fri, 10 Jan 2025 11:11:35 -0600 Subject: [PATCH 01/12] try building aarch64 wheels with qemu --- .github/workflows/wheels.yml | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index f0f9352..51ab3d2 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -35,6 +35,12 @@ jobs: fail-fast: false matrix: os: [ubuntu-latest, windows-latest, macos-latest] + arch: [auto64] + include: + - os: ubuntu-latest + arch: aarch64 + - os: macos-latest + arch: universal2 steps: - uses: actions/checkout@v4 @@ -43,14 +49,16 @@ jobs: fetch-tags: true fetch-depth: 0 - - uses: pypa/cibuildwheel@v2.19.2 + - uses: docker/setup-qemu-action@v3 + + - uses: pypa/cibuildwheel@v2.22 env: MACOSX_DEPLOYMENT_TARGET: 10.14 - name: Upload wheels uses: actions/upload-artifact@v4 with: - name: artifact-wheel-${{ matrix.os }} + name: artifact-wheel-${{ matrix.os }}-${{ matrix.arch }} path: wheelhouse/*.whl pypi-publish: From ee14d6f308a6fd2508eef06765ef700264b9d02b Mon Sep 17 00:00:00 2001 From: Lindsey Gray Date: Fri, 10 Jan 2025 11:13:36 -0600 Subject: [PATCH 02/12] add arch label for wheel builds --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 51ab3d2..fcb4ef3 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -29,7 +29,7 @@ jobs: path: dist/*.tar.gz build_wheels: - name: Wheel on ${{ matrix.os }} + name: Wheel on ${{ matrix.os }} (${{ matrix.arch }}) runs-on: ${{ matrix.os }} strategy: fail-fast: false From acd659ea6c15b66b7fca0c64736e27318f1bd3c2 Mon Sep 17 00:00:00 2001 From: Lindsey Gray Date: Fri, 10 Jan 2025 11:15:44 -0600 Subject: [PATCH 03/12] skooch python versions for ci --- .github/workflows/ci.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2be6c03..f433a10 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -20,7 +20,7 @@ jobs: submodules: recursive - uses: actions/setup-python@v3 with: - python-version: 3.11.3 + python-version: 3.12 - uses: pre-commit/action@v3.0.0 with: extra_args: --hook-stage manual --all-files @@ -31,15 +31,15 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.11", "3.12"] + python-version: ["3.12", "3.13"] runs-on: [ubuntu-latest, macos-latest, windows-latest] include: - - python-version: "3.7" + - python-version: "3.8" runs-on: ubuntu-latest - - python-version: "3.7" + - python-version: "3.8" runs-on: macos-13 - - python-version: "3.7" + - python-version: "3.8" runs-on: windows-latest steps: - uses: actions/checkout@v4 @@ -68,7 +68,7 @@ jobs: - name: Set up Conda uses: conda-incubator/setup-miniconda@v3.0.4 with: - python-version: 3.11 + python-version: 3.12 miniforge-variant: Mambaforge channels: conda-forge,defaults channel-priority: true From e43e4e9352414b41eb2d5176150a8b23888ede40 Mon Sep 17 00:00:00 2001 From: Lindsey Gray Date: Fri, 10 Jan 2025 11:20:56 -0600 Subject: [PATCH 04/12] actually build for expected arch... --- .github/workflows/wheels.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index fcb4ef3..2edf504 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -50,8 +50,10 @@ jobs: fetch-depth: 0 - uses: docker/setup-qemu-action@v3 + if: matrix.os == 'ubuntu-latest' - uses: pypa/cibuildwheel@v2.22 + CIBW_ARCHS: ${{ matrix.arch }} env: MACOSX_DEPLOYMENT_TARGET: 10.14 From acb658fed4543b9505580330759e03e94fc4cff2 Mon Sep 17 00:00:00 2001 From: Lindsey Gray Date: Fri, 10 Jan 2025 11:23:06 -0600 Subject: [PATCH 05/12] actually yaml correctly... --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 2edf504..744224b 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -53,8 +53,8 @@ jobs: if: matrix.os == 'ubuntu-latest' - uses: pypa/cibuildwheel@v2.22 - CIBW_ARCHS: ${{ matrix.arch }} env: + CIBW_ARCHS: ${{ matrix.arch }} MACOSX_DEPLOYMENT_TARGET: 10.14 - name: Upload wheels From 20ba0670d64cc0487c279c2c032a85192e5f2310 Mon Sep 17 00:00:00 2001 From: Lindsey Gray Date: Fri, 10 Jan 2025 11:51:32 -0600 Subject: [PATCH 06/12] parallelize alt-arch builds --- .github/workflows/wheels.yml | 38 +++++++++++++++++++++++++++++++----- 1 file changed, 33 insertions(+), 5 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 744224b..c477d87 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -37,8 +37,6 @@ jobs: os: [ubuntu-latest, windows-latest, macos-latest] arch: [auto64] include: - - os: ubuntu-latest - arch: aarch64 - os: macos-latest arch: universal2 @@ -49,22 +47,52 @@ jobs: fetch-tags: true fetch-depth: 0 + - uses: pypa/cibuildwheel@v2.22 + env: + CIBW_ARCHS: ${{ matrix.arch }} + MACOSX_DEPLOYMENT_TARGET: 10.14 + + - name: Upload wheels + uses: actions/upload-artifact@v4 + with: + name: artifact-wheel-${{ matrix.os }}-${{ matrix.arch }} + path: wheelhouse/*.whl + + build_alt_wheels: + name: Wheel on ${{ matrix.os }} (cp${{ matrix.python }}/${{ matrix.libc }}/${{ matrix.arch }}) + runs-on: ${{ matrix.os }} + strategy: + fail-fast: false + matrix: + os: [ubuntu-latest] + libc: [manylinux, musllinux] + arch: [aarch64] + python: [37, 38, 39, 310, 311, 312, 313] + + steps: + - uses: actions/checkout@v4 + with: + submodules: recursive + fetch-tags: true + fetch-depth: 0 + - uses: docker/setup-qemu-action@v3 if: matrix.os == 'ubuntu-latest' - uses: pypa/cibuildwheel@v2.22 env: CIBW_ARCHS: ${{ matrix.arch }} - MACOSX_DEPLOYMENT_TARGET: 10.14 + CIBW_BUILD: cp${{ matrix.python }}*${{ matrix.libc }}* - name: Upload wheels uses: actions/upload-artifact@v4 with: - name: artifact-wheel-${{ matrix.os }}-${{ matrix.arch }} + name: artifact-wheel-${{ matrix.os }}-cp${{ matrix.python }}-${{ matrix.libc }}-${{ matrix.arch }} path: wheelhouse/*.whl + pypi-publish: - needs: [build_wheels, make_sdist] + needs: [build_wheels, build_alt_wheels, make_sdist] name: Upload release to PyPI runs-on: ubuntu-latest if: github.event_name == 'release' && github.event.action == 'published' From 20e500c991a0f37a7927fb7e9fe620829054368c Mon Sep 17 00:00:00 2001 From: Lindsey Gray Date: Fri, 10 Jan 2025 11:59:00 -0600 Subject: [PATCH 07/12] do auto64, universal2 for macos in one job --- .github/workflows/wheels.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index c477d87..126ab16 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -29,16 +29,16 @@ jobs: path: dist/*.tar.gz build_wheels: - name: Wheel on ${{ matrix.os }} (${{ matrix.arch }}) + name: Wheel on ${{ matrix.os }} runs-on: ${{ matrix.os }} strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest, macos-latest] + os: [ubuntu-latest, windows-latest] arch: [auto64] include: - os: macos-latest - arch: universal2 + arch: auto64,universal2 steps: - uses: actions/checkout@v4 @@ -55,7 +55,7 @@ jobs: - name: Upload wheels uses: actions/upload-artifact@v4 with: - name: artifact-wheel-${{ matrix.os }}-${{ matrix.arch }} + name: artifact-wheel-${{ matrix.os }} path: wheelhouse/*.whl build_alt_wheels: From 339a076bbf0187c451178fb161718fbf6f17b7b4 Mon Sep 17 00:00:00 2001 From: Lindsey Gray Date: Fri, 10 Jan 2025 13:00:54 -0600 Subject: [PATCH 08/12] mamba is now provided and default in miniforge --- .github/workflows/ci.yml | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f433a10..b7407ba 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -66,12 +66,10 @@ jobs: submodules: recursive - name: Set up Conda - uses: conda-incubator/setup-miniconda@v3.0.4 + uses: conda-incubator/setup-miniconda@v3 with: python-version: 3.12 - miniforge-variant: Mambaforge - channels: conda-forge,defaults - channel-priority: true + miniforge-version: latest - name: Install ROOT shell: bash -l {0} From 5bc419914df22513d570a6d64c76281471b55d98 Mon Sep 17 00:00:00 2001 From: Lindsey Gray Date: Fri, 10 Jan 2025 13:14:06 -0600 Subject: [PATCH 09/12] split macos build back apart so everything is about 10 minutes --- .github/workflows/wheels.yml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 126ab16..1f0d266 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -34,11 +34,11 @@ jobs: strategy: fail-fast: false matrix: - os: [ubuntu-latest, windows-latest] + os: [ubuntu-latest, windows-latest, macos-latest] arch: [auto64] include: - os: macos-latest - arch: auto64,universal2 + arch: universal2 steps: - uses: actions/checkout@v4 @@ -55,7 +55,7 @@ jobs: - name: Upload wheels uses: actions/upload-artifact@v4 with: - name: artifact-wheel-${{ matrix.os }} + name: artifact-wheel-${{ matrix.os }}-${{ matrix.arch }} path: wheelhouse/*.whl build_alt_wheels: From 5620d206eb882a9fce774d09c8eeac47eeb32ada Mon Sep 17 00:00:00 2001 From: Lindsey Gray Date: Fri, 10 Jan 2025 13:15:40 -0600 Subject: [PATCH 10/12] pleasant naming --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index 1f0d266..c477d87 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -29,7 +29,7 @@ jobs: path: dist/*.tar.gz build_wheels: - name: Wheel on ${{ matrix.os }} + name: Wheel on ${{ matrix.os }} (${{ matrix.arch }}) runs-on: ${{ matrix.os }} strategy: fail-fast: false From dc249e8a45d54c807949042fb9c586a3aa42bb2b Mon Sep 17 00:00:00 2001 From: Lindsey Gray Date: Fri, 10 Jan 2025 15:47:22 -0600 Subject: [PATCH 11/12] bump minimum python --- setup.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 9e63ea6..0bd0b18 100644 --- a/setup.cfg +++ b/setup.cfg @@ -23,7 +23,7 @@ classifiers = Development Status :: 5 - Production/Stable [options] -python_requires = >=3.7 +python_requires = >=3.8 install_requires = numpy >=1.13.3 typing-extensions;python_version<"3.8" From 201a928ad59b8954162b9e0e669be629f765be62 Mon Sep 17 00:00:00 2001 From: Lindsey Gray Date: Fri, 10 Jan 2025 15:49:43 -0600 Subject: [PATCH 12/12] drop py37 in aarch64 builds --- .github/workflows/wheels.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index c477d87..5cd4b06 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -67,7 +67,7 @@ jobs: os: [ubuntu-latest] libc: [manylinux, musllinux] arch: [aarch64] - python: [37, 38, 39, 310, 311, 312, 313] + python: [38, 39, 310, 311, 312, 313] steps: - uses: actions/checkout@v4