summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorShawn Rutledge <shawn.rutledge@qt.io>2019-01-11 17:59:15 +0100
committerShawn Rutledge <shawn.rutledge@qt.io>2019-01-14 08:07:58 +0000
commit1de7f4634d468458dce049627685a0342e8f3233 (patch)
treede06a5f230fcb6af5e367670d1cb80ee8cc6a997 /src
parentebbb8894372b42254defb232c53446c8dba417e4 (diff)
createchangelog: log all bug fixes without ChangeLog entries
These are separate, and are not repeated in case there _is_ a ChangeLog. It's a manual task to distribute them into the appropriate sections afterwards. Change-Id: I8446f7ca3607ef30636be1cba20b5027ea236cf9 Reviewed-by: Simon Hausmann <simon.hausmann@qt.io>
Diffstat (limited to 'src')
-rw-r--r--src/createchangelog/main.go48
1 files changed, 48 insertions, 0 deletions
diff --git a/src/createchangelog/main.go b/src/createchangelog/main.go
index 2efa9840..8e42cf9f 100644
--- a/src/createchangelog/main.go
+++ b/src/createchangelog/main.go
@@ -14,6 +14,7 @@ import (
"strings"
"github.com/hashicorp/go-version"
+ "github.com/eidolon/wordwrap"
)
type commandWithCapturedOutput struct {
@@ -213,6 +214,48 @@ func extractChangeLog(commitMessage string) (entry changeLogEntry) {
return
}
+func extractBugFix(commitMessage string) (entry changeLogEntry) {
+ scanner := bufio.NewScanner(bytes.NewBufferString(commitMessage))
+ blankLineCount := 0
+ taskNumber := ""
+ summary := ""
+ description := ""
+
+ for scanner.Scan() {
+ trimmedLine := strings.TrimSpace(scanner.Text())
+
+ if (blankLineCount == 1 && strings.Contains(trimmedLine, "tst_")) {
+ entry.text = ""
+ break
+ } else if strings.HasPrefix(trimmedLine, "Reviewed-by:") {
+ break
+ } else if strings.HasPrefix(strings.ToLower(trimmedLine), "task-number:") {
+ taskNumber = strings.TrimSpace(trimmedLine[len("task-number:"):])
+ break
+ } else if strings.HasPrefix(strings.ToLower(trimmedLine), "fixes:") {
+ taskNumber = strings.TrimSpace(trimmedLine[len("fixes:"):])
+ break
+ } else if (trimmedLine == "") {
+ blankLineCount += 1
+ } else if blankLineCount == 1 {
+ summary = trimmedLine
+ } else if blankLineCount > 1 {
+ description += trimmedLine + " "
+ }
+ }
+
+ if taskNumber != "" {
+ entry.text = "[" + taskNumber + "] " + summary
+ if description != "" {
+ wrapper := wordwrap.Wrapper(70, false)
+ entry.text += "\n" + wordwrap.Indent(wrapper(description), " ", false)
+ }
+ } else {
+ entry.text = ""
+ }
+ return
+}
+
func determinePreviousMinorVersion(versions []*version.Version) *version.Version {
lastVersion := len(versions) - 1
previousMinor := lastVersion
@@ -462,12 +505,17 @@ func appMain() error {
}
entry := extractChangeLog(commit)
if entry.text == "" {
+ entry := extractBugFix(commit)
+ if entry.text != "" {
+ fmt.Printf(" - %s\n", entry.text)
+ }
continue
}
//log.Println(commitSha1, entry.groups, entry.text)
changes.append(entry)
}
+ fmt.Println()
changes.print()
return nil
}