Commit a4ba360
authored
Enable Python 3.15 / 3.15t by default in the binary build matrix (#8427)
## What
Promotes **Python 3.15 / 3.15t** from opt-in preview to the **default**
binary
build matrix, on **all operating systems**, for the **nightly** and
**test**
channels. Follow-up to #8241, which added them as opt-in.
- `3.15`, `3.15t` added to `PYTHON_ARCHES_DICT["nightly"]` and
`["test"]`
- `PREVIEW_PYTHON_ARCHES_DICT` deleted
- the `INCLUDE_PREVIEW_PYTHON_VERSIONS` env var, the
`--include-preview-python-versions` CLI flag, the
`include-preview-python-versions` reusable-workflow input, and the
`include_preview_python_versions` parameter threaded through
`generate_build_matrix` / `generate_wheels_matrix` /
`generate_libtorch_matrix`
are all removed
- the two `include-preview-python-versions: enable` call sites in
`validate-linux-binaries.yml` and `validate-aarch64-linux-binaries.yml`
are
dropped, since the behaviour is now the default
**`release` deliberately keeps 3.15 out.** 3.15 is still a CPython
pre-release
(wheels are built against 3.15.0b4), so it must not land in the release
matrix or
on the getting-started page until it ships final. This is the one
channel that
still differs, and it is now the only reason `PYTHON_ARCHES_DICT` has an
asymmetric entry.
Resulting default python versions per OS/channel:
| os | nightly / test | release |
|---|---|---|
| linux | +3.15, +3.15t | unchanged |
| linux-aarch64 | +3.15, +3.15t | unchanged |
| windows | +3.15, +3.15t | unchanged |
| macos-arm64 | +3.15, +3.15t | unchanged |
| windows-arm64 | unchanged (pins its own `3.11/3.12/3.13` list) |
unchanged |
`TORCH_ONLY_PYTHON_ARCHES` is untouched, so 3.15 install commands stay
torch-only (no torchvision wheels for 3.15 yet).
## Reviewer notes — three things worth a look
1. **Removing the reusable-workflow input is breaking for any external
caller.**
Passing an undefined input to a reusable workflow is a hard error in
GitHub
Actions. `grep` finds only the two in-repo call sites (both removed
here), and
the input is ~1 month old, so downstream repos are unlikely to reference
it —
but if any do, they break on merge. Happy to keep it as an
accepted-but-ignored
input for a deprecation window instead.
2. **No macOS point-version pin was added for 3.15, on purpose.**
`MACOS_PYTHON_POINT_VERSIONS` has no `3.15` entry, so macOS falls
through
`.get(python_version, python_version)` to plain `3.15` / `3.15t` — the
same
treatment `3.13` and `3.14t` already get. This is required for
correctness:
that value feeds `conda create "python=${PYTHON_VERSION}"` in
`setup-binary-builds`, whose `case` arms match on exactly `3.15)` /
`3.15t)` to
swap in `3.15.0b4` plus the `conda-forge/label/python_dev` +
`python_rc` channels. A `3.15.0b1`-style pin here would miss those arms
and the
solve would fail.
3. **Windows 3.15 and the openssl pin.** `setup-binary-builds` clears
`OPENSSL_PIN` for 3.15 because the beta requires `openssl>=3.5.7`, and
the
old comment justified that with "3.15 is Linux-only". That is no longer
true,
so Windows 3.15 builds are now exposed to the openssl 3.5.7 ASN.1
regression
at smoke-test time (pytorch/pytorch#186846). I updated the comment to
say so
rather than silently leave a stale rationale; the pin cannot simply be
re-applied because 3.5.6 is unsatisfiable for the 3.15 beta.
## Test plan
- `python -m tools.tests.test_generate_binary_build_matrix` — **11
passed**
- Reference assets regenerated via `--update-reference-files` (7 asset
files;
the bulk of the diff)
- Tests rewritten from opt-in semantics to default-on:
- `test_python_3_15_enabled_by_default` — asserts 3.15/3.15t present for
nightly and test across linux, linux-aarch64, windows, macos-arm64
- `test_python_3_15_excluded_on_release_channel` — asserts absent on
release
for all four
- `test_python_3_15_excluded_on_windows_arm64` — guards the hardcoded
list
- Spot-checked the generator directly for every os × channel
combination, and
confirmed macOS emits `3.15` / `3.15t` with torch-only install commands.
Co-authored-by: Andrey Talman <atalman@users.noreply.github.com>1 parent 6996e8f commit a4ba360
13 files changed
Lines changed: 3083 additions & 86 deletions
File tree
- .github
- actions/setup-binary-builds
- workflows
- tools
- scripts
- tests
- assets
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
151 | 151 | | |
152 | 152 | | |
153 | 153 | | |
154 | | - | |
155 | | - | |
156 | | - | |
| 154 | + | |
| 155 | + | |
| 156 | + | |
| 157 | + | |
157 | 158 | | |
158 | 159 | | |
159 | 160 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
52 | 52 | | |
53 | 53 | | |
54 | 54 | | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | 55 | | |
61 | 56 | | |
62 | 57 | | |
| |||
102 | 97 | | |
103 | 98 | | |
104 | 99 | | |
105 | | - | |
106 | 100 | | |
107 | 101 | | |
108 | 102 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
99 | 99 | | |
100 | 100 | | |
101 | 101 | | |
102 | | - | |
103 | | - | |
104 | 102 | | |
105 | 103 | | |
106 | 104 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
108 | 108 | | |
109 | 109 | | |
110 | 110 | | |
111 | | - | |
112 | | - | |
113 | 111 | | |
114 | 112 | | |
115 | 113 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
24 | 28 | | |
25 | | - | |
26 | | - | |
| 29 | + | |
| 30 | + | |
27 | 31 | | |
28 | 32 | | |
29 | 33 | | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | 34 | | |
41 | 35 | | |
42 | 36 | | |
| |||
350 | 344 | | |
351 | 345 | | |
352 | 346 | | |
353 | | - | |
354 | 347 | | |
355 | | - | |
356 | 348 | | |
357 | 349 | | |
358 | 350 | | |
| |||
444 | 436 | | |
445 | 437 | | |
446 | 438 | | |
447 | | - | |
448 | 439 | | |
449 | 440 | | |
450 | 441 | | |
| |||
454 | 445 | | |
455 | 446 | | |
456 | 447 | | |
457 | | - | |
458 | | - | |
459 | | - | |
460 | | - | |
461 | | - | |
462 | | - | |
463 | | - | |
464 | | - | |
465 | | - | |
466 | | - | |
467 | | - | |
468 | 448 | | |
469 | 449 | | |
470 | 450 | | |
| |||
564 | 544 | | |
565 | 545 | | |
566 | 546 | | |
567 | | - | |
568 | 547 | | |
569 | 548 | | |
570 | 549 | | |
| |||
594 | 573 | | |
595 | 574 | | |
596 | 575 | | |
597 | | - | |
598 | | - | |
599 | 576 | | |
600 | 577 | | |
601 | 578 | | |
| |||
697 | 674 | | |
698 | 675 | | |
699 | 676 | | |
700 | | - | |
701 | | - | |
702 | | - | |
703 | | - | |
704 | | - | |
705 | | - | |
706 | | - | |
707 | | - | |
708 | | - | |
709 | 677 | | |
710 | 678 | | |
711 | 679 | | |
| |||
729 | 697 | | |
730 | 698 | | |
731 | 699 | | |
732 | | - | |
733 | 700 | | |
734 | 701 | | |
735 | 702 | | |
| |||
Large diffs are not rendered by default.
0 commit comments