Thank you for your interest in contributing to gnata! This document covers the process for contributing to this project.
- Fork the repository and clone your fork
- Create a feature branch from
main - Make your changes
- Run tests and linting (see below)
- Open a pull request
- Go 1.25.1 or later
- golangci-lint
go test ./...golangci-lint rungo test -bench=. -benchmem- Keep PRs focused on a single change
- Include tests for new functionality
- Ensure all existing tests pass
- Run the linter before submitting
Use clear, descriptive commit messages. Start with a short summary (under 50 characters), followed by a blank line and a more detailed description if needed.
All commits must be signed off to certify that you have the right to submit the contribution under the project's license. Add a sign-off line to your commits:
Signed-off-by: Your Name <your.email@example.com>
You can do this automatically with git commit -s.
This certifies that you agree to the Developer Certificate of Origin.
- Use GitHub Issues for bug reports and feature requests
- Include a minimal reproducing example for bugs
- Describe expected vs actual behavior
- Follow standard Go conventions (
gofmt,goimports) - Use descriptive variable names
- Keep functions focused and under 100 lines where practical
- Handle all errors explicitly
We welcome AI-assisted contributions. If you used AI tools (Copilot, Cursor, Claude, etc.) to generate substantial portions of your submission, please note this in your PR description.
Regardless of how code was produced, the contributor is responsible for its correctness, test coverage, and adherence to the project's style and quality standards. All contributions receive the same review process.
By contributing, you agree that your contributions will be licensed under the MIT License.