Skip to content

Latest commit

 

History

History
50 lines (38 loc) · 2.08 KB

CONTRIBUTING.md

File metadata and controls

50 lines (38 loc) · 2.08 KB

Contributing

Contributions are licensed under the Apache License, Version 2.0, as section 5 of the license describes; there is no separate contributor agreement. Report security issues through the security policy, not a public issue.

Before you start

Bug fixes, tests and documentation corrections are welcome as pull requests. For changes to the exported API, trust boundaries, error policy or compatibility, open an issue first. Those decisions are recorded in docs/decisions and approved before implementation. The support matrix separates implemented behavior from deferred scope.

Development

Use Go 1.27 or later; the module keeps its go 1.27.0 baseline. Run these from the repository root before opening a pull request:

gofmt -l .
go vet ./...
go mod verify
go test -race ./...
sh scripts/check-consumer.sh
GOOS=linux GOARCH=arm64 CGO_ENABLED=0 go build ./...
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 go build ./...
git diff --check

gofmt -l . should print nothing. Tests use the standard testing package, local HTTP test servers and synthetic fixtures. Never commit real credentials, and do not call live AWS services from unit tests.

Style

Follow Effective Go and the Google Go style guide. Do not wrap code or prose at a fixed column. In Markdown and comments, put each sentence on its own line, and break after a semicolon between independent clauses.

Commits and pull requests

Pull requests are squash-merged, so the pull request title becomes the commit message. Write it as a Conventional Commit: feat:, fix:, docs:, refactor: and so on. Mark a breaking change with ! in the title, such as refactor!: rename X, so Release Please records it. Describe the resulting behavior, how you validated it and any limitations.

Release Please owns CHANGELOG.md, versions and tags; do not edit them by hand. AGENTS.md records the full working agreement used in this repository.