diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f25a0352..53ddd691 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -106,29 +106,45 @@ jobs: platform: - runner: windows-latest target: x64 + interpreters: &interpreters '["3.10", "3.11", "3.12", "3.13", "3.14", "3.15"]' + free-threaded-interpreters: &free-threaded-interpreters '["3.14t", "3.15t"]' - runner: windows-latest target: x86 + interpreters: *interpreters + free-threaded-interpreters: *free-threaded-interpreters + # setup-python has no Windows ARM64 builds before 3.11. + - runner: windows-11-arm + target: aarch64 + interpreters: '["3.11", "3.12", "3.13", "3.14", "3.15"]' + free-threaded-interpreters: *free-threaded-interpreters steps: - uses: actions/checkout@v5 + + # https://github.com/pyo3/maturin-action#windows-build-the-regular-and-free-threaded-interpreters-in-separate-jobs - uses: actions/setup-python@v6 with: - python-version: | - 3.10 - 3.11 - 3.12 - 3.13 - 3.14 - 3.14t - 3.15 - 3.15t + python-version: ${{ join(fromJSON(matrix.platform.interpreters), fromJSON('"\n"')) }} allow-prereleases: true - architecture: ${{ matrix.platform.target }} + architecture: ${{ matrix.platform.target == 'aarch64' && 'arm64' || matrix.platform.target }} - name: Build wheels uses: PyO3/maturin-action@v1 with: target: ${{ matrix.platform.target }} - args: --release --out dist --find-interpreter + args: --release --out dist --interpreter ${{ join(fromJSON(matrix.platform.interpreters), ' ') }} + sccache: 'true' + + - uses: actions/setup-python@v6 + with: + python-version: ${{ join(fromJSON(matrix.platform.free-threaded-interpreters), fromJSON('"\n"')) }} + allow-prereleases: true + architecture: ${{ matrix.platform.target == 'aarch64' && 'arm64' || matrix.platform.target }} + - name: Build free-threaded wheels + uses: PyO3/maturin-action@v1 + with: + target: ${{ matrix.platform.target }} + args: --release --out dist --interpreter ${{ join(fromJSON(matrix.platform.free-threaded-interpreters), ' ') }} sccache: 'true' + - name: Upload wheels uses: actions/upload-artifact@v4 with: diff --git a/AUTHORS.rst b/AUTHORS.rst index 1bd657fb..9f408c53 100644 --- a/AUTHORS.rst +++ b/AUTHORS.rst @@ -12,3 +12,4 @@ Authors * Nicholas Bunn - https://github.com/NicholasBunn * Nathan McDougall - https://github.com/nathanjmcdougall * Oleksandr Zaiats - https://github.com/z4y4ts +* Nikhil Dabas - https://github.com/ndabas diff --git a/CHANGELOG.rst b/CHANGELOG.rst index b289cbc8..6d671cd6 100644 --- a/CHANGELOG.rst +++ b/CHANGELOG.rst @@ -9,6 +9,7 @@ latest (https://github.com/python-grimp/grimp/issues/308). * Officially support freethreaded Python 3.14+. * Officially support Python 3.15, including lazy imports. +* Officially support Windows ARM64 Python 3.11+, including freethreaded 3.14+. 3.15 (2026-07-03) -----------------