You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
## What
Forward-ports the **Python 3.15 / 3.15t** binary-validation enablement
developed on `release/2.13` to `main`, so `main` also validates 3.15.
Scoped as:
- **torch only** (no torchvision -- no 3.15 torchvision wheels yet),
- **Linux x86 + aarch64** only,
- the **nightly and test** channels,
- **opt-in**, so the shared generator default is unchanged for everyone
else.
Extracted from release/2.13 commits #8214, #8216, #8222, #8227, #8230,
#8239 -- **excluding the release-only bits**: the `pytorch/pytorch`
checkout stays `ref: main` here (release/2.13 pinned it to `ref:
release/2.13` for the cuDNN-version smoke check; that fix is not
applicable to main).
## Changes
**`tools/scripts/generate_binary_build_matrix.py`**
- New `PREVIEW_PYTHON_ARCHES_DICT` (`3.15`/`3.15t` on the **nightly and
test** channels; release excluded) and `TORCH_ONLY_PYTHON_ARCHES`.
`PYTHON_ARCHES_DICT` default is **unchanged**, so
torchvision/torchaudio, Windows and macOS matrices are byte-for-byte
identical.
- `generate_wheels_matrix` appends preview versions only when
`include_preview_python_versions` is enabled **and** `os in (linux,
linux-aarch64)`.
- `get_wheel_install_command` emits `pip3 install torch ...` (no
torchvision) for the preview versions.
- New `--include-preview-python-versions` flag /
`INCLUDE_PREVIEW_PYTHON_VERSIONS` env.
**`.github/workflows/generate_binary_build_matrix.yml`** -- new
`include-preview-python-versions` input (default `disable`).
**`validate-linux-binaries.yml` /
`validate-aarch64-linux-binaries.yml`** -- set
`include-preview-python-versions: enable` (the only change; `ref: main`
untouched).
**`.github/scripts/validate_binaries.sh`**
- `get_python_config`: 3.15/3.15t conda-forge cases (`python_dev` +
`python_rc` labels).
- Provision **CPython 3.15.0b1** (`3.15.0b1+freethreaded` for 3.15t) via
**uv** instead of conda for 3.15/3.15t: the cp315 wheels are built
against 3.15.0b1 while conda-forge only ships 3.15.0a8, whose
pre-release ABI differs and segfaults on `import torch`.
- Force `TORCH_ONLY` for 3.15/3.15t (guarded with `:-` for the libtorch
path).
- Skip the `torch.compile` smoke check on 3.15+ (unsupported there).
## Blast radius
- torchvision / torchaudio, Windows / macOS torch validation, release
channel: **unaffected** (default unchanged; preview versions stripped
off-channel / off-OS; release excluded).
- Only torch **Linux x86 + aarch64** validation on the **nightly and
test** channels gains 3.15/3.15t.
## Test plan
- `python3 -m unittest tools.tests.test_generate_binary_build_matrix` --
**12 tests pass** (7 existing + 5 preview: opt-in adds 3.15/3.15t on
linux & linux-aarch64 for nightly **and** test; off by default; excluded
on windows/macos even when opted in; excluded on the release channel;
torch-only install).
- `bash -n .github/scripts/validate_binaries.sh` passes.
- Verified generation delta: `--channel nightly`/`--channel test`
`--operating-system linux` gains exactly `3.15`/`3.15t` only with
`--include-preview-python-versions enable`; `--channel release` never
does.
## Note
`black 25.11.0` locally wants to collapse one pre-existing wrapped line
(`whl_install_command` for winarm64) that this PR does not touch; left
as-is to match `main`'s current (lint-passing) formatting -- it's a
black-version skew, not a change here.
0 commit comments