diff --git a/.ci/scripts/test_coreml_bc.sh b/.ci/scripts/test_coreml_bc.sh index ac379481ea5..ec708f75bd7 100644 --- a/.ci/scripts/test_coreml_bc.sh +++ b/.ci/scripts/test_coreml_bc.sh @@ -21,7 +21,7 @@ REPO_ROOT="${1:-$(pwd)}" source "${REPO_ROOT}/.ci/scripts/utils.sh" # Create a conda environment with Python 3.10 for compatibility with old ET versions -# ET 1.0.0 only supports Python >=3.10,<3.13 +# ET 1.0.0 only supports Python >=3.10,<3.15 CONDA_ENV_NAME="coreml_bc_test_env" conda create -y -n "${CONDA_ENV_NAME}" python=3.10 diff --git a/.claude/skills/building/SKILL.md b/.claude/skills/building/SKILL.md index d1322cdecae..5469b1ce365 100644 --- a/.claude/skills/building/SKILL.md +++ b/.claude/skills/building/SKILL.md @@ -23,9 +23,9 @@ conda activate executorch **Path B — no conda (fall back to venv):** ```bash -# Find a compatible Python (3.10–3.13). On macOS with only Homebrew Python 3.14+, +# 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 source .executorch-venv/bin/activate pip install --upgrade pip ``` @@ -33,7 +33,7 @@ pip install --upgrade pip **Then verify (either path):** Run `python --version` and `cmake --version`. Fix automatically: -- **Python not 3.10–3.13**: recreate the env with a correct Python version. +- **Python not 3.10–3.14**: recreate the env with a correct Python version. - **cmake missing or < 3.24**: run `pip install 'cmake>=3.24'` inside the env. - **cmake >= 4.0**: works in practice, no action needed. diff --git a/.github/workflows/build-wheels-aarch64-linux.yml b/.github/workflows/build-wheels-aarch64-linux.yml index b8729058ec8..d38f738b551 100644 --- a/.github/workflows/build-wheels-aarch64-linux.yml +++ b/.github/workflows/build-wheels-aarch64-linux.yml @@ -32,7 +32,7 @@ jobs: test-infra-ref: main with-cuda: disabled with-rocm: disabled - python-versions: '["3.10", "3.11", "3.12", "3.13"]' + python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]' build: needs: generate-matrix diff --git a/.github/workflows/build-wheels-linux.yml b/.github/workflows/build-wheels-linux.yml index a149c4f5df0..bd43055fa38 100644 --- a/.github/workflows/build-wheels-linux.yml +++ b/.github/workflows/build-wheels-linux.yml @@ -32,7 +32,7 @@ jobs: test-infra-ref: main with-cuda: disabled with-rocm: disabled - python-versions: '["3.10", "3.11", "3.12", "3.13"]' + python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]' build: needs: generate-matrix diff --git a/.github/workflows/build-wheels-macos.yml b/.github/workflows/build-wheels-macos.yml index 16da31ddd6d..f5c6c6b083e 100644 --- a/.github/workflows/build-wheels-macos.yml +++ b/.github/workflows/build-wheels-macos.yml @@ -32,7 +32,7 @@ jobs: test-infra-ref: main with-cuda: disabled with-rocm: disabled - python-versions: '["3.10", "3.11", "3.12", "3.13"]' + python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]' build: needs: generate-matrix diff --git a/.github/workflows/build-wheels-windows.yml b/.github/workflows/build-wheels-windows.yml index f4ded5dc3de..e25cb2d157d 100644 --- a/.github/workflows/build-wheels-windows.yml +++ b/.github/workflows/build-wheels-windows.yml @@ -35,7 +35,7 @@ jobs: test-infra-ref: main with-cuda: disabled with-rocm: disabled - python-versions: '["3.10", "3.11", "3.12", "3.13"]' + python-versions: '["3.10", "3.11", "3.12", "3.13", "3.14"]' build: needs: generate-matrix diff --git a/.github/workflows/pull.yml b/.github/workflows/pull.yml index 6a4439b4254..6d314bca392 100644 --- a/.github/workflows/pull.yml +++ b/.github/workflows/pull.yml @@ -24,7 +24,7 @@ jobs: strategy: 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" ] with: runner: linux.2xlarge docker-image: ci-image:executorch-ubuntu-22.04-qnn-sdk diff --git a/README-wheel.md b/README-wheel.md index 69def2c31e1..8b8ee71a20a 100644 --- a/README-wheel.md +++ b/README-wheel.md @@ -5,7 +5,7 @@ ExecuTorch is to enable wider customization and deployment capabilities of the PyTorch programs. The `executorch` pip package is in beta. -* Supported python versions: 3.10, 3.11, 3.12, 3.13 +* Supported python versions: 3.10, 3.11, 3.12, 3.13, 3.14 * Compatible systems: Linux x86_64, Linux aarch64, macOS aarch64 The prebuilt `executorch.runtime` module included in this package provides a way diff --git a/docs/source/getting-started.md b/docs/source/getting-started.md index 43036cc0e8d..1dabbaf212c 100644 --- a/docs/source/getting-started.md +++ b/docs/source/getting-started.md @@ -8,7 +8,7 @@ This section is intended to describe the necessary steps to take a PyTorch model ## System Requirements The following are required to install the ExecuTorch host libraries, needed to export models and run from Python. Requirements for target end-user devices are backend dependent. See the appropriate backend documentation for more information. -- Python 3.10 - 3.13 +- Python 3.10 - 3.14 - g++ version 7 or higher, clang++ version 5 or higher, or another C++17-compatible toolchain. - Linux (x86_64 or ARM64), macOS (ARM64), or Windows (x86_64). - Intel-based macOS systems require building PyTorch from source (see [Building From Source](using-executorch-building-from-source.md) for instructions). diff --git a/docs/source/pathway-beginner.md b/docs/source/pathway-beginner.md index 264dff4dca1..910f70301a8 100644 --- a/docs/source/pathway-beginner.md +++ b/docs/source/pathway-beginner.md @@ -65,7 +65,7 @@ Install ExecuTorch and verify your setup before attempting to export a model. Install the ExecuTorch Python package, export a MobileNet V2 model using XNNPACK, and run your first inference. This is the canonical entry point for all new users. -**Difficulty:** Beginner | **Prerequisites:** Python 3.10–3.13, PyTorch, g++7+ or clang5+ +**Difficulty:** Beginner | **Prerequisites:** Python 3.10–3.14, PyTorch, g++7+ or clang5+ ::: :::: diff --git a/docs/source/pathway-quickstart.md b/docs/source/pathway-quickstart.md index 9272a6161ec..2282e331764 100644 --- a/docs/source/pathway-quickstart.md +++ b/docs/source/pathway-quickstart.md @@ -66,7 +66,7 @@ Follow the {doc}`llm/llama` guide for the complete Llama export and deployment w ## The 5-Minute Setup -If you have not yet installed ExecuTorch, run the following in a Python 3.10–3.13 virtual environment: +If you have not yet installed ExecuTorch, run the following in a Python 3.10–3.14 virtual environment: ```bash pip install executorch diff --git a/docs/source/quick-start-section.md b/docs/source/quick-start-section.md index 625eaeb9c20..92b0af4ac05 100644 --- a/docs/source/quick-start-section.md +++ b/docs/source/quick-start-section.md @@ -52,7 +52,7 @@ Follow these guides in order to get started with ExecuTorch: ## Prerequisites -- Python 3.10–3.13 +- Python 3.10–3.14 - PyTorch 2.9+ - Basic familiarity with PyTorch model development diff --git a/docs/source/raspberry_pi_llama_tutorial.md b/docs/source/raspberry_pi_llama_tutorial.md index 1e886db694a..7ade0828ce7 100644 --- a/docs/source/raspberry_pi_llama_tutorial.md +++ b/docs/source/raspberry_pi_llama_tutorial.md @@ -4,7 +4,7 @@ This tutorial demonstrates how to deploy **Llama models on Raspberry Pi 4/5 devices** using ExecuTorch: -- **Prerequisites**: Linux host machine, Python 3.10-3.13, conda environment, Raspberry Pi 4/5 +- **Prerequisites**: Linux host machine, Python 3.10-3.14, conda environment, Raspberry Pi 4/5 - **Setup**: Automated cross-compilation using `setup.sh` script for ARM toolchain installation - **Export**: Convert Llama models to optimized `.pte` format with quantization options - **Deploy**: Transfer binaries to Raspberry Pi and configure runtime libraries @@ -19,7 +19,7 @@ This tutorial demonstrates how to deploy **Llama models on Raspberry Pi 4/5 devi **Software Dependencies**: -- **Python 3.10-3.13** (ExecuTorch requirement) +- **Python 3.10-3.14** (ExecuTorch requirement) - **conda** or **venv** for environment management - **CMake 3.29.6+** - **Git** for repository cloning @@ -42,7 +42,7 @@ uname -s # Should output: Linux uname -m # Should output: x86_64 # Check Python version -python3 --version # Should be 3.10-3.13 +python3 --version # Should be 3.10-3.14 # Check required tools hash cmake git md5sum 2>/dev/null || echo "Missing required tools" diff --git a/docs/source/using-executorch-building-from-source.md b/docs/source/using-executorch-building-from-source.md index 7ca8cdd6352..f5722d5b1ec 100644 --- a/docs/source/using-executorch-building-from-source.md +++ b/docs/source/using-executorch-building-from-source.md @@ -28,7 +28,7 @@ ExecuTorch is tested on the following systems, although it should also work in s - Otherwise, Python's built-in virtual environment manager `python venv` is a good alternative. * `g++` version 7 or higher, `clang++` version 5 or higher, or another C++17-compatible toolchain. -* `python` version 3.10-3.13 +* `python` version 3.10-3.14 * `ccache` (optional) - A compiler cache that speeds up recompilation * **macOS** - `Xcode Command Line Tools` diff --git a/pyproject.toml b/pyproject.toml index 8e1b2e874bb..59cff0009b2 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -48,9 +48,10 @@ classifiers = [ "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Programming Language :: Python :: 3.13", + "Programming Language :: Python :: 3.14", ] -requires-python = ">=3.10,<3.14" +requires-python = ">=3.10,<3.15" dependencies=[ "expecttest", "flatbuffers", @@ -151,7 +152,7 @@ first_party_detection = false # Emit syntax compatible with older versions of python instead of only the range # specified by `requires-python`. TODO: Remove this once we support these older # versions of python and can expand the `requires-python` range. -target-version = ["py38", "py39", "py310", "py311", "py312", "py313"] +target-version = ["py38", "py39", "py310", "py311", "py312", "py313", "py314"] [tool.docformatter] black = true