]> git.maquefel.me Git - brevno-suite/hugo/commitdiff
releaser: Fix version calculation
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 24 Apr 2017 18:05:59 +0000 (20:05 +0200)
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>
Mon, 24 Apr 2017 18:15:25 +0000 (20:15 +0200)
helpers/hugo.go
releaser/git.go
releaser/git_test.go
releaser/releasenotes_writer_test.go
releaser/releaser.go
releaser/releaser_test.go

index 2fda3430b72796bdb989b660dcc1ced9023864e6..d4ed368462d35ede82fa50be80f07fd5317c526b 100644 (file)
@@ -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}
 }
 
index d8b5bef311f853575175c54f39b670d325042f28..1c8fd395c343d28e0d2010a528f7b8f98503c224 100644 (file)
@@ -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
index dc1db5dc73665ea296ce99277e3d6ad91133dbbc..8c5303fe5b8aeaa6476774a6d9200b3060f1e4b3 100644 (file)
@@ -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())
+}
index d1151bffc40be2cdca9d3556c4569cc2f472f6c9..19aa78d33ef572a60b1ede2c97e09dadf388ffe0 100644 (file)
@@ -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())
 }
index 1b0350fa09080ceee723195a0bfcb93915f1ccfb..585f715e43b407c5604b1c8d72916b7259e553a7 100644 (file)
@@ -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()
        }
index 64160054507b7be0e4d6cca1384bafcd27acc1d1..1a42dd0e092083306e1e36f26b50991af7df61c4 100644 (file)
@@ -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))
        }
 }