From: Bjørn Erik Pedersen Date: Mon, 24 Apr 2017 18:05:59 +0000 (+0200) Subject: releaser: Fix version calculation X-Git-Tag: v0.20.5~11 X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=cb3c6b6f7670f85189a4a3637e7132901d1ed6e9;p=brevno-suite%2Fhugo releaser: Fix version calculation --- diff --git a/helpers/hugo.go b/helpers/hugo.go index 2fda3430..d4ed3684 100644 --- a/helpers/hugo.go +++ b/helpers/hugo.go @@ -56,6 +56,9 @@ func (v HugoVersion) Prev() HugoVersion { // NextPatchLevel returns the next patch/bugfix Hugo version. // This will be a patch increment on the previous Hugo version. func (v HugoVersion) NextPatchLevel(level int) HugoVersion { + if v.PatchLevel > 0 { + return HugoVersion{Number: v.Number, PatchLevel: level} + } return HugoVersion{Number: v.Number - 0.01, PatchLevel: level} } diff --git a/releaser/git.go b/releaser/git.go index d8b5bef3..1c8fd395 100644 --- a/releaser/git.go +++ b/releaser/git.go @@ -207,6 +207,15 @@ func (g gitInfos) ContribCountPerAuthor() contribCounts { return c } +func getCurrentBranch() (string, error) { + return gitShort("rev-parse", "--abbrev-ref", "HEAD") +} + +func isMaster() bool { + curr, _ := getCurrentBranch() + return curr == "master" +} + func getGitInfosBefore(ref string, remote bool) (gitInfos, error) { var g gitInfos diff --git a/releaser/git_test.go b/releaser/git_test.go index dc1db5dc..8c5303fe 100644 --- a/releaser/git_test.go +++ b/releaser/git_test.go @@ -51,3 +51,9 @@ See #456 require.Equal(t, 543, issues[2]) } + +func TestGetCurrentBranch(t *testing.T) { + curr, err := getCurrentBranch() + require.NoError(t, err) + require.Equal(t, (curr == "master"), isMaster()) +} diff --git a/releaser/releasenotes_writer_test.go b/releaser/releasenotes_writer_test.go index d1151bff..19aa78d3 100644 --- a/releaser/releasenotes_writer_test.go +++ b/releaser/releasenotes_writer_test.go @@ -18,7 +18,6 @@ package releaser import ( "bytes" - "fmt" "testing" "runtime" @@ -40,5 +39,4 @@ func TestReleaseNotesWriter(t *testing.T) { require.NoError(t, writeReleaseNotes("0.20", infos, &b)) - fmt.Println(">>>", b.String()) } diff --git a/releaser/releaser.go b/releaser/releaser.go index 1b0350fa..585f715e 100644 --- a/releaser/releaser.go +++ b/releaser/releaser.go @@ -60,11 +60,10 @@ func (r ReleaseHandler) calculateVersions(current helpers.HugoVersion) (helpers. if r.shouldContinue() { // The version in the current code base is in the state we want for // the release. - if r.patch == 0 { - finalVersion = newVersion.Next() - } + finalVersion = newVersion.Next() } else if r.patch > 0 { - newVersion = helpers.CurrentHugoVersion.NextPatchLevel(r.patch) + newVersion = current.NextPatchLevel(r.patch) + finalVersion = newVersion.Next() } else { finalVersion = newVersion.Next() } diff --git a/releaser/releaser_test.go b/releaser/releaser_test.go index 64160054..1a42dd0e 100644 --- a/releaser/releaser_test.go +++ b/releaser/releaser_test.go @@ -17,6 +17,7 @@ package releaser import ( + "fmt" "testing" "github.com/spf13/hugo/helpers" @@ -41,7 +42,7 @@ func TestCalculateVersions(t *testing.T) { { New(2, 0, true), startVersion, - "0.20.2", + "0.19.2", "0.20-DEV", }, { @@ -59,20 +60,38 @@ func TestCalculateVersions(t *testing.T) { { New(3, 1, true), startVersion, - "0.20.3", + "0.19.3", "0.20-DEV", }, { New(3, 2, true), - startVersion.Next(), - "0.21", + helpers.HugoVersion{Number: 0.20, PatchLevel: 2}, + "0.20.2", + "0.21-DEV", + }, + { + New(3, 0, true), + helpers.HugoVersion{Number: 0.20, Suffix: "", PatchLevel: 2}, + "0.20.3", + "0.21-DEV", + }, + { + New(3, 1, true), + helpers.HugoVersion{Number: 0.20, Suffix: "", PatchLevel: 2}, + "0.20.3", + "0.21-DEV", + }, + { + New(3, 2, true), + helpers.HugoVersion{Number: 0.20, Suffix: "", PatchLevel: 3}, + "0.20.3", "0.21-DEV", }, } - for _, test := range tests { + for i, test := range tests { v1, v2 := test.handler.calculateVersions(test.version) - require.Equal(t, test.v1, v1.String(), "Release version") - require.Equal(t, test.v2, v2.String(), "Final version") + require.Equal(t, test.v1, v1.String(), fmt.Sprintf("[%d] Release version", i)) + require.Equal(t, test.v2, v2.String(), fmt.Sprintf("[%d] Final version", i)) } }