Skip to content

feat: Add Windows ARM64 (win32-arm64) toolchain support#287

Open
petero-dk wants to merge 1 commit into
aspect-build:mainfrom
plain-insure:windows-arm64-support
Open

feat: Add Windows ARM64 (win32-arm64) toolchain support#287
petero-dk wants to merge 1 commit into
aspect-build:mainfrom
plain-insure:windows-arm64-support

Conversation

@petero-dk

Copy link
Copy Markdown
  • Add win32-arm64 platform to _PLATFORMS in toolchains_repo.bzl
  • Add win32-arm64/windows-arm64 integrity hashes to TOOL_VERSIONS for all esbuild versions that publish a Windows ARM64 binary (0.13.12+)
  • Update mirror_release.sh to fetch win32-arm64 hashes for future releases

rules_esbuild only declared toolchains for darwin-x64, darwin-arm64, linux-x64, linux-arm64, and win32-x64. There was no toolchain for Windows on ARM64, even though esbuild publishes a @esbuild/win32-arm64 npm package (and the legacy unscoped esbuild-windows-arm64 package for esbuild < 0.16.0).

The win32-arm64 platform entry is compatible with @platforms//os:windows + @platforms//cpu:aarch64. The existing legacy-name transform (win32 -> windows) already produces the correct old-style key windows-arm64 for esbuild < 0.16.0, so no code change was needed there. Integrity hashes were fetched directly from the npm registry to match the existing format, and added to every version in TOOL_VERSIONS for which esbuild actually publishes a Windows ARM64 binary. Version 0.11.20 predates the Windows ARM64 package's existence, so it intentionally has no windows-arm64 entry; repository rules are lazy, so this only produces an error if someone explicitly requests that exact platform/version combination, consistent with the existing _fail__no_integrity behavior for any other missing hash. No changes were needed in toolchain.bzl, repositories.bzl, or the rest of toolchains_repo.bzl, since they already derive behavior generically from _PLATFORMS / TOOL_VERSIONS.


Changes are visible to end-users: yes

  • Searched for relevant documentation and updated as needed: no
  • Breaking change (forces users to change their own code or config): no
  • Suggested release notes appear below: yes

Adds support for the Windows ARM64 (win32-arm64) esbuild toolchain, so esbuild_register_toolchains / the esbuild module extension now resolve a native binary on Windows ARM64 hosts.

Test plan

  • Manual testing; please provide instructions so we can reproduce:

Ran bazel build //esbuild/... to confirm versions.bzl and toolchains_repo.bzl still load and analyze correctly, and verified via a Python exec of versions.bzl that get_platforms() resolves win32-arm64 (or windows-arm64 for legacy versions) for every entry in TOOL_VERSIONS except 0.11.20, which predates the Windows ARM64 npm package.

- Add win32-arm64 platform to _PLATFORMS in toolchains_repo.bzl
- Add win32-arm64/windows-arm64 integrity hashes to TOOL_VERSIONS for
  all esbuild versions that publish a Windows ARM64 binary (0.13.12+)
- Update mirror_release.sh to fetch win32-arm64 hashes for future releases

Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>
@CLAassistant

CLAassistant commented Jul 4, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@petero-dk petero-dk changed the title Add Windows ARM64 (win32-arm64) toolchain support feat: Add Windows ARM64 (win32-arm64) toolchain support Jul 4, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants