From fdd965ac07dbb3d66c4b457847fd77ac7f02b236 Mon Sep 17 00:00:00 2001 From: Nikhil Dabas Date: Thu, 27 Aug 2026 11:14:27 +0100 Subject: [PATCH 1/3] Add Windows ARM64 build --- .github/workflows/release.yml | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f25a0352..889bde07 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -108,12 +108,15 @@ jobs: target: x64 - runner: windows-latest target: x86 + - runner: windows-11-arm + target: aarch64 steps: - uses: actions/checkout@v5 - uses: actions/setup-python@v6 with: + # CPython has no official Windows ARM64 build before 3.11. python-version: | - 3.10 + ${{ matrix.platform.target != 'aarch64' && '3.10' || '' }} 3.11 3.12 3.13 @@ -122,7 +125,7 @@ jobs: 3.15 3.15t 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: From 7d914cd68ba4ef534d27e9b75e153bad85315181 Mon Sep 17 00:00:00 2001 From: Nikhil Dabas Date: Thu, 27 Aug 2026 12:01:42 +0100 Subject: [PATCH 2/3] Separate Windows build for free-threaded Python --- .github/workflows/release.yml | 35 ++++++++++++++++++++++++----------- 1 file changed, 24 insertions(+), 11 deletions(-) diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index 889bde07..53ddd691 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -106,32 +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: - # CPython has no official Windows ARM64 build before 3.11. - python-version: | - ${{ matrix.platform.target != 'aarch64' && '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 == '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: From 66a5eb672fe7edc8c6c5e820dac19ad44391b52d Mon Sep 17 00:00:00 2001 From: Nikhil Dabas Date: Thu, 27 Aug 2026 12:15:40 +0100 Subject: [PATCH 3/3] Update CHANGELOG and AUTHORS --- AUTHORS.rst | 1 + CHANGELOG.rst | 1 + 2 files changed, 2 insertions(+) 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) -----------------