diff options
author | Artur Signell <artur@vaadin.com> | 2014-05-09 22:38:42 +0300 |
---|---|---|
committer | Artur Signell <artur@vaadin.com> | 2014-05-12 10:22:52 +0300 |
commit | e975af74a60b446551354182a3904604dae09278 (patch) | |
tree | 78621fdd74a4a22ad47222ab929a4dec68e17cd3 /buildhelpers | |
parent | 20f56330401e983e3682ca437ff30b22db850f03 (diff) | |
download | vaadin-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.xml | 9 | ||||
-rw-r--r-- | buildhelpers/src/com/vaadin/buildhelpers/FetchReleaseNotesAuthors.java | 101 | ||||
-rw-r--r-- | buildhelpers/src/com/vaadin/buildhelpers/authormap.properties | 6 |
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 |