scripts/bugcommenters-by-target.py | 39 +++++++++++++++++++++++++++++++++++-- 1 file changed, 37 insertions(+), 2 deletions(-)
New commits: commit 95e494703c62c7e5dd29a8c36b2ef7f25fa2b88b Author: Robinson Tryon <[email protected]> Date: Wed Sep 17 10:54:46 2014 -0500 bugcommenters: Add optional 'wiki' format (70col wrap, group by #) This commit adds support for a new 'wiki' format for the bugcommenters. Users are grouped by total # of bug comments, and output is wrapped to 70cols max. USAGE: ./bugcommenters-by-target.py 4.3.2 wiki This format is used on our Releases pages on the wiki. Example: https://wiki.documentfoundation.org/Releases/4.3.2/RC2#Thanks_to_all_who_took_part_in_handling_the_issues Change-Id: I91754a9e951548e59fb307b1cb9584344cdfa3f9 diff --git a/scripts/bugcommenters-by-target.py b/scripts/bugcommenters-by-target.py index f03b38e..9998072 100755 --- a/scripts/bugcommenters-by-target.py +++ b/scripts/bugcommenters-by-target.py @@ -9,6 +9,7 @@ import sys import re +import textwrap from urllib.request import urlopen, URLError from io import BytesIO @@ -59,8 +60,42 @@ def get_target_toucher_counts(target): touch_counts[toucher]=1 touch_counts_sorted = reversed(sorted((count, name) for (name, count) in touch_counts.items())) return touch_counts_sorted - -if __name__ == '__main__': + +# Print one line (wrapped to 70 cols) for each set of users who made +# the same # of bug comments. +# +# (We use this format for Release pages on the wiki) +def print_for_wiki(): + counts = {} + for count, name in get_target_toucher_counts(sys.argv[1]): + if name == 'Commit Notification': + # Throw out these lines + pass + elif count in counts: + counts[count] += ", " + name + else: + counts[count] = name + + # Sort dictionary keys from largest # of comments to least and + # print them out. + pad = 5 + + # Text body is indented 1 additional char from comment count. + tw = textwrap.TextWrapper(subsequent_indent=" " * (pad + 1)) + for count, names in sorted(counts.items(), reverse=True): + print("{n:{width}} ".format(n=count, width=pad) + tw.fill(names)) + +# Print one line for each commenter. +def print_regular(): for touch_count in get_target_toucher_counts(sys.argv[1]): if not touch_count[1] == 'Commit Notification': print("%5d %s" % (touch_count[0], touch_count[1])) + +if __name__ == '__main__': + if(len(sys.argv) > 2 and + sys.argv[2] == "wiki"): + print_for_wiki() + elif(len(sys.argv) > 1): + print_regular() + else: + print('Error: Please provide a LibreOffice version!') _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
