Author: dblevins
Date: Mon Apr 22 03:10:54 2013
New Revision: 1470379
URL: http://svn.apache.org/r1470379
Log:
fixed velocity issue in swizzle-jirareport 1.6.3-SNAPSHOT
smarter logic for release notes
votes email now updated for latest infra changes -- new svn staging area for
binaries
update jiras script for pulling changes from svn and updating jira versions
Modified:
tomee/sandbox/release-tools/pom.xml
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/Upgrades.java
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/UpdateJiras.java
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/Vote.java
tomee/sandbox/release-tools/src/main/resources/release-notes-html.vm
tomee/sandbox/release-tools/src/main/resources/vote.vm
Modified: tomee/sandbox/release-tools/pom.xml
URL:
http://svn.apache.org/viewvc/tomee/sandbox/release-tools/pom.xml?rev=1470379&r1=1470378&r2=1470379&view=diff
==============================================================================
--- tomee/sandbox/release-tools/pom.xml (original)
+++ tomee/sandbox/release-tools/pom.xml Mon Apr 22 03:10:54 2013
@@ -105,7 +105,7 @@
<dependency>
<groupId>org.codehaus.swizzle</groupId>
<artifactId>swizzle-jirareport</artifactId>
- <version>1.6.2</version>
+ <version>1.6.3-SNAPSHOT</version>
<exclusions>
<exclusion>
<groupId>velocity</groupId>
Modified:
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/Upgrades.java
URL:
http://svn.apache.org/viewvc/tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/Upgrades.java?rev=1470379&r1=1470378&r2=1470379&view=diff
==============================================================================
---
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/Upgrades.java
(original)
+++
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/Upgrades.java
Mon Apr 22 03:10:54 2013
@@ -47,37 +47,14 @@ public class Upgrades {
public List<Issue> getIssues() throws Exception {
- Server server = Maven.settings.getServer("apache.jira");
- final String username = server.getUsername();
- final String password = server.getPassword();
-
- final Options options = new Options(System.getProperties());
- Jira jira = new Jira("https://issues.apache.org/jira/rpc/xmlrpc");
- jira.login(username, password);
-
final List<String> missing = new ArrayList<String>();
final List<String> urls = new ArrayList<String>();
for (Upgrade upgrade : upgrades) {
- final Project project = jira.getProject(upgrade.getKey());
-
- if (project == null) {
- missing.add(upgrade.getKey());
- }
+ final String key = upgrade.getKey();
for (String version : upgrade.getVersions()) {
- try {
-
- final Version ver = jira.getVersion(project, version);
-
- if (ver == null) {
- missing.add(project + ":" + version);
- continue;
- }
-
-
urls.add(String.format("https://issues.apache.org/jira/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?&pid=%s&status=5&status=6&fixfor=%s&tempMax=1000&reset=true&decorator=none",
project.getId(), ver.getId()));
- } catch (Exception e) {
- }
+
urls.add("https://issues.apache.org/jira/sr/jira.issueviews:searchrequest-xml/temp/SearchRequest.xml?jqlQuery=project+%3D+"
+ key + "+AND+fixVersion+%3D+%22" + version +
"%22+AND+status+in+%28Resolved%2C+Closed%29&tempMax=1000");
}
}
Modified:
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/UpdateJiras.java
URL:
http://svn.apache.org/viewvc/tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/UpdateJiras.java?rev=1470379&r1=1470378&r2=1470379&view=diff
==============================================================================
---
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/UpdateJiras.java
(original)
+++
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/UpdateJiras.java
Mon Apr 22 03:10:54 2013
@@ -22,10 +22,12 @@ import org.apache.openejb.tools.release.
import org.apache.openejb.tools.release.Maven;
import org.apache.openejb.tools.release.Release;
import org.apache.openejb.tools.release.util.Exec;
+import org.apache.openejb.tools.release.util.IO;
import org.apache.openejb.tools.release.util.ObjectList;
import org.apache.openejb.tools.release.util.Options;
import org.codehaus.swizzle.jira.Issue;
import org.codehaus.swizzle.jira.Jira;
+import org.codehaus.swizzle.jira.Status;
import org.codehaus.swizzle.jira.Version;
import javax.xml.bind.JAXBContext;
@@ -34,13 +36,18 @@ import java.io.InputStream;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.text.SimpleDateFormat;
+import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Hashtable;
import java.util.LinkedHashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.Vector;
+import java.util.concurrent.Semaphore;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
/**
* @version $Rev$ $Date$
@@ -50,62 +57,80 @@ public class UpdateJiras {
private static SimpleDateFormat date = new SimpleDateFormat("yyyy-MM-dd");
- public static void main(String... args) throws Exception {
+ public static void _main(String... args) throws Exception {
final String tag = Release.tags + Release.openejbVersionName;
updateJiraFixVersions(tag, "HEAD", "{" + Release.lastReleaseDate +
"}", Release.tomeeVersion, Release.openejbVersion);
}
- public static void _main(String[] args) throws Exception {
-
updateJiraFixVersions("http://svn.apache.org/repos/asf/openejb/trunk/openejb/",
"1364034","1364034", "1.1.0" ,"4.1.0");
+ public static void main(String[] args) throws Exception {
+
+// final List<String> jiraKeys =
getJiraKeys("TOMEE-1TOMEE-2TOMEE-3TOMEE-4");
+// for (String jiraKey : jiraKeys) {
+// System.out.println(jiraKey);
+// }
+
+
updateJiraFixVersions("http://svn.apache.org/repos/asf/tomee/tomee/branches/tomee-1.5.2",
"1417791","HEAD", "1.5.2" ,"4.5.2");
}
+ static final Pattern pattern = Pattern.compile("((OPENEJB|TOMEE)-[0-9]+)");
+
private static void updateJiraFixVersions(String repo, final String start,
final String end, final String tomeeVersion, final String openejbVersion)
throws Exception {
final InputStream in = Exec.read("svn", "log", "--verbose", "--xml",
"-r" + start + ":" + end, repo);
- final JAXBContext context = JAXBContext.newInstance(Commit.Log.class);
- final Unmarshaller unmarshaller = context.createUnmarshaller();
+ final String content = IO.slurp(in).toUpperCase();
+ System.out.println(content);
+ final Set<String> keys = new HashSet<String>(getJiraKeys(content));
- final Commit.Log log = (Commit.Log) unmarshaller.unmarshal(in);
+ for (String key : keys) {
+ System.out.println(key);
+ }
final State state = new State();
+ final Version tomee = state.jira.getVersion("TOMEE", tomeeVersion);
+ final Version openejb = state.jira.getVersion("OPENEJB",
openejbVersion);
- { // Collect the work that made it into the release
- ObjectList<Commit> commits = log.getCommits();
- commits = commits.ascending("revision");
-
- mine:
- for (Commit commit : commits) {
- final String[] tokens =
commit.getMessage().toUpperCase().split("[^A-Z0-9-]+");
- for (String token : tokens) {
- if (token.matches("(OPENEJB|TOMEE)-[0-9]+")) {
- try {
- state.get(token).add(commit);
-// break mine;
- } catch (Exception e) {
- System.err.printf("Bad issue %s\n", token);
- }
- }
- }
+
+ jiras: for (String key : keys) {
+ if ("TOMEE-1".equals(key)) continue;
+
+ final Issue issue = state.jira.getIssue(key);
+ if (issue == null) continue;
+
+ final List<Version> fixVersions = issue.getFixVersions();
+
+ for (Version fixVersion : fixVersions) {
+ if (fixVersion.getReleased()) continue jiras;
}
- }
- // Close those jiras with links to the commits
- for (IssueCommits ic : state.map.values()) {
- final Issue issue = ic.getIssue();
+ Version version = null;
+ if (issue.getKey().startsWith("TOMEE")) {
+ version = tomee;
+ }
- final StringBuilder comment = new StringBuilder();
- for (Commit commit : ic.getCommits()) {
- comment.append(String.format("%s -
http://svn.apache.org/viewvc?view=revision&revision=%s - %s\n",
date.format(commit.getDate()), commit.getRevision(), commit.getAuthor()));
+ if (issue.getKey().startsWith("OPENEJB")) {
+ version = openejb;
}
- try {
- System.out.println("\n\n" + comment);
- System.out.printf("Adding comment to %s\n", issue.getKey());
-// state.jira.addComment(issue.getKey(), comment.toString());
- } catch (Exception e) {
- synchronized (System.out) {
+ System.out.println("Updating " + key);
+ final Set<String> ids = new HashSet<String>();
+ for (Version v : issue.getFixVersions()) {
+ if (v.getName().equals("1.6.0.beta1")) continue;
+ ids.add(v.getId() + "");
+ }
+
+ final int versions = ids.size();
+ ids.add(version.getId() + "");
+
+ if (versions != ids.size()) {
+ try {
+ System.out.printf("Adding version to %s\n",
issue.getKey());
+
+ final Hashtable map = new Hashtable();
+ map.put("fixVersions", new Vector(ids));
+ call(state.jira, "updateIssue", issue.getKey(), map);
+ } catch (Exception e) {
e.printStackTrace();
}
}
@@ -146,6 +171,26 @@ public class UpdateJiras {
}
}
+ private static boolean isClosed(Issue issue) {
+ final String name = issue.getStatus().getName();
+ if ("Closed".equals(name)) return true;
+ if ("Resolved".equals(name)) return true;
+
+ return false;
+ }
+
+ private static List<String> getJiraKeys(String message) {
+ final Matcher matcher = pattern.matcher(message);
+
+ final List<String> list = new ArrayList<String>();
+
+ while (matcher.find()) {
+ list.add(matcher.group());
+ }
+
+ return list;
+ }
+
private static void call(Jira jira, String command, Object... args) throws
NoSuchMethodException, IllegalAccessException, InvocationTargetException {
final Method method = Jira.class.getDeclaredMethod("call",
String.class, Object[].class);
method.setAccessible(true);
@@ -167,7 +212,7 @@ public class UpdateJiras {
jira.login(username, password);
}
- public IssueCommits get(String key) {
+ public synchronized IssueCommits get(String key) {
final IssueCommits commits = map.get(key);
if (commits != null) return commits;
@@ -200,7 +245,7 @@ public class UpdateJiras {
return commits;
}
- public void add(Commit commit) {
+ public synchronized void add(Commit commit) {
this.commits.add(commit);
}
Modified:
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/Vote.java
URL:
http://svn.apache.org/viewvc/tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/Vote.java?rev=1470379&r1=1470378&r2=1470379&view=diff
==============================================================================
---
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/Vote.java
(original)
+++
tomee/sandbox/release-tools/src/main/java/org/apache/openejb/tools/release/cmd/Vote.java
Mon Apr 22 03:10:54 2013
@@ -24,6 +24,9 @@ import org.apache.creadur.tentacles.Temp
import java.io.IOException;
import java.io.OutputStream;
import java.lang.reflect.Field;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.concurrent.TimeUnit;
/**
* @version $Rev$ $Date$
@@ -43,13 +46,17 @@ public class Vote {
}
}
+ final Date end = new Date(System.currentTimeMillis() +
TimeUnit.HOURS.toMillis(72));
+ final SimpleDateFormat simpleDateFormat = new SimpleDateFormat("E
hh:mma z");
+ template.add("endDateUS", simpleDateFormat.format(end));
+
final String email = template.apply();
System.out.println(email);
- final OutputStream out = Exec.write("ssh", "people.apache.org",
"/usr/sbin/sendmail -it");
- out.write(email.getBytes());
- out.flush();
- out.close();
+// final OutputStream out = Exec.write("ssh", "people.apache.org",
"/usr/sbin/sendmail -it");
+// out.write(email.getBytes());
+// out.flush();
+// out.close();
}
}
Modified: tomee/sandbox/release-tools/src/main/resources/release-notes-html.vm
URL:
http://svn.apache.org/viewvc/tomee/sandbox/release-tools/src/main/resources/release-notes-html.vm?rev=1470379&r1=1470378&r2=1470379&view=diff
==============================================================================
--- tomee/sandbox/release-tools/src/main/resources/release-notes-html.vm
(original)
+++ tomee/sandbox/release-tools/src/main/resources/release-notes-html.vm Mon
Apr 22 03:10:54 2013
@@ -2,16 +2,8 @@
#set( $upgrades = $utils.load("org.apache.openejb.tools.release.Upgrades") )
#set( $upgrades = $upgrades.add("TOMEE", [$tomeeVersion]) )
#set( $upgrades = $upgrades.add("OPENEJB", [$openejbVersion]) )
-#set( $upgrades = $upgrades.add("OWB", ["1.1.7"]) )
-#set( $upgrades = $upgrades.add("AMQ", ["5.7.0"]) )
-#set( $upgrades = $upgrades.add("CXF", ["2.6.3"]) )
-#set( $upgrades = $upgrades.add("MYFACES", ["2.1.10"]) )
#set( $issues = $upgrades.issues.unique("key") )
-Apache TomEE $version
-
-$date
-
<h2>Upgrades</h2>
<ul>
Modified: tomee/sandbox/release-tools/src/main/resources/vote.vm
URL:
http://svn.apache.org/viewvc/tomee/sandbox/release-tools/src/main/resources/vote.vm?rev=1470379&r1=1470378&r2=1470379&view=diff
==============================================================================
--- tomee/sandbox/release-tools/src/main/resources/vote.vm (original)
+++ tomee/sandbox/release-tools/src/main/resources/vote.vm Mon Apr 22 03:10:54
2013
@@ -1,4 +1,4 @@
-Subject: [VOTE] OpenEJB $openejbVersion/TomEE $tomeeVersion (staging-$build)
+Subject: [VOTE] TomEE $tomeeVersion/OpenEJB $openejbVersion (staging-$build)
To: $to
From: $from
@@ -6,7 +6,7 @@ From: $from
SVN Tag:
- $tags$openejbVersionName/
+ $tags$tomeeVersionName/
Maven Repo:
@@ -14,12 +14,8 @@ Maven Repo:
Binaries & Source:
- http://people.apache.org/~$user/staging-$build/$openejbVersionName/
+ https://dist.apache.org/repos/dist/dev/tomee/staging-$build/$tomeeVersionName
-Legal:
- http://people.apache.org/~$user/staging-$build/legal/archives.html
-
-
-Vote will be open for 72 hours or as needed.
+Vote will be open for 72 hours ($endDate) or as needed.