From 0572f27df923bccc99add26d0dd25ec658401821 Mon Sep 17 00:00:00 2001 From: Daniel Ari Friedman Date: Mon, 31 Aug 2026 18:56:59 -0700 Subject: [PATCH] fix(env): pin Python 3.12 via .python-version so cold uv run installs succeed - uv defaulted to CPython 3.14, where spacy 3.8.14 has no wheel: every documented command failed at install time for a cold-landing agent. - Document the pin rationale in docs/environment.md. - Verified after rebuild: start-curriculum --help, start-validate-outputs --check (687 outputs, 0 invalid), start-regenerate-offline, full pytest suite green. --- .python-version | 1 + docs/environment.md | 5 ++++- 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 .python-version diff --git a/.python-version b/.python-version new file mode 100644 index 0000000..e4fba21 --- /dev/null +++ b/.python-version @@ -0,0 +1 @@ +3.12 diff --git a/docs/environment.md b/docs/environment.md index 8b24d00..f4fd92e 100644 --- a/docs/environment.md +++ b/docs/environment.md @@ -2,7 +2,10 @@ START supports Python 3.10, 3.11, and 3.12. Use the locked `uv` environment for local commands, CI, and documentation builds so dependency resolution does -not vary between surfaces. +not vary between surfaces. The repo pins the interpreter with +[`.python-version`](../.python-version) (`3.12`) because key dependencies (e.g. +`spacy`) publish no wheel for newer CPythons; without the pin a cold `uv run` +on a 3.14-default machine fails at install time. ```bash uv sync --all-extras --dev