From a7c37ad7c5c12fcac1d5589271e0e66af4f086e8 Mon Sep 17 00:00:00 2001 From: Justin Hawkins Date: Sat, 3 May 2025 12:14:59 +0930 Subject: [PATCH] Fixup version handling --- version/version.go | 24 +++++++++++++++++++----- web/templates/info.html | 2 +- 2 files changed, 20 insertions(+), 6 deletions(-) diff --git a/version/version.go b/version/version.go index d35f5e5..8b719b8 100644 --- a/version/version.go +++ b/version/version.go @@ -3,6 +3,7 @@ package version import ( "context" "fmt" + "log" "strings" "sync" @@ -10,7 +11,7 @@ import ( "golang.org/x/mod/semver" ) -var version string +var version string // populated by goreleaser, without leading 'v' var commit string var date string @@ -18,7 +19,7 @@ var VersionInfo Info func init() { VersionInfo.Remote.Valid = false - VersionInfo.Local.Version = version + VersionInfo.Local.Version = "v" + version } type Info struct { @@ -39,10 +40,23 @@ func (vi *Info) UpgradeAvailable() bool { if !vi.Remote.Valid { return false } - if semver.Compare(vi.Local.Version, vi.Remote.Tag) < 0 { - return true + + log.Printf("checking if upgrade available - local %s remote %s", vi.Local.Version, vi.Remote.Tag) + localValid := semver.IsValid(vi.Local.Version) + remoteValid := semver.IsValid(vi.Remote.Tag) + + if !localValid { + log.Printf("version %s invalid", vi.Local.Version) } - return false + if !remoteValid { + log.Printf("version %s invalid", vi.Remote.Tag) + } + + if !localValid || !remoteValid { + return false + } + + return semver.Compare(vi.Local.Version, vi.Remote.Tag) < 0 } func (vi *Info) UpdateVersionInfo() { diff --git a/web/templates/info.html b/web/templates/info.html index a9634a5..5518807 100644 --- a/web/templates/info.html +++ b/web/templates/info.html @@ -26,7 +26,7 @@ {{ version.Remote.Tag }} - (you have {{ version.Local.Tag }}). + (you have {{ version.Local.Version }}).

{{ markdown version.UpgradeReleaseNotes }}