Skip to content

Add native Windows ARM64 support - #294

Open
jvarela64 wants to merge 6 commits into
DeepSourceCorp:masterfrom
jvarela64:user/jvarela64/port/windows-arm64
Open

jvarela64 wants to merge 6 commits into
DeepSourceCorp:masterfrom
jvarela64:user/jvarela64/port/windows-arm64

Conversation

@jvarela64

Copy link
Copy Markdown

Summary

Add native Windows ARM64 build, packaging, installer, updater-selection, and CI support while preserving the existing Windows AMD64 release path and CLI behavior.

Implementation

  • build Windows AMD64 and ARM64 release artifacts from an explicit matrix
  • use CGO_ENABLED=0 for both Windows targets after confirming the complete Windows dependency graph has no CGO or native-object dependencies
  • verify raw and ZIP-contained PE machine types (0x8664 for AMD64 and 0xAA64 for ARM64)
  • publish separate windows_amd64 and windows_arm64 manifest entries and checksums
  • detect the Windows OS architecture in the PowerShell installer, preferring PROCESSOR_ARCHITEW6432 so x64 PowerShell on Windows ARM selects the native ARM64 archive
  • retain the generic updater and add literal Windows platform-key coverage
  • add native windows-11-arm and Windows AMD64 CI jobs with build, execution, PE, installer, and updater checks
  • document the Windows PowerShell installation path and ARM64 publication timing

Compatibility

This is architecture enablement only. It does not change commands, flags, API endpoints, authentication, output schemas, exit-code behavior, configuration paths, or existing Linux/macOS support. Windows AMD64 and ARM64 were compared across 17 representative help, version, authentication, repository, analysis, completion, update, and invalid-command cases with identical normalized output and exit codes.

The Windows release path intentionally changes AMD64 from CGO_ENABLED=1 plus MinGW to CGO_ENABLED=0. Dependency inspection found no CgoFiles, C/C++ files, or .syso objects for either Windows target, and release-equivalent AMD64 and ARM64 builds passed.

Validation

  • Native Windows ARM64 and AMD64 CI jobs passed on commit 9ea935f419ad197b33dc233c8efd5e02cff1e96e:
  • Fork-only release workflow validation passed all Linux, macOS, Windows AMD64, Windows ARM64, packaging, checksum, manifest, and installer-generation jobs:
  • Production R2 upload was intentionally disabled in the fork-only validation commit because upstream credentials are unavailable to forks.
  • Downloaded release ZIPs were independently verified:
    • Windows AMD64: PE 0x8664
    • Windows ARM64: PE 0xAA64
  • Controlled native ARM64 installer test selected windows_arm64, verified SHA256, installed the executable, and launched it successfully.
  • A clean-base comparison found the same 40 pre-existing Windows failures in the same 9 packages before and after this change, with no new failure names.

Security and workflow boundaries

  • PR jobs request only contents: read; new checkout steps do not persist credentials.
  • Fork PR validation receives no production secrets.
  • Release publication remains centralized in the existing downstream deploy job, preventing architecture jobs from racing on shared release state.
  • Apple signing, Sentry, R2 credentials, and official publication remain controlled by DeepSource maintainers and the trusted tag workflow.

Joel Varela Donado and others added 6 commits September 16, 2026 10:13
Build pure-Go Windows AMD64 and ARM64 archives, verify their PE machine types before and after packaging, and publish a windows_arm64 manifest entry.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: afcbe814-11a6-45d4-988f-a4e6324b7de6
Detect the Windows OS architecture, including x64 PowerShell under ARM64 emulation, and cover installer selection, failures, checksums, and updater platform keys.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: afcbe814-11a6-45d4-988f-a4e6324b7de6
Run native ARM64 and AMD64 Windows build, smoke, installer, updater, and PE architecture checks, and document the PowerShell installation path.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: afcbe814-11a6-45d4-988f-a4e6324b7de6
Assert the PATH status message in stable fragments so Windows PowerShell line wrapping on hosted runners does not create a false failure.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: afcbe814-11a6-45d4-988f-a4e6324b7de6
Use the process PATH value as the authoritative assertion and avoid depending on Windows PowerShell host line wrapping.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: afcbe814-11a6-45d4-988f-a4e6324b7de6
Compare the process PATH before and after a second install instead of depending on host-wrapped status output.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: afcbe814-11a6-45d4-988f-a4e6324b7de6
@deepsource-io

deepsource-io Bot commented Sep 16, 2026

Copy link
Copy Markdown

DeepSource Code Review

We reviewed changes in 80d2bcc...9ea935f on this pull request. Below is the summary for the review, and you can see the individual issues we found as inline review comments.

See full review on DeepSource ↗

PR Report Card

Overall Grade   Security  

Reliability  

Complexity  

Hygiene  

Code Review Summary

Analyzer Status Updated (UTC) Details
Go Sep 16, 2026 6:17p.m. Review ↗
Secrets Sep 16, 2026 6:17p.m. Review ↗
Code coverage Sep 16, 2026 6:48p.m. Review ↗

Important

AI Review is run only on demand for your team. We're only showing results of static analysis review right now. To trigger AI Review, comment @deepsourcebot review on this thread.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Development

Successfully merging this pull request may close these issues.

1 participant