Skip to content

Extend support to include win-arm64 - #1323

Merged
lrandersson merged 6 commits into
conda:mainfrom
lrandersson:dev-ra-1204
Aug 17, 2026
Merged

Extend support to include win-arm64#1323
lrandersson merged 6 commits into
conda:mainfrom
lrandersson:dev-ra-1204

Conversation

@lrandersson

@lrandersson lrandersson commented Aug 11, 2026

Copy link
Copy Markdown
Contributor

Description

This PR adds source-level support for win-arm64 (arch parsing, platform registration, etc.) such that constructor can build ARM64 installers when invoked with --platform win-arm64. Does not add win-arm64 to CI — that's tracked separately.

New error check - how it looks like running an .exe built on my amd64 pc while running it on arm64 via parallels:
image

Checklist - did you ...

  • Add a file to the news directory (using the template) for the next release's release notes?
  • Add / update necessary tests?
  • Add / update outdated documentation?

@lrandersson lrandersson self-assigned this Aug 11, 2026
@github-project-automation github-project-automation Bot moved this to 🆕 New in 🔎 Review Aug 11, 2026
@conda-bot conda-bot added the cla-signed [bot] added once the contributor has signed the CLA label Aug 11, 2026
@lrandersson
lrandersson marked this pull request as ready for review August 11, 2026 18:37
@lrandersson
lrandersson requested a review from a team as a code owner August 11, 2026 18:37
@lrandersson
lrandersson marked this pull request as draft August 11, 2026 18:37
Comment thread constructor/nsis/main.nsi.tmpl Outdated
@lrandersson
lrandersson marked this pull request as ready for review August 13, 2026 15:05
Comment thread constructor/nsis/main.nsi.tmpl

@marcoesters marcoesters left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice! Just a few details to check.

Comment thread tests/test_construct.py Outdated
Comment thread constructor/imaging.py Outdated
${EndIf}
{%- elif win_arm64 %}
# Make sure we're actually on native ARM64 Windows.
${IfNot} ${IsNativeARM64}

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can we have a similar check for the MSI installers?

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I did some investigation and couldnt find anything that exists today unfortunately. @freakboy3742 do you know if there is anything to check if an .msi installer is running on the wrong architecture? If not, let me know I'm happy to create a ticket.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

WiX (and therefore Briefcase-generated) installers do some CPU detection by default - if you try to run an ARM64 installer on x86-64, you get an error:

Screenshot 2026-08-17 at 6 32 43 am

The inverse isn't true, however - ARM64 machines can run x86-64 installers (using CPU emulation mode). It might be possible to prevent this case as well, but it's not currently prevented by default.

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I see, perhaps also due to emulation it currently makes sense not to prevent it by default but perhaps exposing an option in pyproject.toml to enable/disable it would do the job? If you think so, let me know and Im happy to open a new ticket.

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Exposing it as an option seems plausible as an option; my main concern would be whether there's actually demand for it. From what I've seen, it won't be a trivial addition (as in - it's not a simple "if" statement or pre-existing MSI config option - we'd need to build it from low-level primitives). If this is a case of "theoretical" interest rather than a use case, then I'd rather avoid the complexity.

That said, I guess a ticket couldn't hurt from at least an information gathering capacity...

@github-project-automation github-project-automation Bot moved this from 🆕 New to ✅ Approved in 🔎 Review Aug 14, 2026
@lrandersson
lrandersson merged commit 1c47e10 into conda:main Aug 17, 2026
46 checks passed
@github-project-automation github-project-automation Bot moved this from ✅ Approved to 🏁 Done in 🔎 Review Aug 17, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

cla-signed [bot] added once the contributor has signed the CLA

Projects

Status: 🏁 Done

Development

Successfully merging this pull request may close these issues.

4 participants