Skip to content

Latest commit

 

History

History
43 lines (33 loc) · 1.46 KB

File metadata and controls

43 lines (33 loc) · 1.46 KB

Contributing to efferent

Thanks for your interest! Contributions of all kinds are welcome — bug reports, robot backends, importers for training frameworks, doctor checks, and docs.

Development setup

git clone https://github.com/Eximius-Labs/efferent.git
cd efferent
python -m venv .venv && source .venv/bin/activate   # .venv\Scripts\activate on Windows
pip install -e .[dev]

Before opening a PR

ruff check src tests        # lint
ruff format --check src tests
pytest                      # full suite must pass
  • Add or extend a test for every behavior change. The test suite plants deliberate bugs (permuted joint orders, dead obs terms, spawn mistakes) and asserts they are caught — new failure modes you fix should get the same treatment.
  • Keep the safety invariants: descriptor limits are authoritative, binding is by name, and a startup validation failure must never be downgraded to a warning.

Adding a robot backend

Implement the 5-method ABI in efferent/backends/ (see mock.py for the minimal shape, mujoco_backend.py for a full one) and register it under the efferent.backends entry-point group — vendor backends can live in separate pip packages (efferent-<vendor>). Please include a sim-to-sim or dry-run validation script under examples/.

Reporting bugs

Include the output of efferent doctor <your policy> and, if the issue is a runtime behavior, the manifest + descriptor pair (redact what you must).