Skip to content

Use Namespace runners for applicable Windows builds - #1256

Open
zaniebot wants to merge 4 commits into
astral-sh:mainfrom
zaniebot:namespace-windows
Open

Use Namespace runners for applicable Windows builds#1256
zaniebot wants to merge 4 commits into
astral-sh:mainfrom
zaniebot:namespace-windows

Conversation

@zaniebot

@zaniebot zaniebot commented Sep 9, 2026

Copy link
Copy Markdown
Contributor

Windows distribution builds currently use Depot, while the pythonbuild crate runs on GitHub-hosted runners. Move the VS 2022 x86 and x86-64 distribution builds to the existing namespace-profile-windows-2022-x86-64-16x32 profile. Use the same runner lookup for crate builds, selecting Namespace for x86-64 and the native windows-11-arm runner for ARM64. ARM64 distributions and the x86-64 Python 3.15 builds that require VS 2026 continue to use their existing GitHub runners.

Five independent successful executions per workload and side compare 5b36002d with pinned main at 3fb62eb4. The x86-64 Build step is 10.6% faster; the i686 interval includes no change. Durations below are geometric means in m:ss; changes are relative to main, with unpaired Welch t 90% confidence intervals on log runtime.

Python 3.14 PGO workload Metric Main Namespace Runtime change (90% CI)
i686 Build 14:28 14:22 -0.6% (-12.9% to +13.4%)
i686 Whole job 16:59 15:57 -6.1% (-16.4% to +5.4%)
x86_64 Build 14:50 13:16 -10.6% (-15.2% to -5.7%)
x86_64 Whole job 17:23 14:23 -17.3% (-21.8% to -12.5%)

The comparison is depot-windows-2022-8 versus namespace-profile-windows-2022-x86-64-16x32, so it measures the provider, runner size, and image together. Both select Windows 2022/VS 2022, but neither provider records a precise OS-image release in the accepted job setup logs. The source differs only in runner selection. Whole-job timing excludes queue and dependency wait, and includes Generate attestations only on main. Cached pythonbuild crate builds are outside these CPython measurements.

Runtime samples

Each link gives the attempt number and Build/whole-job duration in m:ss. Untouched jobs copied into later partial reruns are counted once.

Workload Revision Samples
i686 Main a1: 14:27/16:54, a2: 14:32/16:59, a9: 14:29/17:07, a14: 14:21/16:49, a19: 14:29/17:06
i686 Namespace a1: 13:09/14:24, a2: 18:03/18:55, a4: 13:11/14:09, a6: 14:55/17:06, a8: 13:07/15:39
x86_64 Main a1: 14:41/17:04, a3: 14:46/17:22, a10: 14:57/17:31, a15: 14:57/17:37, a20: 14:49/17:22
x86_64 Namespace a1: 13:44/14:39, a3: 12:17/13:05, a5: 14:11/15:20, a7: 13:17/14:39, a9: 12:54/14:18

The failed i686 Cygwin download was retried and excluded from the runtime samples.

Use the established Windows Server 2022 profile for the x86 and x86-64 distribution builds and the x86-64 crate build.
@zanieb zanieb changed the title Use Namespace runners for Windows builds Use Namespace runners for applicable Windows builds Sep 10, 2026
@zanieb
zanieb marked this pull request as ready for review September 10, 2026 13:59
Comment thread ci-matrix.py Outdated
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants