Skip to content

{Packaging} Prepare native Windows ARM64 packages - #34195

Draft
René Dudfield (illume) wants to merge 10 commits into
Azure:devfrom
illume:feature/windows-arm64-packaging
Draft

René Dudfield (illume) wants to merge 10 commits into
Azure:devfrom
illume:feature/windows-arm64-packaging

Conversation

@illume

@illume René Dudfield (illume) commented Oct 8, 2026 •

Copy link
Copy Markdown

WIP: this is a proof of concept trying to see what is working/not working for windows arm64.
Note: at least 3 upstream packages are blocked on cryptography 51 being released with windows arm64 builds.


Related command

N/A

Description

Prepare native Windows ARM64 Azure CLI packages for
Azure/azure-cli#29317.

This draft:

  • adds ARM64 support to the Windows embedded-Python builder;
  • upgrades to WiX 3.14.1, verifies its SHA-256 digest, and adds ARM64 MSI
    product metadata and upgrade handling;
  • builds and tests ARM64 MSI and ZIP artifacts on a proposed native Windows
    ARM64 pool;
  • updates manual and pipeline installation tests for the native Program Files
    location; and
  • gates ARM64 dependency verification, builds, and installation tests behind
    the enableWindowsArm64 pipeline parameter, which defaults to false.

The existing released dependency pins remain unchanged so ordinary development
and CI environments stay resolvable. Enable the ARM64 jobs only after:

  • cryptography 51 publishes its merged Windows ARM64 wheels, tracked by
    pyca/cryptography#15350;
  • a compatible pyOpenSSL release is available;
  • the Windows lock uses architecture-specific pins that preserve win32
    support; and
  • pool-windows-2022-arm64 is a proposed pool name and must be provisioned or
    replaced with the platform engineering team's final 1ES pool.

Keep this PR in draft until those dependency and infrastructure gates are
available.

Assisted by Copilot.

Testing Guide

Completed:

python build_scripts/windows/tests/test_arm64_packaging.py
python -m py_compile \
  build_scripts/windows/scripts/test_msi_package.py \
  build_scripts/windows/tests/test_arm64_packaging.py
git -c core.whitespace=cr-at-eol diff --check upstream/dev..HEAD
  • All five focused packaging configuration tests pass.
  • Both changed Azure Pipelines YAML files parse successfully.
  • WiX 3.14.1 Wix.targets maps InstallerPlatform from Platform; the pinned
    release archive matches SHA-256
    6ac824e1642d6f7277d0ed7ea09411a508f6116ba6fae0aa5f2c7daa2ff43d31.
  • CPython 3.14.7 publishes the required Windows ARM64 embeddable archive.
  • A binary-only audit of the current 142 Windows requirements found 139
    compatible ARM64 wheels. ARM64 CI remains disabled by default because the
    current cryptography, psutil, and related pyOpenSSL pins require a coordinated
    update.
  • A fork-only native Windows ARM64
    source-build probe
    downloaded the ARM64 embedded Python runtime and built the local Azure CLI,
    core, and telemetry wheels. Pip selected source archives for bcrypt and
    cryptography; cryptography then stopped before Rust compilation because its
    isolated embedded-Python build environment could not import maturin.

Not completed:

  • A complete native Windows ARM64 MSI/ZIP build. Source fallback needs the
    upstream cryptography wheel toolchain (maturin, Rust, and static OpenSSL),
    and the proposed Azure Pipelines pool is not yet configured.
  • ARM64 dependency-lock verification, because cryptography 51 and the
    compatible pyOpenSSL release do not yet exist.

History Notes

N/A


This checklist is used to make sure that common guidelines for a pull request are followed.

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
There may be pipelines that require an authorized user to comment /azp run to run.

@microsoft-github-policy-service microsoft-github-policy-service Bot added the customer-reported Issues that are reported by GitHub users external to the Azure organization. label Oct 8, 2026
@microsoft-github-policy-service

Copy link
Copy Markdown
Contributor

Thank you for your contribution René Dudfield (@illume)! We will review the pull request and get back to you soon.

@a0x1ab

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).

@illume

Copy link
Copy Markdown
Author

/azp run

@azure-pipelines

Copy link
Copy Markdown
Commenter does not have sufficient privileges for PR 34195 in repo Azure/azure-cli

@a0x1ab

Copy link
Copy Markdown
Member

/azp run

@azure-pipelines

Copy link
Copy Markdown
Azure Pipelines:
Successfully started running 3 pipeline(s).

@yonzhan

Copy link
Copy Markdown
Collaborator

Please fix CI issues

This branch has not been deployed

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

Labels

act-platform-engineering-squad Auto-Assign Auto assign by bot customer-reported Issues that are reported by GitHub users external to the Azure organization. Packaging

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants