Browse Source

Remove old release notes configurations (#11240)

* Remove old release notes configurations

* Remove FetchReleseNotes* files
tags/7.7.16
Anastasia Smirnova 5 years ago
parent
commit
a35848208a

+ 1
- 47
all/pom.xml View File

@@ -245,53 +245,7 @@
</activation>
<build>
<plugins>
<plugin>
<groupId>org.codehaus.mojo</groupId>
<artifactId>exec-maven-plugin</artifactId>
<executions>
<execution>
<id>fetch-release-notes-tickets</id>
<phase>process-classes</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<classpathScope>compile</classpathScope>
<executable>${java.home}/bin/java</executable>
<arguments>
<argument>-Dvaadin.version=${project.version}</argument>
<argument>-classpath</argument>
<classpath />

<argument>com.vaadin.buildhelpers.FetchReleaseNotesTickets
</argument>
</arguments>
<outputFile>${relnotes.tickets.file}</outputFile>
</configuration>
</execution>
<execution>
<id>fetch-release-notes-authors</id>
<phase>process-classes</phase>
<goals>
<goal>exec</goal>
</goals>
<configuration>
<classpathScope>compile</classpathScope>
<executable>${java.home}/bin/java</executable>
<arguments>
<argument>-Dvaadin.version=${project.version}</argument>
<argument>-classpath</argument>
<classpath />

<argument>com.vaadin.buildhelpers.FetchReleaseNotesAuthors
</argument>
</arguments>
<outputFile>${relnotes.authors.file}</outputFile>
</configuration>
</execution>
</executions>
</plugin>

<!-- Extract sources for JavaDoc -->
<plugin>
<artifactId>maven-dependency-plugin</artifactId>

+ 0
- 100
all/src/main/java/com/vaadin/buildhelpers/FetchReleaseNotesAuthors.java View File

@@ -1,100 +0,0 @@
/*
* Copyright 2000-2018 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);
}
}
}

+ 0
- 171
all/src/main/java/com/vaadin/buildhelpers/FetchReleaseNotesTickets.java View File

@@ -1,171 +0,0 @@
/*
* Copyright 2000-2018 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.IOException;
import java.io.InputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
import java.util.ArrayList;
import java.util.List;

import org.apache.commons.io.IOUtils;

public class FetchReleaseNotesTickets {
private static final String queryURL = "https://dev.vaadin.com/query?status=pending-release&amp;status=released&amp;@milestone@&amp;resolution=fixed&amp;col=id&amp;col=summary&amp;col=owner&amp;col=type&amp;col=priority&amp;col=component&amp;col=version&amp;col=bfptime&col=fv&amp;format=tab&amp;order=id";
private static final String ticketTemplate = "<tr>" + "@badge@" //
+ "<td class=\"ticket\"><a href=\"https://dev.vaadin.com/ticket/@ticket@\">#@ticket@</a></td>" //
+ "<td>@description@</td>" //
+ "</tr>"; //

public static void main(String[] args) throws IOException {
String versionsProperty = System.getProperty("vaadin.version");
if (versionsProperty == null || versionsProperty.equals("")) {
usage();
}
String milestone = "";

List<String> versions = new ArrayList<String>();
for (String version : versionsProperty.split(" ")) {
if (version.endsWith(".0") || version.matches(".*\\.rc\\d+")) {
// Find all prerelease versions for final or rc

// Strip potential rc prefix
version = version.replaceAll("\\.rc\\d+$", "");
versions.addAll(findPrereleaseVersions(version));
} else {
versions.add(version);
}
}

for (String version : versions) {
if (!milestone.equals("")) {
milestone += "&amp;";
}
milestone += "milestone=Vaadin+" + version;
}

printMilestone(milestone);
}

private static List<String> findPrereleaseVersions(String baseVersion) {
List<String> versions = new ArrayList<String>();

for (int i = 0; i < 50; i++) {
versions.add(baseVersion + ".alpha" + i);
}
for (int i = 0; i < 10; i++) {
versions.add(baseVersion + ".beta" + i);
}
for (int i = 0; i < 10; i++) {
versions.add(baseVersion + ".rc" + i);
}

return versions;
}

private static void printMilestone(String milestone)
throws MalformedURLException, IOException {

URL url = new URL(queryURL.replace("@milestone@", milestone));
URLConnection connection = url.openConnection();
InputStream urlStream = connection.getInputStream();

List<String> tickets = IOUtils.readLines(urlStream);

for (String ticket : tickets) {
// Omit BOM
if (!ticket.isEmpty() && ticket.charAt(0) == 65279) {
ticket = ticket.substring(1);
}
String[] fields = ticket.split("\t");
if ("id".equals(fields[0])) {
// This is the header
continue;
}
String summary = fields[1];

summary = modifySummaryString(summary);

String badge = "<td></td>";
if (fields.length >= 8 && !fields[7].equals("")) {
badge = "<td class=\"bfp\"><span class=\"bfp\">Priority</span></td>";
} else if (fields.length >= 9
&& fields[8].equalsIgnoreCase("true")) {
badge = "<td class=\"fv\"><span class=\"fv\">Vote</span></td>";
}

System.out.println(ticketTemplate.replace("@ticket@", fields[0])
.replace("@description@", summary)
.replace("@badge@", badge));
}
urlStream.close();
}

private static String modifySummaryString(String summary) {

if (summary.startsWith("\"") && summary.endsWith("\"")) {
// If a summary starts with " and ends with " then all quotes in
// the summary are encoded as double quotes
summary = summary.substring(1, summary.length() - 1);
summary = summary.replace("\"\"", "\"");
}

// this is needed for escaping html
summary = escapeHtml(summary);

return summary;
}

/**
* @since 7.4
* @param string
* the string to be html-escaped
* @return string in html-escape format
*/
private static String escapeHtml(String string) {

StringBuffer buf = new StringBuffer(string.length() * 2);

// we check the string character by character and escape only special
// characters
for (int i = 0; i < string.length(); ++i) {

char ch = string.charAt(i);
String charString = ch + "";

if ((charString).matches("[a-zA-Z0-9., ]")) {
// character is letter, digit, dot, comma or whitespace
buf.append(ch);
} else {
int charInt = ch;
buf.append("&");
buf.append("#");
buf.append(charInt);
buf.append(";");
}
}
return buf.toString();
}

private static void usage() {
System.err.println(
"Usage: " + FetchReleaseNotesTickets.class.getSimpleName()
+ " -Dvaadin.version=<version>");
System.exit(1);
}
}

Loading…
Cancel
Save