Skip to content

feat: add win32-arm64 platform support - #63

Merged
jeremymcs merged 1 commit into
mainfrom
feat/win32-arm64-platform
Sep 22, 2026
Merged

jeremymcs merged 1 commit into
mainfrom
feat/win32-arm64-platform

Conversation

@jeremymcs

Copy link
Copy Markdown
Member

TL;DR

What: Adds win32-arm64 as a supported platform — build matrix, release asset, npm-publish guards, postinstall platform map, test assertions, and docs.
Why: npm install -g @opengsd/gsd-browser fails on Windows ARM64 with unsupported platform win32-arm64 (reported via open-gsd/gsd-pi#1604).
How: Mirrors the existing per-platform pattern: aarch64-pc-windows-msvc build on the windows-11-arm hosted runner, gsd-browser-windows-arm64.exe release asset wired into all three required_assets guards and both file lists, plus the postinstall/test/docs entries.

What

  • .github/workflows/release.yml + npm-publish.yml — new matrix entry; the npm-publish asset-verification guards and release file lists include the new artifact.
  • npm/scripts/postinstall.js + test-package.js — PLATFORM_MAP and asset assertions.
  • README.md / npm/README.md / CHANGELOG.md — platform table rows and changelog entries.

Why

Windows ARM64 users cannot install the package at all today: the postinstall platform gate rejects win32-arm64. aarch64-pc-windows-msvc is a Tier 1 Rust target, the windows-11-arm hosted runner (free for public repos) ships ARM64 MSVC tools, and the browser stack attaches to the user's installed Chrome/Edge — both of which ship native ARM64 Windows builds. No gsd-pi code changes are needed: its gsd-browser gates are os-level and arch-agnostic.

How

Purely declarative — every hunk mirrors its neighboring platform entry. Independent verification: PLATFORM_MAP keys == package.json os×cpu == workflow matrices == file lists == required_assets (both directions); YAML valid; test-package.js passes; no other platform-enumeration sites exist (install.sh and the launcher shim are arch-agnostic by design).

Note: the ARM64 build itself proves out on the first tagged release (no local Windows ARM64 toolchain here). Re-running npm-publish against a historical tag whose release lacks the new asset will fail the asset gate loudly — consistent with existing policy.

This PR is AI-assisted.

Adds the aarch64-pc-windows-msvc target to the release and npm-publish
build matrices on the windows-11-arm hosted runner, and the
gsd-browser-windows-arm64.exe artifact to the release file lists, the
three npm-publish required_assets guards, the postinstall PLATFORM_MAP,
and the test-package asset assertions. README/npm/README platform
tables and the changelog note the new target.

Fixes npm install on Windows ARM64, which previously failed with
'unsupported platform win32-arm64' in postinstall. (open-gsd/gsd-pi#1604)
@jeremymcs
jeremymcs merged commit d616c60 into main Sep 22, 2026
8 checks passed
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.

1 participant