build: add support for python 3.14#19254
Conversation
🔗 Helpful Links🧪 See artifacts and rendered test results at hud.pytorch.org/pr/pytorch/executorch/19254
Note: Links to docs will display an error until the docs builds have been completed.
|
This PR needs a
|
There was a problem hiding this comment.
Pull request overview
This PR updates ExecuTorch’s packaging metadata, documentation, and CI matrices to recognize/support Python 3.14 (issue #16750), primarily by widening the declared supported Python range and running CI/wheel builds against 3.14.
Changes:
- Expand supported Python range in packaging metadata (
requires-python, classifiers) and formatting config (Black target versions). - Update multiple docs/READMEs to advertise Python 3.14 support.
- Add Python 3.14 to GitHub Actions test and wheel build matrices.
Reviewed changes
Copilot reviewed 15 out of 15 changed files in this pull request and generated 2 comments.
Show a summary per file
| File | Description |
|---|---|
pyproject.toml |
Add Python 3.14 classifier; widen requires-python to <3.15; include py314 for Black. |
docs/source/using-executorch-building-from-source.md |
Update documented supported Python range to 3.10–3.14. |
docs/source/raspberry_pi_llama_tutorial.md |
Update prerequisite Python range and version-check guidance to 3.10–3.14. |
docs/source/quick-start-section.md |
Update prerequisite Python range to 3.10–3.14. |
docs/source/pathway-quickstart.md |
Update virtualenv Python range guidance to 3.10–3.14. |
docs/source/pathway-beginner.md |
Update prerequisites to 3.10–3.14. |
docs/source/getting-started.md |
Update system requirements to 3.10–3.14. |
README-wheel.md |
Update supported Python versions list to include 3.14. |
.github/workflows/pull.yml |
Add 3.14 to the test-qnn-wheel-packages-linux matrix. |
.github/workflows/build-wheels-windows.yml |
Add 3.14 to wheel build matrix. |
.github/workflows/build-wheels-macos.yml |
Add 3.14 to wheel build matrix. |
.github/workflows/build-wheels-linux.yml |
Add 3.14 to wheel build matrix. |
.github/workflows/build-wheels-aarch64-linux.yml |
Add 3.14 to wheel build matrix. |
.claude/skills/building/SKILL.md |
Update Python version guidance to include 3.14. |
.ci/scripts/test_coreml_bc.sh |
Update comment about Python compatibility for backward-compat CoreML test script. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| fail-fast: false | ||
| matrix: | ||
| python-version: [ "3.10", "3.11", "3.12", "3.13" ] | ||
| python-version: [ "3.10", "3.11", "3.12", "3.13", "3.14" ] |
There was a problem hiding this comment.
The QNN wheel test job now runs on Python 3.14, but the repo’s QNN backend rules document that Python 3.13+ (NumPy 2.x) is incompatible with the PyQnnManagerAdaptor pybind11 layer and breaks QNN compilation. Unless that constraint has been lifted, consider excluding 3.14 from this QNN-specific matrix (or pinning the job to Python 3.12 + numpy<2.0 / updating the QNN pybind layer) so CI doesn’t add a known-failing configuration.
| python-version: [ "3.10", "3.11", "3.12", "3.13", "3.14" ] | |
| python-version: [ "3.10", "3.11", "3.12" ] |
| # Find a compatible Python (3.10–3.14). On macOS with only Homebrew Python 3.14+, | ||
| # install a compatible version first: brew install python@3.12 | ||
| python3.12 -m venv .executorch-venv # or python3.11, python3.10, python3.13 | ||
| python3.12 -m venv .executorch-venv # or python3.11, python3.10, python3.13, python3.14 |
There was a problem hiding this comment.
This note is internally inconsistent now: it says Python 3.10–3.14 is compatible, but then implies Homebrew Python 3.14+ is incompatible and suggests installing 3.12. Please update the example to match the supported range (e.g., only suggest installing an older Python if the user has 3.15+), so readers aren’t told to downgrade unnecessarily.
Summary
Fixes #16750
While scanning my docker images for CVE's there are several that are being found due to python 3.13
Pytorch and vllm support python 3.14, but I'm unable to upgrade until Executorch supports 3.14 as well.
Test plan
I added 3.14 to CI for it to run all the tests