Contributing
Selu is an open-source project and contributions are welcome. Whether you’re fixing a typo in the docs, building a new capability, or working on the orchestrator core, this guide will help you get started.
Ways to contribute
Section titled “Ways to contribute”- Bug reports — Found something broken? Open an issue on GitHub with steps to reproduce.
- Feature requests — Have an idea? Start a discussion in the GitHub Discussions tab.
- Documentation — Improvements to these docs are always appreciated. The source lives in the
docs/directory. - Capabilities — Build and publish new capabilities to the marketplace.
- Core contributions — Work on the orchestrator, CLI, or agent runtime.
Getting started
Section titled “Getting started”-
Fork and clone the repository:
Terminal window git clone https://github.com/<your-username>/selu.gitcd selu -
Install dependencies. You need Go 1.22+, Node.js 20+, Docker, and
buffor protobuf generation:Terminal window make setup -
Run the test suite to make sure everything works:
Terminal window make test -
Create a branch for your change:
Terminal window git checkout -b feat/my-new-feature -
Make your changes, then run linting and tests:
Terminal window make lint && make test -
Open a pull request against the
mainbranch with a clear description of what you changed and why.
Code style
Section titled “Code style”- Go — Follow the standard Go conventions. Run
gofmtandgolangci-lint. - TypeScript — Follow the project ESLint and Prettier configs. Run
npm run lint. - Protobuf — Use
buf lintto validate.protofiles. - Commits — Use Conventional Commits (
feat:,fix:,docs:,chore:, etc.).
Pull request guidelines
Section titled “Pull request guidelines”- Keep PRs focused. One logical change per PR.
- Include tests for new functionality.
- Update documentation if your change affects user-facing behavior.
- All CI checks must pass before a PR is merged.
- A maintainer will review your PR, typically within a few business days.
Contributor License Agreement
Section titled “Contributor License Agreement”By opening a pull request, you agree that your contributions are licensed under the same license as the project (Apache-2.0). No separate CLA signing is required.
Code of conduct
Section titled “Code of conduct”All participants in the Selu community are expected to follow our Code of Conduct. Be respectful, constructive, and welcoming.