Fallback to installing AMD64 plugins on Windows #615
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
What this PR does / why we need it
Although the CLI will be available for Windows ARM64, the vast majority of plugins are not, and therefore an ARM64 CLI will not be able to install most plugins.
Thanks to Windows 11's emulator available on Windows ARM64 machines, it is possible to run AMD64 binaries.
This PR teaches a Windows ARM64 CLI that if a plugin is not available for Windows ARM64, it should instead install the Windows AMD64 version. With this approach, it now becomes possible to use a Windows ARM64 CLI to its full potential.
Note that this approach is already used for DarwinARM64 but cannot be used for Linux as there is no standard emulator for AMD64 binaries. For Linux, plugins will need to be published for ARM64 before the platform is supported properly.
Which issue(s) this PR fixes
Part of #357
Describe testing done for PR
I started a Windows 11 ARM64 machine on Azure.
Make sure AMD64 plugins still get installed on ARM64 Darwin machine:
Release note
Additional information
Special notes for your reviewer
This approach will work on Windows 11 but not on Windows 10.
We have to decide what we want to do to help users understand this limitation.
Some ideas we discussed:
Issues with point 1