From f2c9f1fddb302622aaece6d6bbc93273b047338d Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Fri, 16 Oct 2026 14:56:05 +0100 Subject: [PATCH 1/4] gt-159494: Publish Windows packages for free-threaded test and embed --- windows-release/stage-layout-pymanager.yml | 41 +++++++++++++++++++++ windows-release/stage-pack-pymanager.yml | 15 ++++++++ windows-release/stage-publish-pymanager.yml | 15 ++++++++ 3 files changed, 71 insertions(+) diff --git a/windows-release/stage-layout-pymanager.yml b/windows-release/stage-layout-pymanager.yml index d64748a3..df84a843 100644 --- a/windows-release/stage-layout-pymanager.yml +++ b/windows-release/stage-layout-pymanager.yml @@ -86,6 +86,28 @@ jobs: TclLibrary: tcltk_lib_arm64 LayoutOptions: '--preset-pymanager --include-freethreaded' IncludeDoc: true + win32_t_test: + Name: win32_t_test + BinArtifact: bin_win32_t + Arch: win32 + TclLibrary: tcltk_lib_win32 + LayoutOptions: '--preset-pymanager-test --include-freethreaded' + IncludeDoc: true + amd64_t_test: + Name: amd64_t_test + BinArtifact: bin_amd64_t + Arch: amd64 + TclLibrary: tcltk_lib_amd64 + LayoutOptions: '--preset-pymanager-test --include-freethreaded' + IncludeDoc: true + arm64_t_test: + Name: arm64_t_test + BinArtifact: bin_arm64_t + Arch: arm64 + HostArch: amd64 + TclLibrary: tcltk_lib_arm64 + LayoutOptions: '--preset-pymanager-test --include-freethreaded' + IncludeDoc: true ${{ if eq(parameters.DoEmbed, 'true') }}: win32_embed: Name: win32_embed @@ -105,6 +127,25 @@ jobs: Arch: arm64 HostArch: amd64 LayoutOptions: '--preset-embed --include-install-embed-json' + ${{ if eq(parameters.DoFreethreaded, 'true') }}: + win32_t_embed: + Name: win32_t_embed + BinArtifact: bin_win32_t + Arch: win32 + HostArch: win32 + LayoutOptions: '--preset-embed --include-install-embed-json --include-freethreaded' + amd64_t_embed: + Name: amd64_t_embed + BinArtifact: bin_amd64_t + Arch: amd64 + HostArch: amd64 + LayoutOptions: '--preset-embed --include-install-embed-json --include-freethreaded' + arm64_t_embed: + Name: arm64_t_embed + BinArtifact: bin_arm64_t + Arch: arm64 + HostArch: amd64 + LayoutOptions: '--preset-embed --include-install-embed-json --include-freethreaded' steps: - template: ./checkout.yml diff --git a/windows-release/stage-pack-pymanager.yml b/windows-release/stage-pack-pymanager.yml index 84fc6911..8da68d5f 100644 --- a/windows-release/stage-pack-pymanager.yml +++ b/windows-release/stage-pack-pymanager.yml @@ -16,12 +16,27 @@ parameters: freethreaded: true - name: arm64_t freethreaded: true + - name: win32_t_test + freethreaded: true + - name: amd64_t_test + freethreaded: true + - name: arm64_t_test + freethreaded: true - name: win32_embed embed: true - name: amd64_embed embed: true - name: arm64_embed embed: true + - name: win32_t_embed + embed: true + freethreaded: true + - name: amd64_t_embed + embed: true + freethreaded: true + - name: arm64_t_embed + embed: true + freethreaded: true jobs: - job: Pack_PyManager diff --git a/windows-release/stage-publish-pymanager.yml b/windows-release/stage-publish-pymanager.yml index f951b95f..c8fbe429 100644 --- a/windows-release/stage-publish-pymanager.yml +++ b/windows-release/stage-publish-pymanager.yml @@ -18,12 +18,27 @@ parameters: freethreaded: true - name: arm64_t freethreaded: true + - name: win32_t_test + freethreaded: true + - name: amd64_t_test + freethreaded: true + - name: arm64_t_test + freethreaded: true - name: win32_embed embed: true - name: amd64_embed embed: true - name: arm64_embed embed: true + - name: win32_t_embed + embed: true + freethreaded: true + - name: amd64_t_embed + embed: true + freethreaded: true + - name: arm64_t_embed + embed: true + freethreaded: true jobs: - job: Publish_PyManager From 1450bc3be1c4dfb45154e6b85b0f9c1b67f36cea Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Thu, 22 Oct 2026 17:03:29 +0100 Subject: [PATCH 2/4] Temporary hack to use fixed layout script --- windows-release/stage-layout-pymanager.yml | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/windows-release/stage-layout-pymanager.yml b/windows-release/stage-layout-pymanager.yml index df84a843..4a7d2ad6 100644 --- a/windows-release/stage-layout-pymanager.yml +++ b/windows-release/stage-layout-pymanager.yml @@ -159,11 +159,21 @@ jobs: --progress -v --depth 1 - --branch ${{ parameters.LayoutScriptBranch }} + --branch gh-159494 --single-branch - https://github.com/$(GitRemote)/cpython.git + https://github.com/zooba/cpython.git "$(Build.SourcesDirectory)\layout-script" - displayName: 'Clone PC/layout script from main' + displayName: 'HACK: Clone PC/layout script from dev branch' +# - powershell: > +# git clone +# --progress +# -v +# --depth 1 +# --branch ${{ parameters.LayoutScriptBranch }} +# --single-branch +# https://github.com/$(GitRemote)/cpython.git +# "$(Build.SourcesDirectory)\layout-script" +# displayName: 'Clone PC/layout script from main' - task: DownloadPipelineArtifact@2 displayName: 'Download artifact: $(BinArtifact)' From e6b8452634a874aa19ca7afc4d212f0dfee4a36d Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Thu, 22 Oct 2026 17:20:56 +0100 Subject: [PATCH 3/4] Revert "Temporary hack to use fixed layout script" This reverts commit 1450bc3be1c4dfb45154e6b85b0f9c1b67f36cea. --- windows-release/stage-layout-pymanager.yml | 16 +++------------- 1 file changed, 3 insertions(+), 13 deletions(-) diff --git a/windows-release/stage-layout-pymanager.yml b/windows-release/stage-layout-pymanager.yml index 4a7d2ad6..df84a843 100644 --- a/windows-release/stage-layout-pymanager.yml +++ b/windows-release/stage-layout-pymanager.yml @@ -159,21 +159,11 @@ jobs: --progress -v --depth 1 - --branch gh-159494 + --branch ${{ parameters.LayoutScriptBranch }} --single-branch - https://github.com/zooba/cpython.git + https://github.com/$(GitRemote)/cpython.git "$(Build.SourcesDirectory)\layout-script" - displayName: 'HACK: Clone PC/layout script from dev branch' -# - powershell: > -# git clone -# --progress -# -v -# --depth 1 -# --branch ${{ parameters.LayoutScriptBranch }} -# --single-branch -# https://github.com/$(GitRemote)/cpython.git -# "$(Build.SourcesDirectory)\layout-script" -# displayName: 'Clone PC/layout script from main' + displayName: 'Clone PC/layout script from main' - task: DownloadPipelineArtifact@2 displayName: 'Download artifact: $(BinArtifact)' From 1827bf3aedea1b835f128dd5200591fbbf95c6ac Mon Sep 17 00:00:00 2001 From: Steve Dower Date: Thu, 22 Oct 2026 17:55:55 +0100 Subject: [PATCH 4/4] Use GIL-enabled build for calculating layout --- windows-release/stage-layout-pymanager.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/windows-release/stage-layout-pymanager.yml b/windows-release/stage-layout-pymanager.yml index df84a843..0cf12726 100644 --- a/windows-release/stage-layout-pymanager.yml +++ b/windows-release/stage-layout-pymanager.yml @@ -90,6 +90,7 @@ jobs: Name: win32_t_test BinArtifact: bin_win32_t Arch: win32 + HostArch: win32 TclLibrary: tcltk_lib_win32 LayoutOptions: '--preset-pymanager-test --include-freethreaded' IncludeDoc: true @@ -97,6 +98,7 @@ jobs: Name: amd64_t_test BinArtifact: bin_amd64_t Arch: amd64 + HostArch: amd64 TclLibrary: tcltk_lib_amd64 LayoutOptions: '--preset-pymanager-test --include-freethreaded' IncludeDoc: true