-
Notifications
You must be signed in to change notification settings - Fork 0
Contributing
make check # fmt, vet, lint and test โ everything CI runs
make test # tests with the race detector and -shuffle=on
make cover # coverage profile and HTML report
make bench # benchmarks
make fuzz # every fuzz target
make lint # golangci-lint
make help # list all targetsBefore opening a PR: gofmt, go vet ./... and make test must be clean, and
new behavior needs tests. Follow
Conventional Commits.
-
No dependencies. The module deliberately has none, and CI fails if
go.sumever appears. Anything needed goes in the repository or ininternal/. -
Tests must not depend on order. CI runs
go test -shuffle=on; do not share mutable state between tests. -
Document exported identifiers.
reviveenforces this. - Data changes need a source. See Data sources.
Build, vet and test on Go 1.22โ1.26 on Linux, plus macOS and Windows on the newest; a gofmt gate and golangci-lint; a 20-second run of every fuzz target; a container build with a smoke test; and govulncheck.
Push a semantic-version tag:
git tag v1.2.3
git push origin v1.2.3The release workflow tests, builds the CLI for six platforms with checksums, publishes the GitHub release and the container image, and warms the Go module proxy so the version appears on pkg.go.dev.
Third-party actions are pinned to commit SHAs and kept current by Renovate and Dependabot.
Report security issues privately to the maintainers โ do not open a public issue. See SECURITY.md.
Packages
Project