diff options
Diffstat (limited to 'REORG.TODO/scripts/list-fixed-bugs.py')
-rwxr-xr-x | REORG.TODO/scripts/list-fixed-bugs.py | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/REORG.TODO/scripts/list-fixed-bugs.py b/REORG.TODO/scripts/list-fixed-bugs.py new file mode 100755 index 0000000000..72f9446ec0 --- /dev/null +++ b/REORG.TODO/scripts/list-fixed-bugs.py @@ -0,0 +1,64 @@ +#!/usr/bin/python3 +# Copyright (C) 2015-2017 Free Software Foundation, Inc. +# This file is part of the GNU C Library. +# +# The GNU C Library is free software; you can redistribute it and/or +# modify it under the terms of the GNU Lesser General Public +# License as published by the Free Software Foundation; either +# version 2.1 of the License, or (at your option) any later version. +# +# The GNU C Library is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +# Lesser General Public License for more details. +# +# You should have received a copy of the GNU Lesser General Public +# License along with the GNU C Library; if not, see +# <http://www.gnu.org/licenses/>. + +"""List fixed bugs for the NEWS file. + +This script takes a version number as input and generates a list of +bugs marked as FIXED with that milestone, to be added to the NEWS file +just before release. The output is in UTF-8. +""" + +import argparse +import json +import sys +import textwrap +import urllib.request + + +def get_parser(): + """Return an argument parser for this module.""" + parser = argparse.ArgumentParser(description=__doc__) + parser.add_argument('version', + help='Release version to look up') + return parser + + +def list_fixed_bugs(version): + """List the bugs fixed in a given version.""" + url = ('https://sourceware.org/bugzilla/rest.cgi/bug?product=glibc' + '&resolution=FIXED&target_milestone=%s' + '&include_fields=id,component,summary' % version) + response = urllib.request.urlopen(url) + json_data = response.read().decode('utf-8') + data = json.loads(json_data) + for bug in data['bugs']: + desc = '[%d] %s: %s' % (bug['id'], bug['component'], bug['summary']) + desc = textwrap.fill(desc, width=76, initial_indent=' ', + subsequent_indent=' ') + '\n' + sys.stdout.buffer.write(desc.encode('utf-8')) + + +def main(argv): + """The main entry point.""" + parser = get_parser() + opts = parser.parse_args(argv) + list_fixed_bugs(opts.version) + + +if __name__ == '__main__': + main(sys.argv[1:]) |