Thanks for your interest. A few ground rules:
Every contributor must accept the Contributor License Agreement. The cla-assistant.io bot will prompt you on your first PR — accept it once and you're cleared for all future PRs to this repo.
The CLA grants etherfunlab the right to relicense your contribution. This is required because eros-engine is dual-licensed: AGPL-3.0 for the public, and a separate commercial license for users who can't comply with AGPL terms.
git clone https://github.com/etherfunlab/eros-engine
cd eros-engine
docker compose -f docker/docker-compose.yml up -d postgres
cargo test --workspaceThe HTTP surface is checked in CI against a committed snapshot to catch handlers or schemas added without #[utoipa::path] / ToSchema wiring. If you add, remove, or change any /comp/* (or /healthz) route or any request/response struct, regenerate the snapshot:
cargo run -p eros-engine-server -- print-openapi > crates/eros-engine-server/openapi.jsonCommit the updated openapi.json alongside the change. The CI job openapi-snapshot fails fast on drift.
- CLA accepted via cla-assistant.io
-
cargo fmt --all -
cargo clippy --workspace --all-targets -- -D warnings -
cargo test --workspace - If the HTTP surface changed:
cargo run -p eros-engine-server -- print-openapi > crates/eros-engine-server/openapi.json - New behavior has tests
- DCO sign-off on every commit (
git commit -s)