Skip to content

Fix Python 3.15 CUDA and Windows wheel builds - #23932

Merged
JacobSzwejbka merged 4 commits into
mainfrom
fix/python315-cuda-windows-wheels
Oct 17, 2026
Merged

JacobSzwejbka merged 4 commits into
mainfrom
fix/python315-cuda-windows-wheels

Conversation

@JacobSzwejbka

@JacobSzwejbka JacobSzwejbka commented Oct 16, 2026 •

Copy link
Copy Markdown
Contributor

Summary

Combine the remaining Python 3.15 CUDA and Windows wheel fixes, including the Windows tokenizer changes previously proposed in #23940.

CUDA 13.2 installs request torchaudio 2.11.0, which has no Python 3.15 wheel. Select the available 2.11.1 release for Python 3.15. Preserve the CUDA 13.4 package selection and source-pinned installs.

Move the PyPI extra index setting from the CPU Linux environment script into the shared wheel pre-build hook. Export it for the hook and persist it through GITHUB_ENV so later CUDA Linux and Windows smoke installs can resolve dependencies such as expecttest while using PyTorch's index. Preserve existing extra indices.

PyPI has no cp315 Windows pytorch-tokenizers wheel, so pip falls back to an older source distribution whose isolated build cannot find the compiler in the smoke shell. Install the pinned tokenizer source through the existing Visual Studio environment helper with build isolation disabled. Copy it to a short temporary directory to keep CMake compiler probes below the Windows path limit. Dereference submodule symlinks during the copy because MSYS cannot recreate them on every Windows runner, and remove the copy after installation.

This provisions the tokenizer dependency for CI. PyPI still needs an upstream cp315 Windows tokenizer wheel for installation without building that dependency from source.

Validation

The 13 installer regression tests pass on Python 3.14 and 3.15. Lintrunner, bash syntax validation, and git diff checks pass. A source-copy check confirms that the two symlinks which failed on Windows CUDA become regular files with identical contents. Earlier checks verified torchaudio wheel availability and metadata, preservation of extra indices through the hook, and actual pip resolution of expecttest against the PyTorch indices with PyPI enabled.

The earlier full Python 3.15 wheel builds and smoke tests passed for Linux x86_64 CUDA 13.2 and 13.4 (https://github.com/pytorch/executorch/actions/runs/38936913096), Linux aarch64 CUDA 13.2 and 13.4 (https://github.com/pytorch/executorch/actions/runs/38936920119), and Windows CPU (https://github.com/pytorch/executorch/actions/runs/38961222041). Both Windows CUDA configurations then failed copying submodule symlinks before compilation (https://github.com/pytorch/executorch/actions/runs/38964126110); this combined revision includes the copy fix.

Fresh validation of the combined revision is running for all seven configurations. Windows CPU: https://github.com/pytorch/executorch/actions/runs/38968122117. Windows CUDA 13.2 and 13.4: https://github.com/pytorch/executorch/actions/runs/38968126439. Linux x86_64 CUDA 13.2 and 13.4: https://github.com/pytorch/executorch/actions/runs/38968132148. Linux aarch64 CUDA 13.2 and 13.4: https://github.com/pytorch/executorch/actions/runs/38968137580. These are pending results, not passes.

The validation branch has identical source fixes and temporarily restricts the wheel matrix and its guard to Python 3.15. It omits additional Windows CUDA program export jobs while retaining the wheel build and smoke suite. Those validation-only edits are not included in this PR.

Authored with OpenAI Codex.

Use the available torchaudio 2.11.1 release for Python 3.15 CUDA 13.2 installs. Persist the PyPI extra index from the shared wheel pre-build hook so CUDA and Windows smoke installs can resolve runtime dependencies.

Authored with OpenAI Codex.
@pytorch-bot

pytorch-bot Bot commented Oct 16, 2026 •

Copy link
Copy Markdown

🔗 Helpful Links

🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/23932

Note: Links to docs will display an error until the docs builds have been completed.

✅ No Failures

As of commit f8bd186 with merge base cbcc5ef (image):
💚 Looks good so far! There are no failures yet. 💚

This comment was automatically generated by Dr. CI and updates every 15 minutes.

@meta-cla meta-cla Bot added the CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed. label Oct 16, 2026
@github-actions

Copy link
Copy Markdown

This PR needs a release notes: label

If your change should be included in the release notes (i.e. would users of this library care about this change?), please use a label starting with release notes:. This helps us keep track and include your important work in the next release notes.

To add a label, you can comment to pytorchbot, for example
@pytorchbot label "release notes: none"

For more information, see
https://github.com/pytorch/pytorch/wiki/PyTorch-AutoLabel-Bot#why-categorize-for-release-notes-and-how-does-it-work.

No cp315 Windows pytorch-tokenizers wheel is published, so pip falls back to the old 1.0.1 source distribution in the plain smoke shell and cannot identify ClangCL. Build the pinned source first through the Visual Studio environment helper using the already installed build dependencies.

Authored with OpenAI Codex.
Build the pinned tokenizer source from a temporary short path. MSBuild file tracking in CMake compiler probes fails on the nested source build path even inside the Visual Studio environment.

Authored with OpenAI Codex.
@JacobSzwejbka JacobSzwejbka changed the title Fix remaining Python 3.15 CUDA and Windows wheel dependencies Fix Python 3.15 CUDA and Windows wheel builds Oct 16, 2026
@JacobSzwejbka
JacobSzwejbka merged commit 596a5a8 into main Oct 17, 2026
417 checks passed
@JacobSzwejbka
JacobSzwejbka deleted the fix/python315-cuda-windows-wheels branch October 17, 2026 00:13

This branch was successfully deployed

1 active deployment
cadence — f8bd1868 Deployed Oct 16, 2026 by JacobSzwejbka via hifi-op-test / hifi4 #33902
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

CLA Signed This label is managed by the Facebook bot. Authors need to sign the CLA before a PR can be reviewed.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants