fix: prepare Tend preview 2

Publish the reviewed version identity fix and mark preview 1 withdrawn.\n\nPrivate-Source-Commit: 9907afdfa18099ac488fe4011291ea454036435a\nPrivate-Source-Tree: 3a5e666dd6a0c69a07f7804612c8e3dc3474966a\nHimesan-Output-Permission: v1.0\nAI-Assistance: OpenAI Codex assisted implementation and review.

Signed-off-by: Cole Speelman <crspeelman@gmail.com>
This commit is contained in:
2026-08-14 14:19:01 -04:00
parent b68fa2487d
commit b2cc4482f6
6 changed files with 123 additions and 3 deletions
+74 -1
View File
@@ -2,8 +2,81 @@
package version
import (
"regexp"
"runtime/debug"
"strings"
)
const developmentVersion = "v0.1.0-dev"
var (
Version = "v0.1.0-dev"
Version = developmentVersion
Commit = "unknown"
Date = "unknown"
)
var (
taggedVersionPattern = regexp.MustCompile(`^v(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)\.(?:0|[1-9][0-9]*)(?:-([0-9A-Za-z-]+(?:\.[0-9A-Za-z-]+)*))?$`)
pseudoVersionSuffixPattern = regexp.MustCompile(`(?:^|[.-])(?:0\.)?[0-9]{14}-[0-9a-f]{12,}$`)
)
func init() {
information, ok := debug.ReadBuildInfo()
if !ok {
return
}
Version = selectVersion(Version, information.Main.Version)
for _, setting := range information.Settings {
switch setting.Key {
case "vcs.revision":
if Commit == "unknown" && setting.Value != "" {
Commit = setting.Value
}
case "vcs.time":
if Date == "unknown" && setting.Value != "" {
Date = setting.Value
}
}
}
}
func selectVersion(linkerValue, moduleVersion string) string {
if linkerValue != developmentVersion {
return linkerValue
}
moduleVersion = strings.TrimSpace(moduleVersion)
if !isTaggedVersion(moduleVersion) {
return linkerValue
}
return moduleVersion
}
func isTaggedVersion(value string) bool {
matches := taggedVersionPattern.FindStringSubmatch(value)
if matches == nil {
return false
}
prerelease := matches[1]
if pseudoVersionSuffixPattern.MatchString(prerelease) {
return false
}
for _, identifier := range strings.Split(prerelease, ".") {
if len(identifier) > 1 && identifier[0] == '0' && allDecimal(identifier) {
return false
}
}
return true
}
func allDecimal(value string) bool {
if value == "" {
return false
}
for _, character := range value {
if character < '0' || character > '9' {
return false
}
}
return true
}
+33
View File
@@ -0,0 +1,33 @@
// SPDX-License-Identifier: AGPL-3.0-only
package version
import "testing"
func TestSelectVersion(t *testing.T) {
t.Parallel()
tests := []struct {
name, linker, module, want string
}{
{"local build", developmentVersion, "(devel)", developmentVersion},
{"missing build info", developmentVersion, "", developmentVersion},
{"preview one install", developmentVersion, "v0.1.0-preview.1", "v0.1.0-preview.1"},
{"preview two install", developmentVersion, "v0.1.0-preview.2", "v0.1.0-preview.2"},
{"release install", developmentVersion, "v1.0.0", "v1.0.0"},
{"linker override", "v0.1.0-preview.2", "(devel)", "v0.1.0-preview.2"},
{"pseudo version", developmentVersion, "v0.0.0-20260814120000-0123456789ab", developmentVersion},
{"pseudo after release", developmentVersion, "v0.1.1-0.20260814120000-0123456789ab", developmentVersion},
{"build metadata", developmentVersion, "v0.1.0+dirty", developmentVersion},
{"leading zero release", developmentVersion, "v00.1.0", developmentVersion},
{"leading zero prerelease", developmentVersion, "v0.1.0-preview.02", developmentVersion},
}
for _, test := range tests {
test := test
t.Run(test.name, func(t *testing.T) {
t.Parallel()
if got := selectVersion(test.linker, test.module); got != test.want {
t.Fatalf("selectVersion(%q, %q)=%q want %q", test.linker, test.module, got, test.want)
}
})
}
}