Skip to content

Commit cb3c6b6

Browse files
committed
releaser: Fix version calculation
1 parent 37d4001 commit cb3c6b6

File tree

6 files changed

+47
-13
lines changed

6 files changed

+47
-13
lines changed

‎helpers/hugo.go‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -56,6 +56,9 @@ func (v HugoVersion) Prev() HugoVersion {
5656
// NextPatchLevel returns the next patch/bugfix Hugo version.
5757
// This will be a patch increment on the previous Hugo version.
5858
func (v HugoVersion) NextPatchLevel(level int) HugoVersion {
59+
if v.PatchLevel > 0 {
60+
return HugoVersion{Number: v.Number, PatchLevel: level}
61+
}
5962
return HugoVersion{Number: v.Number - 0.01, PatchLevel: level}
6063
}
6164

‎releaser/git.go‎

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,15 @@ func (g gitInfos) ContribCountPerAuthor() contribCounts {
207207
return c
208208
}
209209

210+
func getCurrentBranch() (string, error) {
211+
return gitShort("rev-parse", "--abbrev-ref", "HEAD")
212+
}
213+
214+
func isMaster() bool {
215+
curr, _ := getCurrentBranch()
216+
return curr == "master"
217+
}
218+
210219
func getGitInfosBefore(ref string, remote bool) (gitInfos, error) {
211220

212221
var g gitInfos

‎releaser/git_test.go‎

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,3 +51,9 @@ See #456
5151
require.Equal(t, 543, issues[2])
5252

5353
}
54+
55+
func TestGetCurrentBranch(t *testing.T) {
56+
curr, err := getCurrentBranch()
57+
require.NoError(t, err)
58+
require.Equal(t, (curr == "master"), isMaster())
59+
}

‎releaser/releasenotes_writer_test.go‎

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -18,7 +18,6 @@ package releaser
1818

1919
import (
2020
"bytes"
21-
"fmt"
2221
"testing"
2322

2423
"runtime"
@@ -40,5 +39,4 @@ func TestReleaseNotesWriter(t *testing.T) {
4039

4140
require.NoError(t, writeReleaseNotes("0.20", infos, &b))
4241

43-
fmt.Println(">>>", b.String())
4442
}

‎releaser/releaser.go‎

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -60,11 +60,10 @@ func (r ReleaseHandler) calculateVersions(current helpers.HugoVersion) (helpers.
6060
if r.shouldContinue() {
6161
// The version in the current code base is in the state we want for
6262
// the release.
63-
if r.patch == 0 {
64-
finalVersion = newVersion.Next()
65-
}
63+
finalVersion = newVersion.Next()
6664
} else if r.patch > 0 {
67-
newVersion = helpers.CurrentHugoVersion.NextPatchLevel(r.patch)
65+
newVersion = current.NextPatchLevel(r.patch)
66+
finalVersion = newVersion.Next()
6867
} else {
6968
finalVersion = newVersion.Next()
7069
}

‎releaser/releaser_test.go‎

Lines changed: 26 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717
package releaser
1818

1919
import (
20+
"fmt"
2021
"testing"
2122

2223
"github.com/spf13/hugo/helpers"
@@ -41,7 +42,7 @@ func TestCalculateVersions(t *testing.T) {
4142
{
4243
New(2, 0, true),
4344
startVersion,
44-
"0.20.2",
45+
"0.19.2",
4546
"0.20-DEV",
4647
},
4748
{
@@ -59,20 +60,38 @@ func TestCalculateVersions(t *testing.T) {
5960
{
6061
New(3, 1, true),
6162
startVersion,
62-
"0.20.3",
63+
"0.19.3",
6364
"0.20-DEV",
6465
},
6566
{
6667
New(3, 2, true),
67-
startVersion.Next(),
68-
"0.21",
68+
helpers.HugoVersion{Number: 0.20, PatchLevel: 2},
69+
"0.20.2",
70+
"0.21-DEV",
71+
},
72+
{
73+
New(3, 0, true),
74+
helpers.HugoVersion{Number: 0.20, Suffix: "", PatchLevel: 2},
75+
"0.20.3",
76+
"0.21-DEV",
77+
},
78+
{
79+
New(3, 1, true),
80+
helpers.HugoVersion{Number: 0.20, Suffix: "", PatchLevel: 2},
81+
"0.20.3",
82+
"0.21-DEV",
83+
},
84+
{
85+
New(3, 2, true),
86+
helpers.HugoVersion{Number: 0.20, Suffix: "", PatchLevel: 3},
87+
"0.20.3",
6988
"0.21-DEV",
7089
},
7190
}
7291

73-
for _, test := range tests {
92+
for i, test := range tests {
7493
v1, v2 := test.handler.calculateVersions(test.version)
75-
require.Equal(t, test.v1, v1.String(), "Release version")
76-
require.Equal(t, test.v2, v2.String(), "Final version")
94+
require.Equal(t, test.v1, v1.String(), fmt.Sprintf("[%d] Release version", i))
95+
require.Equal(t, test.v2, v2.String(), fmt.Sprintf("[%d] Final version", i))
7796
}
7897
}

0 commit comments

Comments
 (0)