Package version provides a home for metadata about the program, how it's running, what it's name is, and so forth. It should not depend upon any non-stdlib packages, so that it's safe for import anywhere in the project.
const Program = "dummyapp"
Program is our idea of the persistent name of the program, for use where we don't want to use argv. It's exported so that this doesn't have to be repeated. Customize this if copying this code for use elsewhere!
BuildTime is potentially set at link-time. It should be used to record the timestamp (date+time) of the build.
CurrentVersion provides the single-string derivation of what we consider our current version to be. It might be derived from multiple pieces of information, whatever we think makes sense. It probably fits on one line.
PrintTo is used to write multiple whole lines of version information to an io.Writer. Contrast with LogPairs.
A LogPair is a simple Key,Value pair of strings, suitable for using in structured logging as one item.
LogPairs returns a slice of items suitable for logging. It's roughly equivalent to PrintTo, but it's the caller's responsibility to iterate the slice and add each pair to the logging call.