diff --git a/.github/scripts/build-linux.sh b/.github/scripts/build-linux.sh index 4a01dfc..c67caa9 100755 --- a/.github/scripts/build-linux.sh +++ b/.github/scripts/build-linux.sh @@ -18,6 +18,8 @@ elif [ $PYTHON_VERSION == "3.11" ]; then PYBIN="/opt/python/cp311-cp311/bin" elif [ $PYTHON_VERSION == "3.12" ]; then PYBIN="/opt/python/cp312-cp312/bin" +elif [ $PYTHON_VERSION == "3.13" ]; then + PYBIN="/opt/python/cp313-cp313/bin" else echo "Unsupported Python version $PYTHON_VERSION" exit 1 diff --git a/.github/scripts/test-linux.sh b/.github/scripts/test-linux.sh index e0a86b0..87bc4d9 100755 --- a/.github/scripts/test-linux.sh +++ b/.github/scripts/test-linux.sh @@ -14,6 +14,8 @@ elif [ $PYTHON_VERSION == "3.11" ]; then PYBIN="/opt/python/cp311-cp311/bin" elif [ $PYTHON_VERSION == "3.12" ]; then PYBIN="/opt/python/cp312-cp312/bin" +elif [ $PYTHON_VERSION == "3.13" ]; then + PYBIN="/opt/python/cp313-cp313/bin" else echo "Unsupported Python version $PYTHON_VERSION" exit 1 diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2eeb508..ba7c81d 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -61,6 +61,12 @@ jobs: python-arch: 'x86_64' python-version: '3.12' numpy-version: '2.0.*' + - os-image: ubuntu-latest + os-name: linux + docker-image: quay.io/pypa/manylinux2014_x86_64 + python-arch: 'x86_64' + python-version: '3.13' + numpy-version: '2.1.*' - os-image: ubuntu-latest os-name: linux @@ -86,31 +92,43 @@ jobs: python-arch: 'aarch64' python-version: '3.12' numpy-version: '2.0.*' + - os-image: ubuntu-latest + os-name: linux + docker-image: quay.io/pypa/manylinux2014_aarch64 + python-arch: 'aarch64' + python-version: '3.13' + numpy-version: '2.1.*' - - os-image: macos-12 + - os-image: macos-13 os-name: mac macos-min-version: '10.9' python-arch: 'x86_64' python-version: '3.9' numpy-version: '2.0.*' - - os-image: macos-12 + - os-image: macos-13 os-name: mac macos-min-version: '10.9' python-arch: 'x86_64' python-version: '3.10' numpy-version: '2.0.*' - - os-image: macos-12 + - os-image: macos-13 os-name: mac macos-min-version: '10.9' python-arch: 'x86_64' python-version: '3.11' numpy-version: '2.0.*' - - os-image: macos-12 + - os-image: macos-13 os-name: mac macos-min-version: '10.9' python-arch: 'x86_64' python-version: '3.12' numpy-version: '2.0.*' + - os-image: macos-13 + os-name: mac + macos-min-version: '10.9' + python-arch: 'x86_64' + python-version: '3.13' + numpy-version: '2.1.*' - os-image: macos-14 # M1 os-name: mac @@ -136,6 +154,12 @@ jobs: python-arch: 'arm64' python-version: '3.12' numpy-version: '2.0.*' + - os-image: macos-14 # M1 + os-name: mac + macos-min-version: '11.0' + python-arch: 'arm64' + python-version: '3.13' + numpy-version: '2.1.*' - os-image: windows-2019 os-name: windows @@ -157,6 +181,11 @@ jobs: python-arch: 'x86_64' python-version: '3.12' numpy-version: '2.0.*' + - os-image: windows-2019 + os-name: windows + python-arch: 'x86_64' + python-version: '3.13' + numpy-version: '2.1.*' runs-on: ${{ matrix.config.os-image }} @@ -244,6 +273,12 @@ jobs: python-arch: 'x86_64' python-version: '3.12' numpy-version: '1.26.4' + - os-image: ubuntu-latest + os-name: linux + docker-image: quay.io/pypa/manylinux2014_x86_64 + python-arch: 'x86_64' + python-version: '3.13' + numpy-version: '2.1.*' - os-image: ubuntu-latest os-name: linux @@ -275,37 +310,49 @@ jobs: python-arch: 'aarch64' python-version: '3.12' numpy-version: '1.26.4' + - os-image: ubuntu-latest + os-name: linux + docker-image: quay.io/pypa/manylinux2014_aarch64 + python-arch: 'aarch64' + python-version: '3.13' + numpy-version: '2.1.*' - - os-image: macos-12 + - os-image: macos-13 os-name: mac macos-min-version: '10.9' python-arch: 'x86_64' python-version: '3.9' numpy-version: '2.0.*' - - os-image: macos-12 + - os-image: macos-13 os-name: mac macos-min-version: '10.9' python-arch: 'x86_64' python-version: '3.10' numpy-version: '2.0.*' - - os-image: macos-12 + - os-image: macos-13 os-name: mac macos-min-version: '10.9' python-arch: 'x86_64' python-version: '3.11' numpy-version: '2.0.*' - - os-image: macos-12 + - os-image: macos-13 os-name: mac macos-min-version: '10.9' python-arch: 'x86_64' python-version: '3.12' numpy-version: '2.0.*' - - os-image: macos-12 + - os-image: macos-13 os-name: mac macos-min-version: '10.9' python-arch: 'x86_64' python-version: '3.12' numpy-version: '1.26.4' + - os-image: macos-13 + os-name: mac + macos-min-version: '10.9' + python-arch: 'x86_64' + python-version: '3.13' + numpy-version: '2.1.*' - os-image: macos-14 # M1 os-name: mac @@ -337,6 +384,12 @@ jobs: python-arch: 'arm64' python-version: '3.12' numpy-version: '1.26.4' + - os-image: macos-14 # M1 + os-name: mac + macos-min-version: '11.0' + python-arch: 'arm64' + python-version: '3.13' + numpy-version: '2.1.*' - os-image: windows-2019 os-name: windows @@ -363,6 +416,11 @@ jobs: python-arch: 'x86_64' python-version: '3.12' numpy-version: '1.26.4' + - os-image: windows-2019 + os-name: windows + python-arch: 'x86_64' + python-version: '3.13' + numpy-version: '2.1.*' runs-on: ${{ matrix.config.os-image }} @@ -428,7 +486,7 @@ jobs: steps: - uses: actions/checkout@v4 - + - name: Setup Python uses: actions/setup-python@v5 with: @@ -471,7 +529,7 @@ jobs: - name: Setup Python uses: actions/setup-python@v5 - + - name: Upload wheels to PyPI run: | pip install twine