A Cookiecutter for my Go projects.
Features:
- Configured linter (using golangci).
- Development dependency handling (using bingo).
- Build and release automation (using goreleaser).
- Benchmarks (using benchstat and benchdiff).
- Makefile with help, format, lint, test, bench, and build targets.
Optional features:
- use_gh_actions: Enable to create GitHub Actions.
- use_vscode: Enable to create VS Code launch and container config.
- use_kong: Enable to add Kong command-line parser.
- use_gokit_log: Enable to add go-kit/log logger.
- Run
cookiecutter
to create a new project. - Run
go mod tidy
to add indirect dependencies and generatego.sum
.
- More sensible linter configuration.
- Version handling (waiting on Go 1.18).
- Optional Prometheus collector.
Please feel free to submit issues and/or PRs with fixes or updates. However, note that this repo represents my personal standards and opinions. I will not accept anything that I don't agree with or that I think I will not personally use, even if it's an optional feature.
This is purely to make this Cookiecutter no more complex than I personally need it to be.
If you would like to contribute something that you're not sure about or think might be divisive, please just ask about it in an issue and we can talk about it. Or, if you want it just for yourself, fork the repo and do whatever you'd like!
Some inspiration & snippets were taken from the following projects: