Prerequisites
- Docker
make(pre-installed on macOS and most Linux distributions)- Mint CLI, only if you plan to preview documentation changes
buf, mockery, golangci-lint, openssl) runs inside a Docker image built by the Makefile. No additional local installs are required.
Before you start
- Read the Architecture Document to understand the codebase
- Check existing issues and discussions
- Follow Conventional Commits for commit messages
How to contribute
- Fork the repository
- Create a branch for your change
- Make your changes; ensure tests pass:
make test - Document user-facing changes in
changelogs/unreleased.md - Commit with a conventional commit message
- Open a pull request to the
mainbranch - For a bug fix or a new feature, leave a working sample in the
playgroundpackage per its instructions
Changelog entries
User-facing changes are documented inchangelogs/unreleased.md, updated in the same
pull request as the code change. Entries are grouped under the headings that apply (Features, Fixes, Performance,
Behavior Changes, Deprecations, Documentation); keep only the headings you actually use.
Contributor License Agreement
Every contributor must sign the CLA before a pull request can be merged. It only needs to be done once and covers all your future contributions. On your first pull request the CLA Assistant bot comments with a signing link: click it, authenticate with GitHub, and confirm. The pull request cannot be merged until the CLA check passes.Previewing documentation
Documentation lives underdocs/ and is built with Mintlify. To preview changes locally:
Key documents
- CONTRIBUTING.md: the canonical contribution guide in the repository
- Development Setup: Clone, build, run tests
- Testing Strategy: TestKit, mocks, integration tests
- Extending GoAkt: Adding discovery, mailboxes, extensions