A Go build wrapper that simplifies embedding version information into binaries using git metadata and version files.
govvv is a command-line tool that wraps the `go build` command to automatically inject version information into Go binaries. It eliminates the complexity of manually managing `-ldflags` by extracting details from git repositories and version files, making it easier to track application builds.
Go developers who need to embed version metadata (like git commit, branch, and build date) into their compiled binaries without manually handling linker flags.
Developers choose govvv because it simplifies and automates version injection, reducing boilerplate and potential errors in build processes, while preserving existing `-ldflags` arguments and offering non-invasive integration options.
"go build" wrapper to add version info to Golang applications
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Extracts git commit, branch, state, and summary automatically, eliminating the need for manual -ldflags configuration as shown in the README's variable table.
Reads version strings from a ./VERSION file or via command-line arguments, providing a straightforward way to manage application versions without code changes.
Offers -print and -flags arguments to generate ldflags without wrapping go build, allowing seamless integration into existing build workflows without dependency on the tool.
Preserves existing -ldflags arguments while appending its own generated flags, ensuring compatibility with custom build configurations as demonstrated in the README examples.
Explicitly marked as deprecated in the README, with the maintainer recommending migration to Go's native build info, indicating no future updates or support.
Requires installing and managing govvv separately, adding overhead compared to using Go's built-in features, which can complicate CI/CD pipelines.
Heavily relies on git for version metadata extraction, making it unsuitable for projects using other version control systems or those without version control.