You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@qpid.apache.org by Aidan Skinner <ai...@gmail.com> on 2009/10/08 17:39:04 UTC
Re: svn commit: r823151 - /qpid/trunk/qpid/review/changeLogToWiki.py
Is there a reason not to use agenda.py for this?
- Aidan
On Thu, Oct 8, 2009 at 8:44 AM, <ri...@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
Re: svn commit: r823151 - /qpid/trunk/qpid/review/changeLogToWiki.py
Posted by Martin Ritchie <ri...@apache.org>.
2009/10/9 Aidan Skinner <ai...@gmail.com>:
> On Fri, Oct 9, 2009 at 9:14 AM, Martin Ritchie <ri...@apache.org> wrote:
>> 2009/10/8 Aidan Skinner <ai...@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.
>
> I don't think there's a big difference is there? I mean, you could
> just make the Jira bit optional in agenda.py and change the behaviour
> in this way. Nobody's using agenda.py anymore anyway. ;)
If that is the case then I'll just merge it all together.
> - Aidan
> --
> 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
Re: svn commit: r823151 - /qpid/trunk/qpid/review/changeLogToWiki.py
Posted by Aidan Skinner <ai...@gmail.com>.
On Fri, Oct 9, 2009 at 9:14 AM, Martin Ritchie <ri...@apache.org> wrote:
> 2009/10/8 Aidan Skinner <ai...@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.
I don't think there's a big difference is there? I mean, you could
just make the Jira bit optional in agenda.py and change the behaviour
in this way. Nobody's using agenda.py anymore anyway. ;)
- Aidan
--
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
Re: svn commit: r823151 - /qpid/trunk/qpid/review/changeLogToWiki.py
Posted by Martin Ritchie <ri...@apache.org>.
2009/10/8 Aidan Skinner <ai...@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, <ri...@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