qpid-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Martin Ritchie <ritch...@apache.org>
Subject Re: svn commit: r823151 - /qpid/trunk/qpid/review/changeLogToWiki.py
Date Fri, 09 Oct 2009 08:14:56 GMT
2009/10/8 Aidan Skinner <aidan.skinner@gmail.com>:
> Is there a reason not to use agenda.py for this?

True is was based on agenda.py. I had planed on allowing the JIRA id
detection to be customized as well. Thought it best just to leave the
agenda,.py as was until I added the JIRA processing back in.

> - Aidan
>
> On Thu, Oct 8, 2009 at 8:44 AM,  <ritchiem@apache.org> wrote:
>> Author: ritchiem
>> Date: Thu Oct  8 12:44:31 2009
>> New Revision: 823151
>>
>> URL: http://svn.apache.org/viewvc?rev=823151&view=rev
>> Log:
>> Added changeLogToWiki.py that just gives you the change log in wiki format. It defaults
to trunk/java but can take any SVN url via the -s option
>>
>> Added:
>>    qpid/trunk/qpid/review/changeLogToWiki.py   (with props)
>>
>> Added: qpid/trunk/qpid/review/changeLogToWiki.py
>> URL: http://svn.apache.org/viewvc/qpid/trunk/qpid/review/changeLogToWiki.py?rev=823151&view=auto
>> ==============================================================================
>> --- qpid/trunk/qpid/review/changeLogToWiki.py (added)
>> +++ qpid/trunk/qpid/review/changeLogToWiki.py Thu Oct  8 12:44:31 2009
>> @@ -0,0 +1,85 @@
>> +#!/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
>> +from xml.dom.minidom import parse, parseString
>> +
>> +prereqs = ["tr", "svn", "xsltproc", "sed", "grep", "wget"]
>> +
>> +apacheSVN="https://svn.apache.org/repos/asf/qpid/trunk/qpid/java"
>> +
>> +svncmd = "svn log %s --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'"
>> +
>> +
>> +def get_commits(revision):
>> +    (stdout, stdin) = popen2(svncmd % (options.repo,revision))
>> +    return add_jira_status(stdout.read())
>> +
>> +def add_jira_status(commits):
>> +    commit_lines = commits.split("\n")
>> +    new_commits = []
>> +    for commit in commit_lines:
>> +        if re.match(".*https://issues.apache.org/.*", commit):
>> +            jira = re.findall("QPID-[0-9]*", commit)[0]
>> +            jira_xml_url = "http://issues.apache.org/jira/si/jira.issueviews:issue-xml/%s/%s.xml"
% (jira, jira)
>> +            (stdout, stdin) = popen2("wget -q -O - %s" % jira_xml_url)
>> +
>> +            jira_dom = parse(stdout)
>> +            status = jira_dom.getElementsByTagName("status")[0]
>> +            new_commits.append("%s %s | " % (commit, status.lastChild.data))
>> +        else:
>> +            new_commits.append(commit)
>> +
>> +    return "\n".join(new_commits)
>> +
>> +
>> +def main():
>> +    global options
>> +    parser = OptionParser()
>> +    parser.add_option("-r", "--revision", dest="revision", action="store",
>> +                      type="string",
>> +                      help="The first revision to generate logs for")
>> +
>> +    parser.add_option("-s", "--svn-repo", dest="repo", action="store",
>> +                      default=apacheSVN,
>> +                     type="string",
>> +                      help="Provide a svn repository to process")
>> +
>> +
>> +    (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))
>> +
>> +if __name__ == "__main__":
>> +    main()
>>
>> Propchange: qpid/trunk/qpid/review/changeLogToWiki.py
>> ------------------------------------------------------------------------------
>>    svn:executable = *
>>
>>
>>
>> ---------------------------------------------------------------------
>> Apache Qpid - AMQP Messaging Implementation
>> Project:      http://qpid.apache.org
>> Use/Interact: mailto:commits-subscribe@qpid.apache.org
>>
>>
>
>
>
> --
> Apache Qpid - AMQP, JMS, other messaging love http://qpid.apache.org
> "A witty saying proves nothing" - Voltaire
>
> ---------------------------------------------------------------------
> Apache Qpid - AMQP Messaging Implementation
> Project:      http://qpid.apache.org
> Use/Interact: mailto:dev-subscribe@qpid.apache.org
>
>



-- 
Martin Ritchie

---------------------------------------------------------------------
Apache Qpid - AMQP Messaging Implementation
Project:      http://qpid.apache.org
Use/Interact: mailto:dev-subscribe@qpid.apache.org


Mime
View raw message