summaryrefslogtreecommitdiff
path: root/review
diff options
context:
space:
mode:
authorAidan Skinner <aidan@apache.org>2008-07-25 11:18:20 +0000
committerAidan Skinner <aidan@apache.org>2008-07-25 11:18:20 +0000
commitc063c7b4a350ce64abb4075b28b0de16fd5ec71c (patch)
tree3f309c68d03230b99c7f96903b1c648c8c2b5a5c /review
parent6ba559ba6bdf0bfd15a23dc60367f0fa0077b5a6 (diff)
downloadqpid-python-c063c7b4a350ce64abb4075b28b0de16fd5ec71c.tar.gz
Add xslt magic for creating code review agenda, and add wrapper script
git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk/qpid@679762 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'review')
-rwxr-xr-xreview/agenda.py65
-rw-r--r--review/jiraRSS2wiki.xsl17
-rw-r--r--review/svnlog2wiki.xsl11
3 files changed, 93 insertions, 0 deletions
diff --git a/review/agenda.py b/review/agenda.py
new file mode 100755
index 0000000000..fbc3581c9f
--- /dev/null
+++ b/review/agenda.py
@@ -0,0 +1,65 @@
+#!/usr/bin/env python
+#
+#
+# Licensed to the Apache Software Foundation (ASF) under one
+# or more contributor license agreements. See the NOTICE file
+# distributed with this work for additional information
+# regarding copyright ownership. The ASF licenses this file
+# to you 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.
+
+import sys, re
+from popen2 import popen2, popen3
+from optparse import OptionParser
+
+prereqs = ["tr", "svn", "xsltproc", "sed", "grep", "wget"]
+
+svncmd = "svn log https://svn.apache.org/repos/asf/incubator/qpid --xml -r %s:HEAD | tr '\n\r|' ' -' | xsltproc svnlog2wiki.xsl - | grep r | sed -e 's/^ *//' | sed -e 's/\(QPID-[0-9]*\)/\[\1 | https:\/\/issues.apache.org\/jira\/browse\/\1 \]/g'"
+
+jiracmd = "wget -q -O - http://issues.apache.org/jira/sr/jira.issueviews:searchrequest-xml/12312564/SearchRequest-12312564.xml?tempMax=1000 | tr '[]|' '()-' | xsltproc jiraRSS2wiki.xsl - | grep '|' | sed -e 's/^ *//'"
+
+
+def get_commits(revision):
+ (stdout, stdin) = popen2(svncmd % revision)
+ return stdout.read()
+
+def get_jiras():
+ (stdout, stdin) = popen2(jiracmd)
+ return stdout.read()
+
+def main():
+ parser = OptionParser()
+ parser.add_option("-r", "--revision", dest="revision", action="store",
+ type="string",
+ help="The first revision to generate logs for")
+
+ (options, args) = parser.parse_args()
+
+ # Check that we have what's necessary
+
+ notfound = re.compile('^which')
+ for cmd in prereqs:
+ (stdout, stdin, stderr) = popen3('which %s' % cmd)
+ if (notfound.match(stderr.read())):
+ parser.error ("Could not find command %s, try [apt-get|yum] install %s" %
+ (cmd, cmd))
+
+ if (options.revision == None):
+ parser.error("svn revision must be specified")
+
+ print(get_commits(options.revision))
+ print "=== Jiras==="
+ print(get_jiras())
+
+if __name__ == "__main__":
+ main()
diff --git a/review/jiraRSS2wiki.xsl b/review/jiraRSS2wiki.xsl
new file mode 100644
index 0000000000..6ebc86d0de
--- /dev/null
+++ b/review/jiraRSS2wiki.xsl
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+ <xsl:output method="text"></xsl:output>
+ <xsl:template match="/">
+ || Key || Component(s) || Affects Version/s|| Summary || Status || Assignee || Reporter || Review Comments ||
+ <xsl:apply-templates select="rss/channel/item"></xsl:apply-templates>
+ </xsl:template>
+ <xsl:template match="item">
+ | [<xsl:value-of select="key"/> | <![CDATA[https://issues.apache.org/jira/browse/]]><xsl:value-of select="key"/> ] | <xsl:apply-templates select="component"/> | <xsl:apply-templates select="version"/> | <xsl:value-of select="title"/> | <xsl:value-of select="status"/> | <xsl:value-of select="assignee"/> | <xsl:value-of select="reporter"/> | |
+ </xsl:template>
+ <xsl:template match="component">
+<xsl:value-of select="."/><xsl:if test="following-sibling::node()[name() = 'component']">, </xsl:if>
+ </xsl:template>
+ <xsl:template match="version">
+ <xsl:value-of select="."/><xsl:if test="following-sibling::node()[name() = 'version']">, </xsl:if>
+ </xsl:template>
+</xsl:stylesheet>
diff --git a/review/svnlog2wiki.xsl b/review/svnlog2wiki.xsl
new file mode 100644
index 0000000000..2905abc33b
--- /dev/null
+++ b/review/svnlog2wiki.xsl
@@ -0,0 +1,11 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
+ <xsl:output method="text"></xsl:output>
+ <xsl:template match="/">
+|| revision || committer || date || comment || ||
+<xsl:apply-templates select="log/logentry"></xsl:apply-templates>
+ </xsl:template>
+ <xsl:template match="logentry">
+ | [r<xsl:value-of select="@revision"/> | <![CDATA[http://svn.apache.org/viewvc/?view=rev&revision=]]><xsl:value-of select="@revision"/> ] | <xsl:value-of select="author"/> | <xsl:value-of select="substring( date, 1, 10 )"/> | <xsl:value-of select="substring(msg, 1, 200)"/><xsl:if test="string-length( msg ) > 200"> ... </xsl:if> | |
+ </xsl:template>
+</xsl:stylesheet>