CONTRIBUTING

Contributing to Gratheon

Thank you for your interest in contributing to Gratheon! We welcome
contributions from the community.

Contributor License Agreement (CLA)

Before we can accept your contributions, we require that you sign our
Contributor License Agreement (CLA). This is a standard practice for open
source projects and helps us maintain clear ownership and licensing of the code.

Why do we need a CLA?

Gratheon uses a dual-licensing model:

  • AGPL v3 for open source use
  • Commercial License for enterprise customers

The CLA gives us the rights to:

  1. Include your contribution in both the open source and commercial versions
  2. Relicense your contribution under different terms if needed
  3. Protect the project from legal issues

Important: You retain ownership of your contribution and can use it
however you like. The CLA just gives us permission to use it too.

How to sign the CLA

We use CLA Assistant to streamline the CLA process:

  1. First-time contributors: When you submit your first pull request, the
    CLA Assistant bot will automatically comment and ask you to sign the CLA.

  2. Click the link in the bot's comment to review and sign the CLA.

  3. Sign digitally using your GitHub account (takes ~2 minutes).

  4. That's it! Once signed, you can contribute to any Gratheon repository.

Alternatively, you can:

For Corporate Contributors

If you're contributing as part of your job, your employer needs to sign the
Corporate CLA. Please have your legal department review and sign the
Corporate CLA.

Code of Conduct

Be respectful and constructive in all interactions. We follow standard open
source community guidelines.

How to Contribute

Reporting Issues

  • Check if the issue already exists
  • Use issue templates if available
  • Provide clear reproduction steps
  • Include relevant environment details

Submitting Pull Requests

  1. Fork the repository
  2. Create a branch for your feature/fix
  3. Make your changes following our coding standards:
    • Clean, readable code
    • No unnecessary comments (code should be self-documenting)
    • Follow existing code style
    • Add tests if applicable
  4. Test your changes thoroughly
  5. Submit a pull request with:
    • Clear description of changes
    • Link to related issue if applicable
    • Screenshots/examples if relevant

Coding Standards

  • Write clean, maintainable code
  • Follow existing patterns in the codebase
  • No TODO comments (create issues instead)
  • For Go: add t.Parallel() to independent tests
  • For Go: use // ARRANGE // ACT // ASSERT in tests
  • Use human-readable test names

Development Setup

See the README.md in each repository for specific setup instructions.

Questions?

  • Open an issue for bugs or feature requests
  • Email pilot@gratheon.com for CLA or commercial licensing questions

License

By contributing to Gratheon, you agree that your contributions will be licensed
under the same dual-license structure:

  • AGPL v3 for open source use
  • Available for commercial licensing to enterprise customers

See the LICENSE-AGPL and LICENSE-COMMERCIAL files for details.


Thank you for contributing to Gratheon! 🐝