From 4cf129a6d63a126a80e816547480374c03646f82 Mon Sep 17 00:00:00 2001 From: Aidan Skinner Date: Fri, 25 Jul 2008 11:18:20 +0000 Subject: Add xslt magic for creating code review agenda, and add wrapper script git-svn-id: https://svn.apache.org/repos/asf/incubator/qpid/trunk@679762 13f79535-47bb-0310-9956-ffa450edef68 --- qpid/review/agenda.py | 65 ++++++++++++++++++++++++++++++++++++++++++++ qpid/review/jiraRSS2wiki.xsl | 17 ++++++++++++ qpid/review/svnlog2wiki.xsl | 11 ++++++++ 3 files changed, 93 insertions(+) create mode 100755 qpid/review/agenda.py create mode 100644 qpid/review/jiraRSS2wiki.xsl create mode 100644 qpid/review/svnlog2wiki.xsl diff --git a/qpid/review/agenda.py b/qpid/review/agenda.py new file mode 100755 index 0000000000..fbc3581c9f --- /dev/null +++ b/qpid/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/qpid/review/jiraRSS2wiki.xsl b/qpid/review/jiraRSS2wiki.xsl new file mode 100644 index 0000000000..6ebc86d0de --- /dev/null +++ b/qpid/review/jiraRSS2wiki.xsl @@ -0,0 +1,17 @@ + + + + + || Key || Component(s) || Affects Version/s|| Summary || Status || Assignee || Reporter || Review Comments || + + + + | [ | ] | | | | | | | | + + +, + + + , + + diff --git a/qpid/review/svnlog2wiki.xsl b/qpid/review/svnlog2wiki.xsl new file mode 100644 index 0000000000..2905abc33b --- /dev/null +++ b/qpid/review/svnlog2wiki.xsl @@ -0,0 +1,11 @@ + + + + +|| revision || committer || date || comment || || + + + + | [r | ] | | | ... | | + + -- cgit v1.2.1