From 04cc619affb147b6864b34504260cbdb72ee8e47 Mon Sep 17 00:00:00 2001 From: Martin Nowak Date: Fri, 6 Jan 2017 17:16:33 +0100 Subject: [PATCH 1/6] use abbreviated month --- changed.d | 46 +--------------------------------------------- 1 file changed, 1 insertion(+), 45 deletions(-) diff --git a/changed.d b/changed.d index fb3d10e3e4..be5d5d614e 100755 --- a/changed.d +++ b/changed.d @@ -299,50 +299,6 @@ void writeBugzillaChanges(Entries, Writer)(Entries entries, Writer w) } } -string toString(Month month){ - string s = void; - with(Month) - final switch (month) { - case jan: - s = "January"; - break; - case feb: - s = "February"; - break; - case mar: - s = "March"; - break; - case apr: - s = "April"; - break; - case may: - s = "May"; - break; - case jun: - s = "June"; - break; - case jul: - s = "July"; - break; - case aug: - s = "August"; - break; - case sep: - s = "September"; - break; - case oct: - s = "October"; - break; - case nov: - s = "November"; - break; - case dec: - s = "December"; - break; - } - return s; -} - int main(string[] args) { auto outputFile = "./changelog.dd"; @@ -350,7 +306,7 @@ int main(string[] args) auto currDate = Clock.currTime(); auto nextVersionDate = "%s %02d, %04d" - .format(currDate.month.toString, currDate.day, currDate.year); + .format(currDate.month.to!string.capitalize, currDate.day, currDate.year); string previousVersion = "Previous version"; bool hideTextChanges = false; From 1c02e4f2c5eb02b735d04b08b4ed63c95a6b6367 Mon Sep 17 00:00:00 2001 From: Martin Nowak Date: Fri, 6 Jan 2017 17:47:39 +0100 Subject: [PATCH 2/6] don't escape title and description - collides with macros $(TT text) in title and description - maybe instead add a CI lint tool to check for balanced parens and unescaped characters --- changed.d | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/changed.d b/changed.d index be5d5d614e..9bc5b6d8fc 100755 --- a/changed.d +++ b/changed.d @@ -244,7 +244,7 @@ void writeTextChangesHeader(Entries, Writer)(Entries changes, Writer w, string h scope(exit) w.put("\n)\n\n"); foreach(change; changes) { - w.formattedWrite("$(LI $(RELATIVE_LINK2 %s,%s))\n", change.basename, change.title.escapeParens); + w.formattedWrite("$(LI $(RELATIVE_LINK2 %s,%s))\n", change.basename, change.title); } } /** @@ -261,9 +261,9 @@ void writeTextChangesBody(Entries, Writer)(Entries changes, Writer w, string hea scope(exit) w.put("\n)\n\n"); foreach(change; changes) { - w.formattedWrite("$(LI $(LNAME2 %s,%s)\n", change.basename, change.title.escapeParens); + w.formattedWrite("$(LI $(LNAME2 %s,%s)\n", change.basename, change.title); scope(exit) w.put(")\n"); - w.formattedWrite(" $(P %s )\n", change.description.escapeParens); + w.formattedWrite(" $(P %s )\n", change.description); } } From 93aec288b6c9bc4fded1c80f8471302c0a69d6a7 Mon Sep 17 00:00:00 2001 From: Martin Nowak Date: Fri, 6 Jan 2017 22:05:18 +0100 Subject: [PATCH 3/6] use language-changelog for dlang.org repo --- changed.d | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changed.d b/changed.d index 9bc5b6d8fc..22b5d74a1e 100755 --- a/changed.d +++ b/changed.d @@ -363,7 +363,7 @@ Please supply a bugzilla version Repo("tools", "Tools changes")]; auto changedRepos = repos - .map!(repo => Repo(buildPath("..", repo.path, "changelog"), repo.headline)) + .map!(repo => Repo(buildPath("..", repo.path, repo.path == "dlang.org" ? "language-changelog" : "changelog"), repo.headline)) .filter!(r => r.path.exists) .map!(r => tuple!("headline", "changes")(r.headline, r.path.readTextChanges.array)) .filter!(r => !r.changes.empty); From 0d0c67ffafa13d43dece562332e6bb426091aa5a Mon Sep 17 00:00:00 2001 From: Martin Nowak Date: Fri, 6 Jan 2017 17:49:58 +0100 Subject: [PATCH 4/6] add final newline --- changed.d | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/changed.d b/changed.d index 22b5d74a1e..f2565eeb6c 100755 --- a/changed.d +++ b/changed.d @@ -397,7 +397,8 @@ Please supply a bugzilla version // write own macros w.formattedWrite(`Macros: VER=%s - TITLE=Change Log: $(VER)`, nextVersionString); + TITLE=Change Log: $(VER) +`, nextVersionString); writefln("Change log generated to: '%s'", outputFile); return 0; From 873a08ff3b64f7a1d593af7a795cab20db86df6f Mon Sep 17 00:00:00 2001 From: Martin Nowak Date: Fri, 6 Jan 2017 17:54:30 +0100 Subject: [PATCH 5/6] separate entries by newline --- changed.d | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/changed.d b/changed.d index f2565eeb6c..97fabb4cf3 100755 --- a/changed.d +++ b/changed.d @@ -262,7 +262,7 @@ void writeTextChangesBody(Entries, Writer)(Entries changes, Writer w, string hea foreach(change; changes) { w.formattedWrite("$(LI $(LNAME2 %s,%s)\n", change.basename, change.title); - scope(exit) w.put(")\n"); + scope(exit) w.put(")\n\n"); w.formattedWrite(" $(P %s )\n", change.description); } } From 3a2f048cc80f4eab54640b7b6f5fbbcc3f2b8ca5 Mon Sep 17 00:00:00 2001 From: Martin Nowak Date: Fri, 6 Jan 2017 22:02:24 +0100 Subject: [PATCH 6/6] paragraphs and indentation - keep example code out of paragraphs - new paragraphs on \n\n - indentation --- changed.d | 31 ++++++++++++++++++++++++++++++- 1 file changed, 30 insertions(+), 1 deletion(-) diff --git a/changed.d b/changed.d index 97fabb4cf3..4cabe02886 100755 --- a/changed.d +++ b/changed.d @@ -263,7 +263,36 @@ void writeTextChangesBody(Entries, Writer)(Entries changes, Writer w, string hea { w.formattedWrite("$(LI $(LNAME2 %s,%s)\n", change.basename, change.title); scope(exit) w.put(")\n\n"); - w.formattedWrite(" $(P %s )\n", change.description); + + bool inPara, inCode; + foreach (line; change.description.splitLines) + { + if (line.startsWith("---")) + { + if (inPara) + { + w.put(" )\n"); + inPara = false; + } + inCode = !inCode; + } + else if (!inCode && !inPara && !line.empty) + { + w.put(" $(P\n"); + inPara = true; + } + else if (inPara && line.empty) + { + w.put(" )\n"); + inPara = false; + } + if (!line.empty) + w.put(inPara ? " " : " "); + w.put(line); + w.put("\n"); + } + if (inPara) + w.put(" )\n"); } }