Welcome, and thanks for your interest in contributing to Berth! 🎉
We appreciate contributions of all kinds — code, documentation, bug reports, and ideas.
- Go
1.24+installed and in yourPATH makeinstalledgolangci-lintinstalled (optional for local linting)
git clone https://github.com/rluders/berth.git
cd berth
go mod tidymake testRuns all unit tests in the project using go test ./....
make buildCompiles the binary into the bin/ directory.
Berth uses golangci-lint in CI. You can run it locally with:
golangci-lint runTo install:
go install github.com/golangci/golangci-lint/cmd/golangci-lint@latest- Fork the repository and create a branch from
main - Make your changes
- Run tests and linters locally
- Push your branch and open a pull request
Please ensure that:
- Code is well-commented
- You’ve run
go mod tidyto keep dependencies clean - Lint passes:
golangci-lint run - Tests pass:
make test
Releases are automated using GoReleaser and GitHub Actions.
- Make sure all changes are merged into
main - Bump the version using semantic versioning, e.g.:
git tag v1.0.0
git push origin v1.0.0-
GitHub Actions will:
- Build the binaries for multiple platforms
- Generate checksums
- Create a GitHub Release with attached binaries
You can view release results in the Actions tab and under Releases in GitHub.
Open an issue or start a discussion. We’re happy to help!