Thank you for your interest in contributing to the Experiment Orchestration System!
- Python 3.11+
- uv
- Node.js and npm (for the web UI)
- Docker and Docker Compose (for PostgreSQL and SeaweedFS)
git clone https://github.com/UNC-Robotics/eos
cd eos
uv venv
source .venv/bin/activate
uv syncStart the external services:
cp .env.example .env # Edit and provide values
docker compose up -dcd web_ui
cp .env.example .env # Edit and provide values
npm installeos start # Start the orchestrator
eos ui # Start the EOS UI (separate terminal)
eos ui --dev # Start the EOS UI dev serverWe use Ruff for linting and formatting.
eos_lint # Check for lint issues
eos_format # Auto-format codecd web_ui
npm run lint # ESLint
npm run lint:fix # ESLint with auto-fix
npm run format # Prettiereos_test # Run all tests with coverage
eos_test -m "not slow" # Skip slow testsDocumentation is built with Sphinx:
eos_docs_build # Build locally
eos_docs_serve # Serve locally- Fork the repository and create a branch from
master - Make your changes
- Ensure
eos_lintandeos_testpass - Submit a pull request against
master
By contributing, you agree that your contributions will be licensed under the BSD 3-Clause License.