Author: onealj Date: Sun Aug 6 23:32:31 2017 New Revision: 1804279 URL: http://svn.apache.org/viewvc?rev=1804279&view=rev Log: add module (copied from Bugzilla component) to changelog of all older releases
Added: poi/site/src/documentation/content/xdocs/status.copy_module_from_bugzilla.py (with props) Modified: poi/site/src/documentation/content/xdocs/status.xml Added: poi/site/src/documentation/content/xdocs/status.copy_module_from_bugzilla.py URL: http://svn.apache.org/viewvc/poi/site/src/documentation/content/xdocs/status.copy_module_from_bugzilla.py?rev=1804279&view=auto ============================================================================== --- poi/site/src/documentation/content/xdocs/status.copy_module_from_bugzilla.py (added) +++ poi/site/src/documentation/content/xdocs/status.copy_module_from_bugzilla.py Sun Aug 6 23:32:31 2017 @@ -0,0 +1,76 @@ +#!/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. + ==================================================================== +""" + +"""This is a really crude throwaway script to get data out of Bugzilla and into status.xml +It'd be far better to have Forrest look this information up whenever the site is rebuilt. +Hopefully this is a one time effort +If a closed bug's component is changed in Bugzilla, this script could be used to keep the changelog in sync. + +requires Python 2.7 or 3.1+ +""" + +import csv, io +import sys +import requests + +def get_fixesbug_attr(line): + pieces = [x.strip() for x in line.split('"')] + bugs = pieces[pieces.index('fixes-bug=') + 1] + return bugs + +def get_bugzilla_bug_to_component(): + bugzilla_bug_to_component = {} + r = requests.get('https://bz.apache.org/bugzilla/buglist.cgi?bug_status=__all__&limit=0&no_redirect=1&product=POI&query_format=advanced&ctype=csv&human=1') + with io.StringIO(r.text) as f: + csvreader = csv.DictReader(f) + for row in csvreader: + bugzilla_bug_to_component[row['Bug ID']] = row['Component'] + return bugzilla_bug_to_component + + +def add_module_frombugzilla_attr(line): + """Add module_frombugzilla="XSSF" to <action ...> tag + + line is a string, containing the <action> opening tag + """ + global bugzilla_bug_to_component + assert 'module-frombugzilla' not in line + bugs = [x.strip() for x in get_fixesbug_attr(line).split(',')] + modules = filter(bool, [bugzilla_bug_to_component.get(bug) for bug in bugs]) + module_frombugzilla = ','.join(modules) + line_with_module_frombugzilla = line.replace('>', ' module="{}">'.format(module_frombugzilla), 1) + return line_with_module_frombugzilla + +def add_module_attribute(inputfile, outputfile): + with open(inputfile, 'r') as infile, open(outputfile, 'w') as outfile: + for line in infile: + if '<action ' in line and ' fixes-bug=' in line and ' module=' not in line: + # append "module="XXXX" at end of <action> tag + outfile.write(add_module_frombugzilla_attr(line)) + else: + outfile.write(line) + + +if __name__ == '__main__': + if len(sys.argv) != 3: + print('Usage: python changelog.py inputfile outputfile') + else: + bugzilla_bug_to_component = get_bugzilla_bug_to_component() + add_module_attribute(sys.argv[1], sys.argv[2]) \ No newline at end of file Propchange: poi/site/src/documentation/content/xdocs/status.copy_module_from_bugzilla.py ------------------------------------------------------------------------------ svn:eol-style = native Propchange: poi/site/src/documentation/content/xdocs/status.copy_module_from_bugzilla.py ------------------------------------------------------------------------------ svn:mime-type = text/x-python --------------------------------------------------------------------- To unsubscribe, e-mail: commits-unsubscr...@poi.apache.org For additional commands, e-mail: commits-h...@poi.apache.org