From 51c6464dff6fab93911646a609ba39177cd6d620 Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Fri, 10 Jul 2026 14:39:56 +0100 Subject: [PATCH 1/3] Relabel the MSI build option and reorder --- windows-release/azure-pipelines.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/windows-release/azure-pipelines.yml b/windows-release/azure-pipelines.yml index 3a1c9100..0d04c29a 100644 --- a/windows-release/azure-pipelines.yml +++ b/windows-release/azure-pipelines.yml @@ -78,10 +78,10 @@ parameters: displayName: "Produce full layout artifact" type: boolean default: true -- name: DoMSIX - displayName: "Produce Store packages (3.13 and earlier)" +- name: DoPyManager + displayName: "Produce PyManager package" type: boolean - default: false + default: true - name: DoNuget displayName: "Produce Nuget packages" type: boolean @@ -91,17 +91,17 @@ parameters: type: boolean default: true - name: DoMSI - displayName: "Produce EXE/MSI installer" + displayName: "Produce EXE/MSI installer (3.15 and earlier)" type: boolean default: true - name: TestMSI - displayName: "Run EXE/MSI installer tests" + displayName: "Run EXE/MSI installer tests (if built)" type: boolean default: true -- name: DoPyManager - displayName: "Produce PyManager package" +- name: DoMSIX + displayName: "Produce Store packages (3.13 and earlier)" type: boolean - default: true + default: false - name: BuildToPublish displayName: "Republish a build (select in Resources)" type: string From 1b7ee93d587d9eff6413f29ddc8f4d042607c414 Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Fri, 10 Jul 2026 16:25:18 +0100 Subject: [PATCH 2/3] Try PreferredToolArchitecture to deal with Arm64 memory issues --- windows-release/stage-build.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/windows-release/stage-build.yml b/windows-release/stage-build.yml index 3facc985..e0697700 100644 --- a/windows-release/stage-build.yml +++ b/windows-release/stage-build.yml @@ -45,6 +45,9 @@ jobs: workspace: clean: all + variables: + PreferredToolArchitecture: x64 + strategy: matrix: win32: @@ -191,6 +194,9 @@ jobs: workspace: clean: all + variables: + PreferredToolArchitecture: x64 + strategy: matrix: amd64: @@ -320,6 +326,7 @@ jobs: variables: Platform: ARM64 _HostPython: python + PreferredToolArchitecture: x64 strategy: matrix: From ab014b9817d1a88baba5f0f10cce32afbd299ecb Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Fri, 17 Jul 2026 17:55:59 +0100 Subject: [PATCH 3/3] Structure options --- windows-release/azure-pipelines.yml | 56 ++++++++++++++++++++--------- 1 file changed, 40 insertions(+), 16 deletions(-) diff --git a/windows-release/azure-pipelines.yml b/windows-release/azure-pipelines.yml index 0d04c29a..8e24905c 100644 --- a/windows-release/azure-pipelines.yml +++ b/windows-release/azure-pipelines.yml @@ -1,6 +1,8 @@ name: Release_$(SourceTag)_$(Date:yyyyMMdd)$(Rev:.rr) parameters: + +# Source selection parameters - name: GitRemote displayName: "Git remote" type: string @@ -26,6 +28,8 @@ parameters: displayName: "Git commit ('empty' to disable commit SHA check)" type: string default: 'empty' + +# Key publish options - name: DoPublish displayName: "Publish release" type: boolean @@ -38,10 +42,12 @@ parameters: - 'PythonSoftwareFoundation' - 'TestSign' - 'Unsigned' -- name: SigningDescription - displayName: "Signature description" - type: string - default: '(default)' + +# Version-specific build options +# These often need to be changed by the person queuing the build, and should be +# clearly labelled with the version range they apply to. +# When a version becomes EOL, its options can either move to the next section or +# be removed if its impact is entirely absent from the source tree. - name: Post315OutputDir displayName: "Separate free-threaded outputs (3.15 and later)" type: boolean @@ -50,6 +56,10 @@ parameters: displayName: "Build with tail-calling support (3.15 and later)" type: boolean default: false +- name: DoMSI + displayName: "Produce EXE/MSI installer (3.15 and earlier)" + type: boolean + default: true - name: DoJIT displayName: "Build the JIT compiler (3.14 and later)" type: boolean @@ -58,6 +68,13 @@ parameters: displayName: "Include GPG signatures (3.13 and earlier)" type: boolean default: false +- name: DoMSIX + displayName: "Produce Store packages (3.13 and earlier)" + type: boolean + default: false + +# Stable version options +# The default option matches what we use for all currently releasing versions. - name: DoFreethreaded displayName: "Include free-threaded builds" type: boolean @@ -90,18 +107,14 @@ parameters: displayName: "Produce embeddable package (w/ PyManager or MSI options)" type: boolean default: true -- name: DoMSI - displayName: "Produce EXE/MSI installer (3.15 and earlier)" - type: boolean - default: true - name: TestMSI displayName: "Run EXE/MSI installer tests (if built)" type: boolean default: true -- name: DoMSIX - displayName: "Produce Store packages (3.13 and earlier)" - type: boolean - default: false + +# Build selection options +# These skip the build and will repackage installers, or just republish them, +# using files from an earlier build. - name: BuildToPublish displayName: "Republish a build (select in Resources)" type: string @@ -112,6 +125,21 @@ parameters: type: string default: current values: ['current', 'build_to_package'] + +# Overrides +# These allow overriding certain specialised strings. Should only be rarely used +- name: SigningDescription + displayName: "Signature description override" + type: string + default: '(default)' +- name: vmImage + displayName: "VM Image override" + type: string + default: windows-2025 + +# Unsupported flags +# These flags are either deprecated but still present, or not-yet-supported but +# are intended to become genuine options when possible. - name: SignNuget displayName: "Enable Nuget signing (not recommended right now)" type: boolean @@ -124,10 +152,6 @@ parameters: displayName: "Build the JIT compiler for free-threaded builds (not used yet)" type: boolean default: false -- name: vmImage - displayName: "VM Image" - type: string - default: windows-2025 resources: pipelines: