summaryrefslogtreecommitdiffstats
path: root/releaser
diff options
context:
space:
mode:
authorBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-07-28 14:33:56 +0200
committerBjørn Erik Pedersen <bjorn.erik.pedersen@gmail.com>2019-07-28 15:05:15 +0200
commit544f826dd6ab4e93178149c1d9e3f97e619a4095 (patch)
tree16ad23be4718524b7425a0cdf0f8738d497d9e04 /releaser
parente393c6290e827111a8a2e486791dc21f63a92b55 (diff)
releaser: Make it a one click release for patch releases
Diffstat (limited to 'releaser')
-rw-r--r--releaser/releasenotes_writer.go41
-rw-r--r--releaser/releaser.go16
2 files changed, 39 insertions, 18 deletions
diff --git a/releaser/releasenotes_writer.go b/releaser/releasenotes_writer.go
index 15602dc44..146cee198 100644
--- a/releaser/releasenotes_writer.go
+++ b/releaser/releasenotes_writer.go
@@ -29,21 +29,29 @@ import (
)
const (
- issueLinkTemplate = "[#%d](https://github.com/gohugoio/hugo/issues/%d)"
- linkTemplate = "[%s](%s)"
- releaseNotesMarkdownTemplate = `
-{{- $patchRelease := isPatch . -}}
-{{- $contribsPerAuthor := .All.ContribCountPerAuthor -}}
-{{- $docsContribsPerAuthor := .Docs.ContribCountPerAuthor -}}
-{{- if $patchRelease }}
+ issueLinkTemplate = "[#%d](https://github.com/gohugoio/hugo/issues/%d)"
+ linkTemplate = "[%s](%s)"
+ releaseNotesMarkdownTemplatePatchRelease = `
{{ if eq (len .All) 1 }}
This is a bug-fix release with one important fix.
{{ else }}
This is a bug-fix release with a couple of important fixes.
{{ end }}
-{{ else }}
-This release represents **{{ len .All }} contributions by {{ len $contribsPerAuthor }} contributors** to the main Hugo code base.
+{{ range .All }}
+{{- if .GitHubCommit -}}
+* {{ .Subject }} {{ . | commitURL }} {{ . | authorURL }} {{ range .Issues }}{{ . | issue }}{{ end }}
+{{ else -}}
+* {{ .Subject }} {{ range .Issues }}{{ . | issue }}{{ end }}
{{ end -}}
+{{- end }}
+
+
+`
+ releaseNotesMarkdownTemplate = `
+{{- $contribsPerAuthor := .All.ContribCountPerAuthor -}}
+{{- $docsContribsPerAuthor := .Docs.ContribCountPerAuthor -}}
+
+This release represents **{{ len .All }} contributions by {{ len $contribsPerAuthor }} contributors** to the main Hugo code base.
{{- if gt (len $contribsPerAuthor) 3 -}}
{{- $u1 := index $contribsPerAuthor 0 -}}
@@ -53,7 +61,6 @@ This release represents **{{ len .All }} contributions by {{ len $contribsPerAut
{{- $u1.AuthorLink }} leads the Hugo development with a significant amount of contributions, but also a big shoutout to {{ $u2.AuthorLink }}, {{ $u3.AuthorLink }}, and {{ $u4.AuthorLink }} for their ongoing contributions.
And a big thanks to [@digitalcraftsman](https://github.com/digitalcraftsman) and [@onedrawingperday](https://github.com/onedrawingperday) for their relentless work on keeping the themes site in pristine condition and to [@kaushalmodi](https://github.com/kaushalmodi) for his great work on the documentation site.
{{ end }}
-{{- if not $patchRelease }}
Many have also been busy writing and fixing the documentation in [hugoDocs](https://github.com/gohugoio/hugoDocs),
which has received **{{ len .Docs }} contributions by {{ len $docsContribsPerAuthor }} contributors**.
{{- if gt (len $docsContribsPerAuthor) 3 -}}
@@ -62,7 +69,7 @@ which has received **{{ len .Docs }} contributions by {{ len $docsContribsPerAut
{{- $u3 := index $docsContribsPerAuthor 2 -}}
{{- $u4 := index $docsContribsPerAuthor 3 }} A special thanks to {{ $u1.AuthorLink }}, {{ $u2.AuthorLink }}, {{ $u3.AuthorLink }}, and {{ $u4.AuthorLink }} for their work on the documentation site.
{{ end }}
-{{ end }}
+
Hugo now has:
{{ with .Repo -}}
@@ -151,7 +158,13 @@ func writeReleaseNotes(version string, infosMain, infosDocs gitInfos, to io.Writ
changes.ThemeCount = themeCount
}
- tmpl, err := template.New("").Funcs(templateFuncs).Parse(releaseNotesMarkdownTemplate)
+ mtempl := releaseNotesMarkdownTemplate
+
+ if !strings.HasSuffix(version, "0") {
+ mtempl = releaseNotesMarkdownTemplatePatchRelease
+ }
+
+ tmpl, err := template.New("").Funcs(templateFuncs).Parse(mtempl)
if err != nil {
return err
}
@@ -225,9 +238,9 @@ func (r *ReleaseHandler) releaseNotesState(version string) (releaseNotesState, e
}
-func (r *ReleaseHandler) writeReleaseNotesToTemp(version string, infosMain, infosDocs gitInfos) (string, error) {
+func (r *ReleaseHandler) writeReleaseNotesToTemp(version string, isPatch bool, infosMain, infosDocs gitInfos) (string, error) {
- docsTempPath, name := getReleaseNotesDocsTempDirAndName(version, false)
+ docsTempPath, name := getReleaseNotesDocsTempDirAndName(version, isPatch)
var (
w io.WriteCloser
diff --git a/releaser/releaser.go b/releaser/releaser.go
index 5430e1f8b..178ad02a6 100644
--- a/releaser/releaser.go
+++ b/releaser/releaser.go
@@ -94,6 +94,7 @@ func (r *ReleaseHandler) Run() error {
version := newVersion.String()
tag := "v" + version
+ isPatch := newVersion.PatchLevel > 0
// Exit early if tag already exists
exists, err := tagExists(tag)
@@ -128,8 +129,8 @@ func (r *ReleaseHandler) Run() error {
return err
}
- prepareRelaseNotes := relNotesState == releaseNotesNone
- shouldRelease := relNotesState == releaseNotesReady
+ prepareRelaseNotes := isPatch || relNotesState == releaseNotesNone
+ shouldRelease := isPatch || relNotesState == releaseNotesReady
defer r.gitPush() // TODO(bep)
@@ -152,7 +153,7 @@ func (r *ReleaseHandler) Run() error {
}
if prepareRelaseNotes {
- releaseNotesFile, err := r.writeReleaseNotesToTemp(version, gitCommits, gitCommitsDocs)
+ releaseNotesFile, err := r.writeReleaseNotesToTemp(version, isPatch, gitCommits, gitCommitsDocs)
if err != nil {
return err
}
@@ -160,7 +161,14 @@ func (r *ReleaseHandler) Run() error {
if _, err := r.git("add", releaseNotesFile); err != nil {
return err
}
- if _, err := r.git("commit", "-m", fmt.Sprintf("%s Add release notes draft for %s\n\nRename to *-ready.md to continue. [ci skip]", commitPrefix, newVersion)); err != nil {
+
+ commitMsg := fmt.Sprintf("%s Add release notes for %s", commitPrefix, newVersion)
+ if !isPatch {
+ commitMsg += "\n\nRename to *-ready.md to continue."
+ }
+ commitMsg += "\n[ci skip]"
+
+ if _, err := r.git("commit", "-m", commitMsg); err != nil {
return err
}
}