diff --git a/internal/upgrade/upgrade_common.go b/internal/upgrade/upgrade_common.go index 6dffe160..bcbe283c 100644 --- a/internal/upgrade/upgrade_common.go +++ b/internal/upgrade/upgrade_common.go @@ -153,6 +153,10 @@ func CompareVersions(a, b string) int { // Split a version into parts. // "1.2.3-beta.2" -> []int{1, 2, 3}, []interface{}{"beta", 2} func versionParts(v string) ([]int, []interface{}) { + if strings.HasPrefix(v, "v") || strings.HasPrefix(v, "V") { + // Strip initial 'v' or 'V' prefix if present. + v = v[1:] + } parts := strings.SplitN(v, "+", 2) parts = strings.SplitN(parts[0], "-", 2) fields := strings.Split(parts[0], ".") diff --git a/internal/upgrade/upgrade_test.go b/internal/upgrade/upgrade_test.go index b625d466..d15133e0 100644 --- a/internal/upgrade/upgrade_test.go +++ b/internal/upgrade/upgrade_test.go @@ -42,6 +42,10 @@ var testcases = []struct { {"1.0.0+45", "1.0.0+23-dev-foo", 0}, {"1.0.0-beta.23+45", "1.0.0-beta.23+23-dev-foo", 0}, {"1.0.0-beta.3+99", "1.0.0-beta.24+0", -1}, + + {"v1.1.2", "1.1.2", 0}, + {"v1.1.2", "V1.1.2", 0}, + {"1.1.2", "V1.1.2", 0}, } func TestCompareVersions(t *testing.T) {