summaryrefslogtreecommitdiff
path: root/tools
diff options
context:
space:
mode:
authorJosh Suereth <joshua.suereth@gmail.com>2012-03-16 15:40:48 -0400
committerJosh Suereth <joshua.suereth@gmail.com>2012-03-19 10:32:28 -0400
commit78c15103d54e58b0ecd193b90e2d56b967967d6c (patch)
tree1d3527dd858cf7353675fcd48ff0e246df2c6b64 /tools
parent908636b5961fd14d91ac937d3306ea09f260cfa4 (diff)
downloadscala-78c15103d54e58b0ecd193b90e2d56b967967d6c.tar.gz
scala-78c15103d54e58b0ecd193b90e2d56b967967d6c.tar.bz2
scala-78c15103d54e58b0ecd193b90e2d56b967967d6c.zip
First cut at a release notes tool to help generate them.
Diffstat (limited to 'tools')
-rwxr-xr-xtools/make-release-notes49
1 files changed, 49 insertions, 0 deletions
diff --git a/tools/make-release-notes b/tools/make-release-notes
new file mode 100755
index 0000000000..dcd206f7fc
--- /dev/null
+++ b/tools/make-release-notes
@@ -0,0 +1,49 @@
+#!/usr/bin/env bash
+
+# This tool is used to build a *scaffold* of a release note that you can fill in details with before posting to the list.
+# It aims to provide *all* the information you need, and probably need to prune it before releasing.
+# Author: jsuereth
+
+fixMessages() {
+ local tag1="$1"
+ local tag2="$2"
+ git log $tag1..$tag2 "--format=format: * %h - %s" --no-merges --grep "SI-"
+}
+
+allcommitMessages() {
+ local tag1="$1"
+ local tag2="$2"
+ git log $tag1..$tag2 "--format=format: * %h - %s" --no-merges
+}
+
+authors() {
+ local tag1="$1"
+ local tag2="$2"
+ git log $tag1..$tag2 --format=format:%an --no-merges | sort | uniq -c | sort -rh
+}
+
+
+message() {
+ local tag1="$1"
+ local tag2="$2"
+
+ echo "A new release of Scala is available! Please point your build tools at ${tag2#v}"
+ echo
+ echo "Here's a list of the issues that have been fixed since ${tag1#v}: "
+ fixMessages "$tag1" "$tag2"
+ echo
+ echo
+ echo "Special thanks to all the contributions!"
+ echo "------- --------------------------------"
+ authors "$tag1" "$tag2"
+ echo "------- --------------------------------"
+ echo
+ echo
+ echo "Here's a complete list of changes:"
+ allcommitMessages "$tag1" "$tag2"
+}
+
+
+message "$1" "$2"
+
+