esc-reporting/esc-analyze.py | 99 +++++++++++++++++++++++++++++++++---------- esc-reporting/esc-report.py | 25 ++++++++++ 2 files changed, 101 insertions(+), 23 deletions(-)
New commits: commit 5da9dd141f959bed28d880f44672d9b97dda4931 Author: jan Iversen <[email protected]> Date: Tue Nov 15 12:25:33 2016 +0100 added distribution analysis to esc-reporting diff --git a/esc-reporting/esc-analyze.py b/esc-reporting/esc-analyze.py index 6dc2c0a..4882962 100755 --- a/esc-reporting/esc-analyze.py +++ b/esc-reporting/esc-analyze.py @@ -148,6 +148,22 @@ def util_create_statList(): '3month': {'ABANDONED': 0, 'MERGED': 0, 'NEW': 0, 'reviewed': 0, 'total': 0}, '1month': {'ABANDONED': 0, 'MERGED': 0, 'NEW': 0, 'reviewed': 0, 'total': 0}, '1week': {'ABANDONED': 0, 'MERGED': 0, 'NEW': 0, 'reviewed': 0, 'total': 0}}}, + 'trendCommitter': {'1year': {'1-5': 0, '6-25': 0, '26-50': 0, '51-100': 0, '100+': 0, 'total': 0}, + '3month': {'1-5': 0, '6-25': 0, '26-50': 0, '51-100': 0, '100+': 0, 'total': 0}, + '1month': {'1-5': 0, '6-25': 0, '26-50': 0, '51-100': 0, '100+': 0, 'total': 0}, + '1week': {'1-5': 0, '6-25': 0, '26-50': 0, '51-100': 0, '100+': 0, 'total': 0}}, + 'trendContributor': {'1year': {'1-5': 0, '6-25': 0, '26-50': 0, '51-100': 0, '100+': 0, 'total': 0}, + '3month': {'1-5': 0, '6-25': 0, '26-50': 0, '51-100': 0, '100+': 0, 'total': 0}, + '1month': {'1-5': 0, '6-25': 0, '26-50': 0, '51-100': 0, '100+': 0, 'total': 0}, + '1week': {'1-5': 0, '6-25': 0, '26-50': 0, '51-100': 0, '100+': 0, 'total': 0}}, + 'trendQA': {'1year': {'1-5': 0, '6-25': 0, '26-50': 0, '51-100': 0, '100+': 0, 'total': 0}, + '3month': {'1-5': 0, '6-25': 0, '26-50': 0, '51-100': 0, '100+': 0, 'total': 0}, + '1month': {'1-5': 0, '6-25': 0, '26-50': 0, '51-100': 0, '100+': 0, 'total': 0}, + '1week': {'1-5': 0, '6-25': 0, '26-50': 0, '51-100': 0, '100+': 0, 'total': 0}}, + 'trendUI': {'1year': {'1-5': 0, '6-25': 0, '26-50': 0, '51-100': 0, '100+': 0, 'total': 0}, + '3month': {'1-5': 0, '6-25': 0, '26-50': 0, '51-100': 0, '100+': 0, 'total': 0}, + '1month': {'1-5': 0, '6-25': 0, '26-50': 0, '51-100': 0, '100+': 0, 'total': 0}, + '1week': {'1-5': 0, '6-25': 0, '26-50': 0, '51-100': 0, '100+': 0, 'total': 0}}, 'ui': {'1year': {'added': 0, 'removed': 0, 'commented': 0, 'total': 0}, '3month': {'added': 0, 'removed': 0, 'commented': 0, 'total': 0}, '1month': {'added': 0, 'removed': 0, 'commented': 0, 'total': 0}, @@ -190,7 +206,7 @@ def util_build_diff(newList, oldList): else: result[i] = util_build_diff(newList[i], oldList[i]) else: - result[i] = newList[i] - oldList[i] + result[i] = newList[i] - oldList[i] return result @@ -370,6 +386,44 @@ def analyze_myfunc(statList, openhubData, gerritData, gitData, bugzillaData, cfg +def util_build_trend(cnt): + if cnt == 0: + return None + elif cnt <= 5: + return '1-5' + elif cnt <= 25: + return '6-25' + elif cnt <= 50: + return '26-50' + elif cnt <= 100: + return '51-100' + return '100+' + + + +def analyze_trend(statList, cfg): + for email in statList['people']: + person = statList['people'][email] + + for inx in '1year', '3month', '1month', '1week': + x = util_build_trend(person['commits'][inx]['merged']) + if not x is None: + if person['isCommitter']: + statList['data']['trendCommitter'][inx][x] += 1 + statList['data']['trendCommitter'][inx]['total'] += 1 + elif person['isContributor']: + statList['data']['trendContributor'][inx][x] += 1 + statList['data']['trendContributor'][inx]['total'] += 1 + x = util_build_trend(person['qa'][inx]['total']) + if not x is None: + statList['data']['trendQA'][inx][x] += 1 + statList['data']['trendQA'][inx]['total'] += 1 + x = util_build_trend(person['ui'][inx]['total']) + if not x is None: + statList['data']['trendUI'][inx][x] += 1 + statList['data']['trendUI'][inx]['total'] += 1 + + def analyze_final(statList, cfg): print("Analyze final") statList['addDate'] = datetime.date.today().strftime('%Y-%m-%d') @@ -381,6 +435,7 @@ def analyze_final(statList, cfg): person['newestCommit'] = person['newestCommit'].strftime("%Y-%m-%d") person['prevCommit'] = person['prevCommit'].strftime("%Y-%m-%d") + analyze_trend(statList, cfg) myDay = cfg['nowDate'] x = (myDay - datetime.timedelta(days=7)).strftime('%Y-%m-%d') weekList = util_load_file(cfg['homedir'] + 'archive/stats_' + x + '.json') @@ -458,29 +513,27 @@ def runBackLoad(cfg): -def runUpgrade(cfg): - for i in range(40,46): - w = 'week_2016_' + str(i) + '.json' - print('upgrading ' + w) - statList = util_load_data_file(cfg['homedir'] + 'archiveOLD_2/' + w) - genFormat = util_load_data_file(cfg['homedir'] + 'weeks/' + w) +def runUpgrade(cfg, fileList): + openhubData = util_load_data_file(cfg['homedir'] + 'dump/openhub_dump.json') + bugzillaData = util_load_data_file(cfg['homedir'] + 'dump/bugzilla_dump.json') + gerritData = util_load_data_file(cfg['homedir'] + 'dump/gerrit_dump.json') + gitData = util_load_data_file(cfg['homedir'] + 'dump/git_dump.json') - x = {'1month': {'#': statList['data']['commits']['1month']['committer']}, - '1week': {'#': statList['data']['commits']['1week']['committer']}, - '1year': {'#': statList['data']['commits']['1year']['committer']}, - '3month': {'#': statList['data']['commits']['3month']['committer']}} - statList['data']['commits']['committer'] = x - x = {'1month': {'#': statList['data']['commits']['1month']['contributor']}, - '1week': {'#': statList['data']['commits']['1week']['contributor']}, - '1year': {'#': statList['data']['commits']['1year']['contributor']}, - '3month': {'#': statList['data']['commits']['3month']['contributor']}} - statList['data']['commits']['contributor'] = x - statList['data']['ui'] = genFormat['data']['ui'] - statList['data']['qa'] = genFormat['data']['qa'] - if 'lists' in statList: - del statList['lists'] + statList = util_load_data_file(cfg['homedir'] + 'weeks/week_2016_44.json') + cfg['nowDate'] = datetime.datetime(year=2016, month=11, day=9) + for i in fileList: + cfg['nowDate'] = cfg['nowDate'] + datetime.timedelta(days=1) + cfg['cutDate'] = cfg['nowDate'] + cfg['1weekDate'] = cfg['nowDate'] - datetime.timedelta(days=7) + cfg['1monthDate'] = cfg['nowDate'] - datetime.timedelta(days=30) + cfg['3monthDate'] = cfg['nowDate'] - datetime.timedelta(days=90) + cfg['1yearDate'] = cfg['nowDate'] - datetime.timedelta(days=365) + week = util_load_data_file(cfg['homedir'] + 'archive/' + i) + analyze_trend(week, cfg) + week['diff'] = util_build_diff(week['data'], statList['data']) + del week['people'] + util_dump_file(cfg['homedir'] + 'archive/' + i, week) - util_dump_file(cfg['homedir'] + 'weeks/' + w, statList) @@ -489,6 +542,6 @@ if __name__ == '__main__': if sys.argv[1] == 'backload': runBackLoad(runCfg(sys.platform)) elif sys.argv[1] == 'upgrade': - runUpgrade(runCfg(sys.platform)) + runUpgrade(runCfg(sys.platform), sys.argv[2:]) else: runLoad(runCfg(sys.platform)) diff --git a/esc-reporting/esc-report.py b/esc-reporting/esc-report.py index 3762297..6a207ad 100755 --- a/esc-reporting/esc-report.py +++ b/esc-reporting/esc-report.py @@ -281,6 +281,17 @@ def report_mentoring(statList, openhubData, gerritData, gitData, bugzillaData, c print(util_build_matrix('committer...', xRow, 'committer', statList), end='', file=fp) print(util_build_matrix('contributor...', xRow, 'contributor', statList), end='', file=fp) + print(" + Distribution of people based on number of merged patches:", file=fp) + xRow = [{'db': 'trendCommitter', 'tag': '1-5', 'text': '1-5'}, + {'db': 'trendCommitter', 'tag': '6-25', 'text': '6-25'}, + {'db': 'trendCommitter', 'tag': '26-50', 'text': '26-50'}, + {'db': 'trendCommitter', 'tag': '51-100', 'text': '51-100'}, + {'db': 'trendCommitter', 'tag': '100+', 'text': '100+'}] + print(util_build_matrix('Committer distribution', xRow, None, statList), end='', file=fp) + for i in xRow: + i['db'] = 'trendContributor' + print(util_build_matrix('Contributor distribution', xRow, None, statList), end='', file=fp) + print(" + easyHack statistics:\n ", end='', file=fp) for i1 in 'needsDevEval', 'needsUXEval', 'cleanup_comments', 'total', 'assigned', 'open': print(i1 + ' ' + util_build_escNumber('easyhacks', i1, statList) + ' ', end="", file=fp) @@ -358,6 +369,13 @@ def report_ui(statList, openhubData, gerritData, gitData, bugzillaData, cfg): {'db': 'ui', 'tag': 'commented', 'text': 'commented'}, {'db': 'ui', 'tag': 'removed', 'text': 'removed'}] print(util_build_matrix('BZ changes', xRow, None, statList), end='', file=fp) + print(" + Distribution of people based on number of changes:", file=fp) + xRow = [{'db': 'trendUI', 'tag': '1-5', 'text': '1-5'}, + {'db': 'trendUI', 'tag': '6-25', 'text': '6-25'}, + {'db': 'trendUI', 'tag': '26-50', 'text': '26-50'}, + {'db': 'trendUI', 'tag': '51-100', 'text': '51-100'}, + {'db': 'trendUI', 'tag': '100+', 'text': '100+'}] + print(util_build_matrix('distribution', xRow, None, statList), end='', file=fp) print(" + top 10 contributors:", file=fp) for i in range(0, 10): @@ -401,6 +419,13 @@ def report_qa(statList, openhubData, gerritData, gitData, bugzillaData, cfg): {'db': 'qa', 'tag': 'commented', 'text': 'commented'}, {'db': 'qa', 'tag': 'total', 'text': 'total'}] print(util_build_matrix('BZ changes', xRow, None, statList), end='', file=fp) + print(" + Distribution of people based on number of changes:", file=fp) + xRow = [{'db': 'trendQA', 'tag': '1-5', 'text': '1-5'}, + {'db': 'trendQA', 'tag': '6-25', 'text': '6-25'}, + {'db': 'trendQA', 'tag': '26-50', 'text': '26-50'}, + {'db': 'trendQA', 'tag': '51-100', 'text': '51-100'}, + {'db': 'trendQA', 'tag': '100+', 'text': '100+'}] + print(util_build_matrix('distribution', xRow, None, statList), end='', file=fp) print("\n + top 10 contributors:", file=fp) for i in range(0, 10): _______________________________________________ Libreoffice-commits mailing list [email protected] https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
