Guide for contributors working on the Python simulation core and the editor JavaScript tests.

Python simulation (farm/)

Most development happens in the Python package under farm/.

python -m venv venv
source venv/bin/activate  # Windows: venv\Scripts\activate
pip install -r requirements.txt
pip install -e .
pytest

See CONTRIBUTING and AGENTS for branching, linting, and layout.

Editor / JavaScript (farm/editor/)

farm/editor/ currently contains a Jest suite only (npm test). There is no Vite dev server or Electron app checked in yet.

cd farm/editor
npm ci   # or npm install
npm test -- --runInBand

CI runs the same under the js-ui job (Node 20).

Planned Configuration Explorer

The sections below describe the intended Configuration Explorer product. These are design specs, not runnable steps in this repository today.

When a full web or Electron app lands in-tree, its package.json will own scripts such as dev, build, and electron:dev.

Intended workflow (future UI)

  • Configuration Explorer: sections, validation, editing
  • Comparison mode: load another configuration, diff, selective apply
  • Templates: save, list, apply, delete presets
  • History: undo/redo and history save/load

Contributing

  • Python: follow CONTRIBUTING; run pytest and ruff check ..
  • Editor JS: add or update Jest tests under farm/editor/ and keep them passing under Node 20.