Repository navigation
fix: extend Python support through 3.13 - #135
Conversation
There was a problem hiding this comment.
🔵 Needs a closer look
Runtime compatibility on Python 3.12/3.13 (notably numba/torch/motrixsim native deps) is deferred to the new CI matrix and unverified locally, so a human should confirm CI results before approval.
No open issues 🎉
What changed in this PR
This PR widens the supported Python range for MotrixLab from 3.10–3.11 to 3.10–3.13. It is a workspace-wide, mechanical metadata/tooling change: it bumps the requires-python upper bound on the remaining workspace packages, broadens the install.sh --python validation, expands the CI matrix to all four interpreters, and aligns the English/Chinese documentation, contributor guidance, and release verification notes. The long-standing exception — that the Unitree hardware deployment plugin and the full --all install remain Python 3.10 only — is preserved everywhere.
Changes:
- Raise
requires-pythonfrom>=3.10,<3.12to>=3.10,<3.14across the remaining workspace packages. - Accept
3.12/3.13ininstall.sh --python, generalize the--allguard to reject any explicit non-3.10 interpreter, and expand the CI test matrix to Python 3.10–3.13 while omitting Unitree on non-3.10 jobs. - Update README/CONTRIBUTING/AGENTS and the installation/release docs to describe the 3.10–3.13 range.
| File | Description |
|---|---|
*/pyproject.toml (11 packages) |
Raise requires-python upper bound to <3.14 for workspace members. |
install.sh |
Accept 3.12/3.13; generalize the --all guard to any non-3.10 explicit interpreter. |
.github/workflows/tests.yml |
Expand matrix to 3.10–3.13; use matrix.python for sync and the non-3.10 Unitree ignore. |
.github/workflows/README.md, .github/workflows/RELEASE.md |
Describe the expanded matrix and 3.10–3.13 clean-install verification. |
README.md, README.zh-CN.md |
Update the Python badge and requirement tables to 3.10–3.13. |
CONTRIBUTING.md, AGENTS.md |
Update contributor/dev-environment Python guidance to 3.10–3.13. |
docs/.../getting_started/installation.md (en + zh) |
Align install instructions, option table, and the requires-python example/caveat. |
motrixlab/README.md |
Update the install note to "Use Python 3.10–3.13". |
Review effort: Balanced
Summary
requires-pythonranges from>=3.10,<3.12to>=3.10,<3.14and regenerateuv.lock.install.sh, preserving the Python 3.10-only restriction for Unitree hardware deployment and--all.Validation
Passed locally:
uv lockanduv lock --check.uv sync --locked --dry-run --python <3.12|3.13> --extra cuda --no-default-groups.uv sync --locked --dry-run --python <3.12|3.13> --extra cuda --extra rslrl --extra skrl-jax --extra tbb --group test.sh -n install.shand one-off mocked installer checks: all four interpreter choices are forwarded to uv;--allaccepts 3.10 and rejects 3.11–3.13 before side effects; invalid/missing Python choices are rejected.prek run --all-filesandgit diff --check.The dry runs validate dependency/install plans only: actual Python 3.12/3.13 installation, runtime tests, GPU training, and hardware execution have not been performed locally. The expanded CI matrix will provide runtime test results. Documentation HTML builds could not run because Sphinx is not installed in the local environment.
CI cost
PR/push test jobs increase from 4 to 8 (four Python versions × fast/Numba); scheduled/manual full-suite jobs increase from 2 to 4. Existing suite selections and Unitree's Python 3.10 boundary are preserved.