diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2be6c03..b7407ba 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 @@ -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.11 - miniforge-variant: Mambaforge - channels: conda-forge,defaults - channel-priority: true + python-version: 3.12 + miniforge-version: latest - name: Install ROOT shell: bash -l {0} diff --git a/.github/workflows/wheels.yml b/.github/workflows/wheels.yml index f0f9352..5cd4b06 100644 --- a/.github/workflows/wheels.yml +++ b/.github/workflows/wheels.yml @@ -29,12 +29,16 @@ 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 matrix: os: [ubuntu-latest, windows-latest, macos-latest] + arch: [auto64] + include: + - os: macos-latest + arch: universal2 steps: - uses: actions/checkout@v4 @@ -43,18 +47,52 @@ jobs: fetch-tags: true fetch-depth: 0 - - uses: pypa/cibuildwheel@v2.19.2 + - 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 }} + 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: [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 }} + CIBW_BUILD: cp${{ matrix.python }}*${{ matrix.libc }}* + + - name: Upload wheels + uses: actions/upload-artifact@v4 + with: + 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' 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"