Skip to content

Update architecture filter for arm64 installer#387

Open
HarithaVattikuti wants to merge 1 commit intomainfrom
Testwinarm64
Open

Update architecture filter for arm64 installer#387
HarithaVattikuti wants to merge 1 commit intomainfrom
Testwinarm64

Conversation

@HarithaVattikuti
Copy link
Copy Markdown
Contributor

Problem

The Python ARM64 installer registers its display name suffix as (ARM64) (for example, "Python 3.14.4 (ARM64)") instead of the more generic (64-bit). As a result, the Remove-RegistryEntries script fails to identify and clean up these ARM64-specific registry entries. This can leave behind stale Windows Installer registrations, which subsequently prevent new installations of Python on ARM64 systems.

Solution

This change updates the logic in Remove-RegistryEntries to properly match and remove ARM64 installer entries by recognizing the (ARM64) suffix. With this fix, stale registry records will be correctly cleared, ensuring that new Python installations on Windows ARM64 are not blocked by previous residual entries.

Copilot AI review requested due to automatic review settings April 28, 2026 17:10
@HarithaVattikuti HarithaVattikuti requested a review from a team as a code owner April 28, 2026 17:10
Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Updates the Windows installer cleanup logic so ARM64 Python MSI registrations (which use an “(ARM64)” DisplayName suffix) are correctly detected and removed, preventing stale registry entries from blocking re-installation on Windows ARM64.

Changes:

  • Adjust Get-RegistryVersionFilter to recognize ARM64 DisplayName suffixes by expanding the architecture match to include ARM64.
  • Replace simple x86/other logic with a switch over architecture to support ARM64 explicitly.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment on lines +13 to +17
# ARM64 Python installer registers as "(ARM64)" in the display name, not "(64-bit)"
$archFilter = switch ($Architecture) {
'x86' { "32-bit" }
'arm64' { "64-bit|ARM64" }
default { "64-bit" }
Copy link

Copilot AI Apr 28, 2026

Choose a reason for hiding this comment

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

The comment says the ARM64 installer registers as "(ARM64)" instead of "(64-bit)", but the filter intentionally matches both by using 64-bit|ARM64. Please update the comment to reflect that we're expanding the match to include ARM64 (while still matching 64-bit entries), to avoid misleading future maintainers.

Copilot uses AI. Check for mistakes.
Comment thread installers/win-setup-template.ps1
@paveliak
Copy link
Copy Markdown

@HarithaVattikuti Could you update tests to check the scenario when the exactly same python version is installed in the image, e.g. by installing normal and freethreaded version in the same job 🙏

@paveliak
Copy link
Copy Markdown

@HarithaVattikuti What could we do to retroactively fix 3.14.4? AFAIK Python 3.14.5 is more than 1 month away.

@HarithaVattikuti
Copy link
Copy Markdown
Contributor Author

What could we do to retroactively fix 3.14.4? AFAIK Python 3.14.5 is more than 1 month away.

The 3.14.4 artifacts can be regenerated and released after this pull request is merged.

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.

3 participants