Golang CLI project template following best practices
- Cobra - Most popular CLI library, pairs well with Viper. Used in large open-source Golang projects (Terraform, Kubernetes, etc).
golangci-lint
- Most popular liniting tool, that combines several linters.- Makefile - Currently the most popular type of build system for Golang projects in open-source
- PromptUI - CLI library to provide rich interactive prompts.
- Viper - Most popular configuration library, pairs well with Cobra. Used in large open-source Golang projects (Terraform, Kubernetes, etc).
Some of these are due to Golang still being a relatively new language, and will onl
- Build system - There are several Golang-based build systems attempting to replace Makefiles. It's possible of them becomes the first-choice for building Golang projects instead of Makefiles.
- Debugging - There are plans to address as part of the language
- Dependency Management improvements
- Separation of development dependencies vs production dependencies
- Better way of installing development tools, like
golangci-lint
. The current way overwrites a locally installed version
- Git Hooks - Automatically run formatting + unit tests on commit, as they are fast in Golang