Phase 1 — Environment
Goal: a checkout that can actually run a job.
Prerequisites (confirm before anything else)
uvinstalled (uv --version). Deps are pinned throughuv, including the exact Harbor git rev — do notpip installaround it.- Docker running (
docker info). Every task runs in a local Docker sandbox; Harbor also builds/pulls task images. No Docker → nothing runs. - Python ≥ 3.12 (
python3 --version).uv syncprovisions the interpreter, but a system Python below 3.12 will bite you in ad-hocpython3 -m ...calls.
Steps
uv sync— installs all deps incl. the pinned Harbor rev. Re-run after any pull that touchespyproject.toml/uv.lock.- Ensure
.envexists:cp .env.example .envif missing. Leave the values empty for now — which env-var names you need isn't known until the model is configured (Phase 2), and the names are driven by the model YAML, not a fixed list..env.exampleis documentation, not a required-var checklist. - Ensure the dataset(s) are downloaded (Phase 0, see
00-datasets.md). A fresh checkout has an emptydatasets/; the run can't proceed without the subset the job targets.
Common failure modes
uv: command not found→ install uv first (https://docs.astral.sh/uv/), then re-run.Cannot connect to the Docker daemon→ Docker isn't running / no permission. Start Docker; on Linux confirm the user is in thedockergroup.- Harbor import / version errors after a pull → stale env; re-run
uv sync. - Everything below assumes
uv run ...— running barepython3uses the wrong interpreter/env. Alwaysuv run ./scripts/run.sh ....
Guardrail
Do not edit anything outside configs/ and .env during setup. Dataset and task files are read-only inputs, downloaded from HuggingFace (Phase 0) rather than tracked in git.