3.14: Windows on Arm build fails since windows-11-arm migrated to windows-11-vs2026-arm
メンテナーはふだん 1 日以内に返信
@chris-eibl がすでに取り組んでいます。
2026年9月27日 から。
評価
- 難易度
- 2/5
- 見積もり時間
- 1〜3時間
- 初心者へのやさしさ
- 78/100
- issue の種類
- バグ
- 明瞭さ
- 明確に書かれている
- 活発さ
- 活発
- 技術スタック
- github-actions, python
- 領域
- build-system, ci-cd
調査の方向性
.github/workflows/reusable-windows.yml から始めて、arm64 ジョブが MSBuild を選択する方法を確認します。その後、build.bat と PCbuild/pcbuild.proj を確認し、PreferredToolArchitecture と PlatformToolset の相互作用を調べます。影響を受ける Windows Arm64 CI ビルドを実行し、_freeze_module がネイティブツールチェーンで正常にコンパイルされることを確認します。
索引モデルが issue の本文から書いたものです。
説明
The Windows Arm64 jobs in the CI recently started failing on 3.14 (for example). Noted by @StanFromIreland in https://github.com/python/cpython/pull/158188#issuecomment-5837953982: the _freeze_module
https://github.com/python/cpython/blob/9def455ebd4017dfbfcf1377137bb949ff2e29c1/PCbuild/pcbuild.proj#L20-L21
can no longer be compiled for PreferredToolArchitecture=x86 and PlatformToolset=v143:
The build tools for Visual Studio 2022 (Platform Toolset = 'v143') cannot be found.
PreferredToolArchitecture=x86 is chosen, because we use the x86 version of msbuild in CI:
"C:\Program Files\Microsoft Visual Studio\18\Enterprise\MSBuild\Current\Bin\msbuild.exe"
which is chosen by build.bat if no MSBUILD environment variable is set and msbuild is not in the path. [^1]
Compiling the _freeze_module for arm64 on an arm64 host by just using the arm64 version of msbuild would solve this, by e.g. just adding
env:
MSBUILD: ${{ inputs.arch == 'arm64' && 'C:\Program Files\Microsoft Visual Studio\18\Enterprise\MSBuild\Current\Bin\arm64\msbuild.exe' || '' }}
to
https://github.com/python/cpython/blob/e16b12bb982bc916664850da1d0a78109b2145b8/.github/workflows/reusable-windows.yml#L38-L40
because then PreferredToolArchitecture=arm64 and also the arm64 version of the compiler is chosen.
I think running the _freeze_module natively on an arm64 host is anyway the better fit?
[^1]: noticed already in https://github.com/python/cpython/issues/153668#issuecomment-5304195008
- 主要言語
- Python
- スター
- 77.2k
- フォーク
- 36k
- 平均マージ
- 1日 14時間
- マージ済み PR(30日)
- 608
環境構築
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
python/cpython のほかの issue
-
extension-modules topic-socket type-bug
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
python/cpython#158285 · コメント 4 件 ·
メンテナーはふだん 1 日以内に返信
-
stdlib type-bug
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
メンテナーはふだん 1 日以内に返信
-
docs pending
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
python/cpython#157339 · コメント 10 件 ·
メンテナーはふだん 1 日以内に返信
-
stdlib type-feature
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
python/cpython#155601 · コメント 2 件 ·
メンテナーはふだん 1 日以内に返信
-
stdlib type-feature
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
python/cpython#153771 · コメント 5 件 ·
メンテナーはふだん 1 日以内に返信
似ている issue
-
namespace operations
難易度 1/5 1時間未満 初心者へのやさしさ 82/100
EclipseFdn/open-vsx.org#13573 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
collective/icalendar#1854 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
rancher/rancher-ai-agent#412 ·
メンテナーはふだん 6 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 84/100
TUDelftGeodesy/DePSI#134 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 88/100
HenriquesLab/rxiv-maker#335 ·