Thanks for your interest in contributing to cli.
git clone https://github.com/bjaus/cli.git
cd cliRequires Go 1.24+ and golangci-lint.
make check # lint + test (the full CI check)
make lint # linters only
make test # tests with race detector + coverage report
make cover # coverage summary- Every exported symbol needs a doc comment.
- Tests go in
_test.gofiles using testify. Usetestpackage(packagecli_test) for public API tests,internal_test.go(packagecli) for internals. - All tests must call
t.Parallel(). - Maintain 100% statement coverage. Run
make testto verify. - Linter must pass with zero issues. Run
make lintto verify. - Keep the interface-per-file philosophy: small interfaces, each doing one thing.
- Fork the repo and create a branch from
main. - Add tests for any new functionality.
- Run
make checkand ensure it passes. - Open a pull request with a clear description of the change.