Contributing
Thanks for wanting to help! sillon is a monorepo hosted at github.com/balerat/sillon. First get a working dev environment by following the Development setup.
Workflow
- Claim an issue on GitHub and move it to In Progress.
- Branch off
developwith a descriptive name:bash git checkout -b feature/name_of_the_feature - Write code — see the Architecture for how the pieces fit together.
- Test from the repo root:
bash make test # or: pytest packages/*/tests packages/interface/*/tests - Open a Pull Request into
developonce tests pass.
⚠️ Never push directly to
main. All changes go through a PR intodevelopfirst.
Conventions
- Public APIs are documented with Google-style docstrings — the API reference and the internal reference are generated from them, so keep docstrings accurate when you change behavior.
- Add or update tests for any behavior change; the synthetic-project fixtures in
packages/interface/sillonlab/testsandpackages/interface/cli/testsare the easiest way to test engine/CLI behavior without a running server.