Thanks for your interest in contributing! This repo aims for small, focused changes with clear intent and good ergonomics for reviewers.
- Install pre-commit and enable hooks:
pre-commit install - Build and test locally:
make build test - Keep PRs small and scoped. Include rationale in the description.
- Prefer simple, composable packages under
internal/. - Keep the CLI thin; most logic should live in services and packages.
- Avoid global state; pass dependencies via constructors (see
internal/wire). - Write small functions with clear inputs/outputs and error returns.
- Use
go fmtandgo vet(seemake fmt vet). - Favor early returns and explicit errors.
- Add godoc comments for exported types/functions.
- Conventional commits style is welcome but not required.
- Reference issues where possible.
- Avoid mixing refactors with functional changes.
- Unit tests for non-trivial logic are encouraged.
- CLI behavior should be exercised via package-level functions, not only
cobra.Command.
- Do not log secrets or tokens. Use redaction helpers where necessary.
- Prefer prepared statements and parameterized queries for DB code.
- The
mainbranch should remain buildable. - Tag releases with semantic versions when the project matures.
Thank you for helping improve GinkGo!