Skip to content

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.

  • 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.
  1. Fork and clone the repository:

    Terminal window
    git clone https://github.com/<your-username>/selu.git
    cd selu
  2. Install dependencies. You need Go 1.22+, Node.js 20+, Docker, and buf for protobuf generation:

    Terminal window
    make setup
  3. Run the test suite to make sure everything works:

    Terminal window
    make test
  4. Create a branch for your change:

    Terminal window
    git checkout -b feat/my-new-feature
  5. Make your changes, then run linting and tests:

    Terminal window
    make lint && make test
  6. Open a pull request against the main branch with a clear description of what you changed and why.

  • Go — Follow the standard Go conventions. Run gofmt and golangci-lint.
  • TypeScript — Follow the project ESLint and Prettier configs. Run npm run lint.
  • Protobuf — Use buf lint to validate .proto files.
  • Commits — Use Conventional Commits (feat:, fix:, docs:, chore:, etc.).
  • 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.

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.

All participants in the Selu community are expected to follow our Code of Conduct. Be respectful, constructive, and welcoming.