Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 3 additions & 4 deletions .claude/skills/building/SKILL.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,17 +23,16 @@ 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+,
# install a compatible version first: brew install python@3.12
python3.12 -m venv .executorch-venv # or python3.11, python3.10, python3.13
# Find a compatible Python (3.10–3.14).
python3.12 -m venv .executorch-venv # or python3.11, python3.10, python3.13, python3.14
source .executorch-venv/bin/activate
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.

Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-wheels-aarch64-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,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
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-wheels-linux.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,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
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-wheels-macos.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,7 +30,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
Expand Down
2 changes: 1 addition & 1 deletion .github/workflows/build-wheels-windows.yml
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,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
Expand Down
7 changes: 7 additions & 0 deletions CMakeLists.txt
Original file line number Diff line number Diff line change
Expand Up @@ -157,6 +157,13 @@ if(NOT PYTHON_EXECUTABLE)
endif()
announce_configured_options(PYTHON_EXECUTABLE)

# pybind11 >=3.0 uses find_package(Python) which looks for Python_EXECUTABLE,
# not the legacy PYTHON_EXECUTABLE variable. Bridge the two so pybind11 picks up
# the interpreter that setup.py (or the user) specified.
if(PYTHON_EXECUTABLE AND NOT Python_EXECUTABLE)
set(Python_EXECUTABLE "${PYTHON_EXECUTABLE}")
endif()

announce_configured_options(CMAKE_CXX_COMPILER_ID)
announce_configured_options(CMAKE_TOOLCHAIN_FILE)
announce_configured_options(BUILD_TESTING)
Expand Down
5 changes: 3 additions & 2 deletions pyproject.toml
Original file line number Diff line number Diff line change
Expand Up @@ -51,9 +51,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"

# Runtime dependencies are declared dynamically (see `dynamic` above) and
# computed in setup.py, so the EXECUTORCH_BUILD_MINIMAL wheel can ship a slimmer
Expand Down Expand Up @@ -143,7 +144,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
Expand Down
2 changes: 1 addition & 1 deletion requirements-lintrunner.txt
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ pycodestyle==2.11.1
torchfix==0.6.0

# UFMT
black==24.4.2
black==26.3.0
ufmt==2.8.0
usort==1.0.8.post1

Expand Down
4 changes: 2 additions & 2 deletions setup.py
Original file line number Diff line number Diff line change
Expand Up @@ -191,9 +191,9 @@ def _base_dependencies() -> List[str]:
# See also third-party/TARGETS for buck's typing-extensions version.
"typing-extensions>=4.10.0",
# Keep this version in sync with: ./backends/apple/coreml/scripts/install_requirements.sh
"coremltools==9.0; platform_system == 'Darwin' or platform_system == 'Linux'",
"coremltools==9.0; (platform_system == 'Darwin' or platform_system == 'Linux') and python_version < '3.14'",
# scikit-learn is used to support palettization in the coreml backend.
"scikit-learn==1.7.1",
"scikit-learn>=1.7.1",
"hydra-core>=1.3.0",
"omegaconf>=2.3.0",
]
Expand Down
Loading