From 5ce7c99a2ebf1c85d8e0a33cf9bf00771e333a5d Mon Sep 17 00:00:00 2001 From: Michael Mccallum Date: Sun, 6 Aug 2017 12:14:58 +1200 Subject: [PATCH 1/4] Use the original tag not the semverified For examle trailing 0 are added on parse and used for validation but may be missing from the tag. --- util/version/version.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/version/version.go b/util/version/version.go index db0773c9..24cf49c5 100644 --- a/util/version/version.go +++ b/util/version/version.go @@ -110,7 +110,7 @@ func NewAvailable(current string, tags []string) (newVersion string, newAvailabl sort.Sort(sort.Reverse(semver.Collection(vs))) if currentVersion.LessThan(vs[0]) { - return vs[0].String(), true, nil + return vs[0].Original(), true, nil } return "", false, nil } From 0eeca779f7cf8d6db943ee25f2d323420298edec Mon Sep 17 00:00:00 2001 From: Michael Mccallum Date: Sun, 6 Aug 2017 12:21:09 +1200 Subject: [PATCH 2/4] verify that 2 point semver versions use original value --- util/version/version_test.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/util/version/version_test.go b/util/version/version_test.go index 082d273f..8735b5c3 100644 --- a/util/version/version_test.go +++ b/util/version/version_test.go @@ -276,6 +276,13 @@ func TestNewAvailable(t *testing.T) { wantNewAvailable: true, wantErr: false, }, + { + name: "simple semver", + args: args{current: "8.1", tags: []string{"8.1", "8.2", "8.3"}}, + wantNewVersion: "8.3", + wantNewAvailable: true, + wantErr: false, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { From 2e0e2bf337be7d710e4c95fcbba0c74d5ff3b5bf Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Sun, 6 Aug 2017 11:12:25 +0100 Subject: [PATCH 3/4] updated behaviour --- util/version/version_test.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/util/version/version_test.go b/util/version/version_test.go index 8735b5c3..d26c26d1 100644 --- a/util/version/version_test.go +++ b/util/version/version_test.go @@ -272,7 +272,7 @@ func TestNewAvailable(t *testing.T) { { name: "staging", args: args{current: "1.1.1", tags: []string{"v1.2.1-staging.1"}}, - wantNewVersion: "1.2.1-staging.1", + wantNewVersion: "v1.2.1-staging.1", wantNewAvailable: true, wantErr: false, }, From e87a6e1b0ceaf66c972583f92eaaf46d98261169 Mon Sep 17 00:00:00 2001 From: Karolis Rusenas Date: Sun, 6 Aug 2017 11:13:35 +0100 Subject: [PATCH 4/4] only major version test --- util/version/version_test.go | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/util/version/version_test.go b/util/version/version_test.go index d26c26d1..6bd7193e 100644 --- a/util/version/version_test.go +++ b/util/version/version_test.go @@ -277,12 +277,19 @@ func TestNewAvailable(t *testing.T) { wantErr: false, }, { - name: "simple semver", + name: "without patch version", args: args{current: "8.1", tags: []string{"8.1", "8.2", "8.3"}}, wantNewVersion: "8.3", wantNewAvailable: true, wantErr: false, }, + { + name: "only major version", + args: args{current: "8.1.1", tags: []string{"8", "9", "10"}}, + wantNewVersion: "10", + wantNewAvailable: true, + wantErr: false, + }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) {