summaryrefslogtreecommitdiffstats
path: root/buildhelpers
diff options
context:
space:
mode:
authorArtur Signell <artur@vaadin.com>2014-05-09 22:38:42 +0300
committerArtur Signell <artur@vaadin.com>2014-05-12 10:22:52 +0300
commite975af74a60b446551354182a3904604dae09278 (patch)
tree78621fdd74a4a22ad47222ab929a4dec68e17cd3 /buildhelpers
parent20f56330401e983e3682ca437ff30b22db850f03 (diff)
downloadvaadin-framework-e975af74a60b446551354182a3904604dae09278.tar.gz
vaadin-framework-e975af74a60b446551354182a3904604dae09278.zip
List authors in release notes (#13612)
Change-Id: I51960e9345ff233e29289b33d3224e03d866d463
Diffstat (limited to 'buildhelpers')
-rw-r--r--buildhelpers/build.xml9
-rw-r--r--buildhelpers/src/com/vaadin/buildhelpers/FetchReleaseNotesAuthors.java101
-rw-r--r--buildhelpers/src/com/vaadin/buildhelpers/authormap.properties6
3 files changed, 116 insertions, 0 deletions
diff --git a/buildhelpers/build.xml b/buildhelpers/build.xml
index 28eb55e6e8..159435811f 100644
--- a/buildhelpers/build.xml
+++ b/buildhelpers/build.xml
@@ -44,6 +44,15 @@
</antcall>
</target>
+ <target name="fetch-release-notes-authors">
+ <copy file="src/com/vaadin/buildhelpers/authormap.properties" tofile="result/classes/com/vaadin/buildhelpers/authormap.properties" />
+ <antcall target="common.exec-buildhelper">
+ <param name="main.class" value="com.vaadin.buildhelpers.FetchReleaseNotesAuthors" />
+ <param name="output" value="${output}" />
+ </antcall>
+ <delete file="result/classes/com/vaadin/buildhelpers/authormap.properties" />
+ </target>
+
<target name="test" depends="checkstyle">
<!--<antcall target="common.test.run" /> -->
<echo>WHAT? No JUnit tests for ${module.name}!</echo>
diff --git a/buildhelpers/src/com/vaadin/buildhelpers/FetchReleaseNotesAuthors.java b/buildhelpers/src/com/vaadin/buildhelpers/FetchReleaseNotesAuthors.java
new file mode 100644
index 0000000000..cd85ca6a3f
--- /dev/null
+++ b/buildhelpers/src/com/vaadin/buildhelpers/FetchReleaseNotesAuthors.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright 2000-2014 Vaadin Ltd.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License"); you may not
+ * use this file except in compliance with the License. You may obtain a copy of
+ * the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
+ * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the
+ * License for the specific language governing permissions and limitations under
+ * the License.
+ */
+package com.vaadin.buildhelpers;
+
+import java.io.BufferedReader;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Properties;
+
+public class FetchReleaseNotesAuthors {
+ private static final String template = "<li class=\"author\">@author@</li>";
+
+ public static void main(String[] args) throws IOException,
+ InterruptedException {
+ Properties authorMap = new Properties();
+
+ String authorsFilename = FetchReleaseNotesAuthors.class.getPackage()
+ .getName().replace(".", "/")
+ + "/authormap.properties";
+ InputStream s = FetchReleaseNotesAuthors.class.getClassLoader()
+ .getResourceAsStream(authorsFilename);
+ if (s == null) {
+ System.err.println("Author mapping file " + authorsFilename
+ + " not found!");
+ }
+ authorMap.load(s);
+
+ String version = System.getProperty("vaadin.version");
+ String previousVersion = getPreviousVersion(version);
+ // System.out.println("Using previous version: " + previousVersion);
+ // List all commits which are in this version but not in
+ // "previousVersion"
+ String cmd = "git log --pretty=%an HEAD ^origin/" + previousVersion;
+ Process p = Runtime.getRuntime().exec(cmd);
+ p.waitFor();
+ if (p.exitValue() != 0) {
+ System.err.println("Exit code: " + p.exitValue());
+ }
+ BufferedReader b = new BufferedReader(new InputStreamReader(
+ p.getInputStream()));
+ String line = "";
+
+ List<String> authors = new ArrayList<String>();
+ while ((line = b.readLine()) != null) {
+ String author = line;
+ if (authorMap.containsKey(author)) {
+ author = authorMap.getProperty(author);
+ }
+ if (author != null && !author.equals("")
+ && !authors.contains(author)) {
+ authors.add(author);
+ }
+ }
+ Collections.sort(authors);
+ for (String author : authors) {
+ System.out.println(template.replace("@author@", author));
+ }
+ }
+
+ private static String getPreviousVersion(String version) {
+ String[] versionNumbers = version.split("\\.");
+ if (versionNumbers.length > 4 || versionNumbers.length < 3) {
+ throw new IllegalArgumentException("Cannot parse version: "
+ + version);
+ }
+ int major = Integer.parseInt(versionNumbers[0]);
+ int minor = Integer.parseInt(versionNumbers[1]);
+ int maintenance = Integer.parseInt(versionNumbers[2]);
+ // String qualifier = versionNumbers[3];
+
+ if (minor == 0) {
+ // Major release, can't know what the previous minor was
+ throw new IllegalArgumentException(
+ "Can't know what previous minor version was");
+ }
+ if (maintenance == 0) {
+ // Minor release, use last minor
+ return major + "." + (minor - 1);
+ } else {
+ // Maintenance, use last maintenance
+ return major + "." + minor + "." + (maintenance - 1);
+ }
+ }
+}
diff --git a/buildhelpers/src/com/vaadin/buildhelpers/authormap.properties b/buildhelpers/src/com/vaadin/buildhelpers/authormap.properties
new file mode 100644
index 0000000000..15b8ad2cba
--- /dev/null
+++ b/buildhelpers/src/com/vaadin/buildhelpers/authormap.properties
@@ -0,0 +1,6 @@
+denisanisimov=Denis Anisimov
+joheriks=Johannes Eriksson
+michaelvogt=Michael Vogt
+tapio=Tapio Aali
+Build\ Agent=
+mtzukanov=Michael Tzukanov \ No newline at end of file