Change version string format and add VendorInfo to help with issue triaging

* Change version string format as proposed by @moorereason

 1. shorten program name
 2. make version string semver compliant with +extended.
    The slash is not allowed in semver.
 3. Use key=value pairs for BuildDate etc.

* Add optional vendorInfo to version string

to help with issue triaging, e.g. VendorInfo=debian:0.80.0-7
This commit is contained in:
Anthony Fok 2021-02-16 08:08:24 -07:00 committed by GitHub
parent 3a5ee0d2d6
commit e8df097745
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 3 deletions

View file

@ -40,6 +40,9 @@ var (
// buildDate contains the date of the current build. // buildDate contains the date of the current build.
buildDate string buildDate string
// vendorInfo contains vendor notes about the current build.
vendorInfo string
) )
// Info contains information about the current Hugo environment // Info contains information about the current Hugo environment

View file

@ -127,14 +127,15 @@ func (v Version) NextPatchLevel(level int) Version {
// BuildVersionString creates a version string. This is what you see when // BuildVersionString creates a version string. This is what you see when
// running "hugo version". // running "hugo version".
func BuildVersionString() string { func BuildVersionString() string {
program := "Hugo Static Site Generator" // program := "Hugo Static Site Generator"
program := "hugo"
version := "v" + CurrentVersion.String() version := "v" + CurrentVersion.String()
if commitHash != "" { if commitHash != "" {
version += "-" + strings.ToUpper(commitHash) version += "-" + strings.ToUpper(commitHash)
} }
if IsExtended { if IsExtended {
version += "/extended" version += "+extended"
} }
osArch := runtime.GOOS + "/" + runtime.GOARCH osArch := runtime.GOOS + "/" + runtime.GOARCH
@ -144,7 +145,14 @@ func BuildVersionString() string {
date = "unknown" date = "unknown"
} }
return fmt.Sprintf("%s %s %s BuildDate: %s", program, version, osArch, date) versionString := fmt.Sprintf("%s %s %s BuildDate=%s",
program, version, osArch, date)
if vendorInfo != "" {
versionString += " VendorInfo=" + vendorInfo
}
return versionString
} }
func version(version float32, patchVersion int, suffix string) string { func version(version float32, patchVersion int, suffix string) string {