Development
- For
- contributors
- Before you start
- a Reef checkout
- You will have
- a development environment with the checks that run in CI
Setup #
git submodule update --init --recursive
python -m venv .venv
source .venv/bin/activate
pip install -e ".[dev]" -e ./third_party/reef-client
pip install --no-deps --group runtime
pre-commit installThe runtime dependency group installs the reviewed training-runtime commit. Keep --no-deps in this command because GPU development uses the CUDA-compatible dependencies already installed in the container.
Package responsibilities #
-
The slime extra installs the Python-side dependencies used by reef/train/slime_backend/; the runtime dependency group pins the training runtime itself.
-
reef-client is a separate distribution maintained at Human-Agent-Society/reef-client. It implements Reef's wire protocol using only the standard library, does not import reef, and does not ship in the reef wheel. The harness in recipes/basic/ talks to Reef through it.
Package ownership and repository-level homes are in Codebase structure.
Run entry points as modules or scripts:
python -m reef.service.deploy --help
recipes/basic/run.shChecks #
pre-commit run --all-files
PYTHONPATH=.:third_party/reef-client uv run \
--with pytest \
--with aiohttp \
--with huggingface_hub \
pytest tests/reef_service -qKeep provider request bodies unchanged and preserve scenario isolation. A change to a public interface also needs a contract test.