From d13b373dd5bf29e5a601926737a8e821bf9d18f6 Mon Sep 17 00:00:00 2001 From: Finn Womack Date: Sun, 26 Oct 2025 13:42:36 -0700 Subject: [PATCH 01/16] add arm64 windows to Tests --- .github/workflows/test.yml | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 2dd1899fb61..b77ca62ce91 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -32,7 +32,15 @@ jobs: fail-fast: false matrix: python-version: ["3.9", "3.10", "3.11", "3.12.4", "3.13", "3.14", "pypy-3.9"] - os: [ubuntu-latest, macOS-latest, windows-latest] + os: [ubuntu-latest, macOS-latest, windows-latest, windows-11-arm] + exclude: + # setup-python only supports 3.11+ on arm64 windows + - os: windows-11-arm + python-version: "3.9" + - os: windows-11-arm + python-version: "3.10" + - os: windows-11-arm + python-version: "pypy-3.9" steps: - uses: actions/checkout@v5 From 7f70c43c6663e2acc1d0ef76cfd0e2275a6875cf Mon Sep 17 00:00:00 2001 From: Finn Womack Date: Sun, 26 Oct 2025 13:43:10 -0700 Subject: [PATCH 02/16] add windows arm64 to release tests --- .github/workflows/release_tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/release_tests.yml b/.github/workflows/release_tests.yml index 078c7e8f0f7..a6e125e3d99 100644 --- a/.github/workflows/release_tests.yml +++ b/.github/workflows/release_tests.yml @@ -26,7 +26,7 @@ jobs: strategy: matrix: python-version: ["3.13"] - os: [macOS-latest, ubuntu-latest, windows-latest] + os: [macOS-latest, ubuntu-latest, windows-latest, windows-11-arm] steps: - uses: actions/checkout@v5 From fa88027824d1240785d75c493543c7e6b054635c Mon Sep 17 00:00:00 2001 From: Finn Womack Date: Sun, 26 Oct 2025 13:44:26 -0700 Subject: [PATCH 03/16] add windows arm64 wheel builds --- .github/workflows/pypi_upload.yml | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/.github/workflows/pypi_upload.yml b/.github/workflows/pypi_upload.yml index bb9989b0a4d..3647214c381 100644 --- a/.github/workflows/pypi_upload.yml +++ b/.github/workflows/pypi_upload.yml @@ -61,7 +61,9 @@ jobs: && cibuildwheel --print-build-identifiers --platform macos \ | pyp 'json.dumps({"only": x, "os": "macos-latest"})' \ && cibuildwheel --print-build-identifiers --platform windows \ - | pyp 'json.dumps({"only": x, "os": "windows-latest"})' + | pyp 'json.dumps({"only": x, "os": "windows-latest"})' \ + && cibuildwheel --print-build-identifiers --platform windows --archs ARM64 \ + | pyp 'json.dumps({"only": x, "os": "windows-11-arm"})' } | pyp 'json.dumps(list(map(json.loads, lines)))' > /tmp/matrix env: CIBW_ARCHS_LINUX: x86_64 From 318fa2b847a56cd372f2a76e46b8886d0a4dc757 Mon Sep 17 00:00:00 2001 From: Finn Womack Date: Sun, 26 Oct 2025 13:44:44 -0700 Subject: [PATCH 04/16] run on fork --- .github/workflows/pypi_upload.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/pypi_upload.yml b/.github/workflows/pypi_upload.yml index 3647214c381..230b359a55b 100644 --- a/.github/workflows/pypi_upload.yml +++ b/.github/workflows/pypi_upload.yml @@ -7,6 +7,7 @@ on: push: branches: - main + - win-arm64 permissions: contents: read From 17e6de1e6005070889b9c29edc73d88d7c6ed78f Mon Sep 17 00:00:00 2001 From: Finn Womack Date: Sun, 26 Oct 2025 13:46:35 -0700 Subject: [PATCH 05/16] add windows arm64 to publish executables --- .github/workflows/upload_binary.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/upload_binary.yml b/.github/workflows/upload_binary.yml index df0a8907bc5..71aa5e76f27 100644 --- a/.github/workflows/upload_binary.yml +++ b/.github/workflows/upload_binary.yml @@ -13,12 +13,16 @@ jobs: strategy: fail-fast: false matrix: - os: [windows-2025, ubuntu-22.04, ubuntu-22.04-arm, macos-latest] + os: [windows-2025, windows-11-arm, ubuntu-22.04, ubuntu-22.04-arm, macos-latest] include: - os: windows-2025 pathsep: ";" asset_name: black_windows.exe executable_mime: "application/vnd.microsoft.portable-executable" + - os: windows-11-arm + pathsep: ";" + asset_name: black_windows.exe + executable_mime: "application/vnd.microsoft.portable-executable" - os: ubuntu-22.04 pathsep: ":" asset_name: black_linux From c96ff7de527d4adc1241e57ada10c81a4ff7fd95 Mon Sep 17 00:00:00 2001 From: Finn Womack Date: Sun, 26 Oct 2025 13:49:06 -0700 Subject: [PATCH 06/16] run on dispatch to test --- .github/workflows/upload_binary.yml | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/.github/workflows/upload_binary.yml b/.github/workflows/upload_binary.yml index 71aa5e76f27..4325230c862 100644 --- a/.github/workflows/upload_binary.yml +++ b/.github/workflows/upload_binary.yml @@ -3,6 +3,9 @@ name: Publish executables on: release: types: [published] + workflow-dispatch: + + permissions: contents: write # actions/upload-release-asset needs this. @@ -21,7 +24,7 @@ jobs: executable_mime: "application/vnd.microsoft.portable-executable" - os: windows-11-arm pathsep: ";" - asset_name: black_windows.exe + asset_name: black_windows-arm.exe executable_mime: "application/vnd.microsoft.portable-executable" - os: ubuntu-22.04 pathsep: ":" @@ -60,7 +63,7 @@ jobs: ./dist/${{ matrix.asset_name }} --version ./dist/${{ matrix.asset_name }} src --verbose - - name: Upload binary as release asset - uses: softprops/action-gh-release@v2 - with: - files: dist/${{ matrix.asset_name }} + # - name: Upload binary as release asset + # uses: softprops/action-gh-release@v2 + # with: + # files: dist/${{ matrix.asset_name }} From 0e33e89c2fbc555edb3d4be61a10a8b19f7fe620 Mon Sep 17 00:00:00 2001 From: Finn Womack Date: Sun, 26 Oct 2025 13:49:44 -0700 Subject: [PATCH 07/16] fix typo --- .github/workflows/upload_binary.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upload_binary.yml b/.github/workflows/upload_binary.yml index 4325230c862..2fb06f73f35 100644 --- a/.github/workflows/upload_binary.yml +++ b/.github/workflows/upload_binary.yml @@ -3,7 +3,7 @@ name: Publish executables on: release: types: [published] - workflow-dispatch: + workflow_dispatch: From 682bd1d07cac7089d7e69c12f7bbbb5e46b3b661 Mon Sep 17 00:00:00 2001 From: Finn Womack Date: Sun, 26 Oct 2025 13:51:15 -0700 Subject: [PATCH 08/16] test in fork --- .github/workflows/upload_binary.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upload_binary.yml b/.github/workflows/upload_binary.yml index 2fb06f73f35..f4c72b5c84e 100644 --- a/.github/workflows/upload_binary.yml +++ b/.github/workflows/upload_binary.yml @@ -3,7 +3,7 @@ name: Publish executables on: release: types: [published] - workflow_dispatch: + push: From 263b6ce665fb09e862fb4fa87489eb22d627adcf Mon Sep 17 00:00:00 2001 From: Finn Womack Date: Sun, 26 Oct 2025 14:32:49 -0700 Subject: [PATCH 09/16] Update Python version to 3.13 --- .github/workflows/upload_binary.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/upload_binary.yml b/.github/workflows/upload_binary.yml index f4c72b5c84e..8f170b004aa 100644 --- a/.github/workflows/upload_binary.yml +++ b/.github/workflows/upload_binary.yml @@ -45,7 +45,7 @@ jobs: - name: Set up latest Python uses: actions/setup-python@v6 with: - python-version: "3.12.4" + python-version: "3.13" - name: Install Black and PyInstaller run: | From d8b595d138a2dc8528e67416a68bb995ca86ffde Mon Sep 17 00:00:00 2001 From: Finn Womack Date: Sun, 26 Oct 2025 14:41:31 -0700 Subject: [PATCH 10/16] use 3.12.10 for tests Use newer 3.12 while still avoiding using 3.12.5 --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index b77ca62ce91..7bc5ec2f671 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -31,7 +31,7 @@ jobs: strategy: fail-fast: false matrix: - python-version: ["3.9", "3.10", "3.11", "3.12.4", "3.13", "3.14", "pypy-3.9"] + python-version: ["3.9", "3.10", "3.11", "3.12.10", "3.13", "3.14", "pypy-3.9"] os: [ubuntu-latest, macOS-latest, windows-latest, windows-11-arm] exclude: # setup-python only supports 3.11+ on arm64 windows From 0a0179c4534a546295e3beb942784d5401a48b0c Mon Sep 17 00:00:00 2001 From: Finn Womack Date: Sun, 26 Oct 2025 15:13:36 -0700 Subject: [PATCH 11/16] Add workflow_dispatch trigger to release test --- .github/workflows/release_tests.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/release_tests.yml b/.github/workflows/release_tests.yml index a6e125e3d99..cf6c204b6be 100644 --- a/.github/workflows/release_tests.yml +++ b/.github/workflows/release_tests.yml @@ -11,6 +11,7 @@ on: - .github/workflows/release_tests.yml - release.py - release_tests.py + workflow_dispatch: jobs: build: From 60bd13d2508b1d9fdbfacd877414f168fadcd5a3 Mon Sep 17 00:00:00 2001 From: Finn Womack Date: Sun, 26 Oct 2025 15:15:40 -0700 Subject: [PATCH 12/16] run on all pushes to test --- .github/workflows/release_tests.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/workflows/release_tests.yml b/.github/workflows/release_tests.yml index cf6c204b6be..eb47c775adc 100644 --- a/.github/workflows/release_tests.yml +++ b/.github/workflows/release_tests.yml @@ -2,16 +2,15 @@ name: Release tool CI on: push: - paths: - - .github/workflows/release_tests.yml - - release.py - - release_tests.py + # paths: + # - .github/workflows/release_tests.yml + # - release.py + # - release_tests.py pull_request: paths: - .github/workflows/release_tests.yml - release.py - release_tests.py - workflow_dispatch: jobs: build: From 4805f7da0d38f5a308391120ce29201c6ef65652 Mon Sep 17 00:00:00 2001 From: Finn Womack Date: Sun, 26 Oct 2025 15:49:16 -0700 Subject: [PATCH 13/16] uncomment release, remove extra workflow trigger --- .github/workflows/upload_binary.yml | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/.github/workflows/upload_binary.yml b/.github/workflows/upload_binary.yml index 8f170b004aa..c49f84c7544 100644 --- a/.github/workflows/upload_binary.yml +++ b/.github/workflows/upload_binary.yml @@ -3,9 +3,6 @@ name: Publish executables on: release: types: [published] - push: - - permissions: contents: write # actions/upload-release-asset needs this. @@ -63,7 +60,7 @@ jobs: ./dist/${{ matrix.asset_name }} --version ./dist/${{ matrix.asset_name }} src --verbose - # - name: Upload binary as release asset - # uses: softprops/action-gh-release@v2 - # with: - # files: dist/${{ matrix.asset_name }} + - name: Upload binary as release asset + uses: softprops/action-gh-release@v2 + with: + files: dist/${{ matrix.asset_name }} From 4e11d8132dc48a978a4b17bede8b73967b005270 Mon Sep 17 00:00:00 2001 From: Finn Womack Date: Sun, 26 Oct 2025 15:50:09 -0700 Subject: [PATCH 14/16] uncomment paths --- .github/workflows/release_tests.yml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/.github/workflows/release_tests.yml b/.github/workflows/release_tests.yml index eb47c775adc..a6e125e3d99 100644 --- a/.github/workflows/release_tests.yml +++ b/.github/workflows/release_tests.yml @@ -2,10 +2,10 @@ name: Release tool CI on: push: - # paths: - # - .github/workflows/release_tests.yml - # - release.py - # - release_tests.py + paths: + - .github/workflows/release_tests.yml + - release.py + - release_tests.py pull_request: paths: - .github/workflows/release_tests.yml From 8c7c0fa4185908a7407e7ebf4a8ee6afe9c56702 Mon Sep 17 00:00:00 2001 From: Finn Womack Date: Sun, 26 Oct 2025 16:04:49 -0700 Subject: [PATCH 15/16] remove fork branch trigger --- .github/workflows/pypi_upload.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/pypi_upload.yml b/.github/workflows/pypi_upload.yml index 230b359a55b..3647214c381 100644 --- a/.github/workflows/pypi_upload.yml +++ b/.github/workflows/pypi_upload.yml @@ -7,7 +7,6 @@ on: push: branches: - main - - win-arm64 permissions: contents: read From c9aa5fd2c361646ce968efee0b50236c5018c907 Mon Sep 17 00:00:00 2001 From: Finn Womack Date: Sun, 26 Oct 2025 16:55:24 -0700 Subject: [PATCH 16/16] Add arm64 windows note to CHANGES.md --- CHANGES.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGES.md b/CHANGES.md index 303d6849bcb..8bb07b97cb3 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -42,6 +42,7 @@ - Releases now include arm64 Linux binaries (#4773) +- Releases now include arm64 Windows binaries and wheels (#4814) ### Parser