From 4d1989d59c5abc9712b66c628c6742e58f7daf99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B8rn=20Erik=20Pedersen?= Date: Sat, 20 May 2017 10:58:08 +0300 Subject: releaser: Fix tag detection for changelog when doing a main release Also improve the changelog slightly. Fixes #3482 --- releaser/releaser.go | 20 +++++++++++++++----- 1 file changed, 15 insertions(+), 5 deletions(-) (limited to 'releaser/releaser.go') diff --git a/releaser/releaser.go b/releaser/releaser.go index ddf64a759..e7e7f479f 100644 --- a/releaser/releaser.go +++ b/releaser/releaser.go @@ -24,7 +24,6 @@ import ( "os/exec" "path/filepath" "regexp" - "strings" "github.com/spf13/hugo/helpers" ) @@ -89,20 +88,31 @@ func (r *ReleaseHandler) Run() error { tag := "v" + version // Exit early if tag already exists - out, err := git("tag", "-l", tag) - + exists, err := tagExists(tag) if err != nil { return err } - if strings.Contains(out, tag) { + if exists { return fmt.Errorf("Tag %q already exists", tag) } + var changeLogFromTag string + + if newVersion.PatchLevel == 0 { + // There may have been patch releases inbetween, so set the tag explicitly. + changeLogFromTag = "v" + newVersion.Prev().String() + exists, _ := tagExists(changeLogFromTag) + if !exists { + // fall back to one that exists. + changeLogFromTag = "" + } + } + var gitCommits gitInfos if r.shouldPrepare() || r.shouldRelease() { - gitCommits, err = getGitInfos(true) + gitCommits, err = getGitInfos(changeLogFromTag, true) if err != nil { return err } -- cgit v1.2.3