[Libreoffice-commits] dev-tools.git: 8 commits - esc-reporting/qa-tools.py
Xisco Fauli
anistenis at gmail.com
Mon Jan 22 11:26:08 UTC 2018
esc-reporting/qa-tools.py | 183 ++++++++++++++++++++++++++++------------------
1 file changed, 115 insertions(+), 68 deletions(-)
New commits:
commit b8717de0c8e9d5c67879d8bc1b2b6cd60d345b19
Author: Xisco Fauli <anistenis at gmail.com>
Date: Mon Jan 22 12:22:50 2018 +0100
QA tools: Fix a couple of issues
diff --git a/esc-reporting/qa-tools.py b/esc-reporting/qa-tools.py
index fc6861c..af18df4 100755
--- a/esc-reporting/qa-tools.py
+++ b/esc-reporting/qa-tools.py
@@ -826,7 +826,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
tup = (rowId, reopener6MonthsEmail)
lResults['reopened6Months'].append(tup)
- if isReopened:
+ if isReopened and not autoConfirmed:
if 'reopened' not in lResults:
lResults['reopened'] = []
tup = (rowId, reopenerEmail)
@@ -895,7 +895,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
if 'emptyAlias' not in lResults:
lResults['emptyAlias'] = []
tup = (rowId, '')
- lResults['emptyAlias'].append(rowId)
+ lResults['emptyAlias'].append(tup)
for dKey, dValue in lResults.items():
commit fd7d41aefaceb1b5f48bf30a09fc8ff6040dc8eb
Author: Xisco Fauli <anistenis at gmail.com>
Date: Wed Jan 17 18:42:37 2018 +0100
QA tools: Warn about reopened bugs neved fixed
diff --git a/esc-reporting/qa-tools.py b/esc-reporting/qa-tools.py
index 870b5f3..fc6861c 100755
--- a/esc-reporting/qa-tools.py
+++ b/esc-reporting/qa-tools.py
@@ -389,7 +389,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
actionMail = None
- fixed = False
+ isFixed = False
everConfirmed = False
autoConfirmed = False
autoConfirmMail = ""
@@ -398,8 +398,8 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
oldestVersion = 999999
newerVersion = False
newerVersionMail = ""
- movedToFixed = False
- movedToFixedMail = ""
+ autoFixed = False
+ autoFixedMail = ""
addAssigned = False
addAssignedMail = ""
removeAssigned = False
@@ -414,10 +414,13 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
lastAssignedEmail = ""
patchAdded = False
regressionAdded = False
- isReopened = False
+ isReopened6Months = False
closeDate = None
- reopenerEmail = ""
+ reopener6MonthsEmail = ""
isConfirmed = False
+ movedToFixed = False
+ isReopened = False
+ reopenerEmail = ""
for action in row['history']:
actionMail = action['who']
@@ -500,6 +503,9 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
if rowStatus == 'ASSIGNED' and addedStatus == 'ASSIGNED':
lastAssignedEmail = actionMail
+ if addedStatus == 'REOPENED' and rowStatus == 'REOPENED' and not movedToFixed:
+ isReopened = True
+ reopenerEmail = actionMail
if actionDate >= cfg['reportPeriod'] and not bResolved and isClosed(addedStatus) and isClosed(row['status']):
bResolved = True
@@ -527,13 +533,13 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
statList['weeklyReport']['status_changed'][addedStatus]['author'].append(actionMail)
if actionDate >= cfg['reportPeriod'] and addedStatus == 'RESOLVED_FIXED':
- if fixed:
+ if isFixed:
statList['bugs']['fixed']['id'].pop()
statList['bugs']['fixed']['author'].pop()
statList['bugs']['fixed']['id'].append(rowId)
statList['bugs']['fixed']['author'].append(actionMail)
- fixed = True
+ isFixed = True
#if any other user moves it to open ( ASSIGNED, NEW or REOPENED ),
#the bug is no longer autoconfirmed
@@ -551,14 +557,14 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
autoConfirmed = True
autoConfirmedMail = actionMail
- if movedToFixed and removedStatus == 'RESOLVED':
- movedToFixed = False
+ if autoFixed and removedStatus == 'RESOLVED':
+ autoFixed = False
if actionDate >= cfg['reportPeriod']:
if actionMail == creatorMail and addedStatus == 'RESOLVED_FIXED' and \
rowStatus == 'RESOLVED_FIXED' and 'target:' not in row['whiteboard']:
- movedToFixed = True
- movedToFixedMail = actionMail
+ autoFixed = True
+ autoFixedMail = actionMail
if removedStatus == "ASSIGNED" and addedStatus == "NEW" and \
rowStatus == "NEW" and row['assigned_to'] != 'libreoffice-bugs at lists.freedesktop.org':
@@ -580,12 +586,15 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
newStatus = None
- if change['added'] == 'FIXED' and isOpen(rowStatus):
- closeDate = actionDate
+ if change['added'] == 'FIXED':
+ movedToFixed = True
+ isReopened = False
+ if isOpen(rowStatus):
+ closeDate = actionDate
elif change['removed'] == 'FIXED' and closeDate and actionDate >= cfg['reportPeriod'] and \
(actionDate - closeDate).days > 180:
- isReopened = True
- reopenerEmail = actionMail
+ isReopened6Months = True
+ reopener6MonthsEmail = actionMail
elif change['field_name'] == 'priority':
newPriority = change['added']
@@ -693,7 +702,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
statList['weeklyReport']['comments_count'][commentMail] += 1
if isOpen(rowStatus) and reopened6MonthsComment in comment['text']:
- isReopened = True
+ isReopened6Months = True
#Check for duplicated comments
if idx > 0 and comment['text'] == comments[idx-1]['text']:
@@ -781,11 +790,11 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
tup = (rowId, '')
lResults['regressionAdded'].append(tup)
- if movedToFixed:
- if 'movedToFixed' not in lResults:
- lResults['movedToFixed'] = []
- tup = (rowId, movedToFixedMail)
- lResults['movedToFixed'].append(tup)
+ if autoFixed:
+ if 'autoFixed' not in lResults:
+ lResults['autoFixed'] = []
+ tup = (rowId, autoFixedMail)
+ lResults['autoFixed'].append(tup)
if autoConfirmed:
if 'autoConfirmed' not in lResults:
@@ -811,12 +820,18 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
tup = (rowId, '')
lResults['crashSignature'].append(tup)
- if isReopened:
+ if isReopened6Months:
if 'reopened6Months' not in lResults:
lResults['reopened6Months'] = []
- tup = (rowId, reopenerEmail)
+ tup = (rowId, reopener6MonthsEmail)
lResults['reopened6Months'].append(tup)
+ if isReopened:
+ if 'reopened' not in lResults:
+ lResults['reopened'] = []
+ tup = (rowId, reopenerEmail)
+ lResults['reopened'].append(tup)
+
#In case the reporter assigned the bug to himself at creation time
if addAssigned or (creationDate >= cfg['reportPeriod'] and row['assigned_to'] != 'libreoffice-bugs at lists.freedesktop.org' and \
(rowStatus == 'NEW' or rowStatus == 'UNCONFIRMED')):
commit bd15f4a2631b78ff02b88dd3a5bf8798767ba376
Author: Xisco Fauli <anistenis at gmail.com>
Date: Wed Jan 17 17:02:03 2018 +0100
QA tools: better to show when it was last time modified
diff --git a/esc-reporting/qa-tools.py b/esc-reporting/qa-tools.py
index eba8ef5..870b5f3 100755
--- a/esc-reporting/qa-tools.py
+++ b/esc-reporting/qa-tools.py
@@ -764,7 +764,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
datetime.datetime.strptime(row['last_change_time'], "%Y-%m-%dT%H:%M:%SZ") < cfg['retestPeriod']:
if 'Unconfirmed1Comment' not in lResults:
lResults['Unconfirmed1Comment'] = []
- tup = (rowId, creatorMail)
+ tup = (rowId, row['last_change_time'])
lResults['Unconfirmed1Comment'].append(tup)
for person in row['cc_detail']:
commit fea7e4135133ac6394b7562cedcdde83ff56bb12
Author: Xisco Fauli <anistenis at gmail.com>
Date: Wed Jan 17 14:30:09 2018 +0100
QA tools: Warn if regression keyword is added without anything else
diff --git a/esc-reporting/qa-tools.py b/esc-reporting/qa-tools.py
index 65161c7..eba8ef5 100755
--- a/esc-reporting/qa-tools.py
+++ b/esc-reporting/qa-tools.py
@@ -294,7 +294,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
statList['bugs']['all']['status'][rowStatus] += 1
- keywords = row['keywords']
+ rowKeywords = row['keywords']
creatorMail = row['creator']
@@ -368,7 +368,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
if isOpen(rowStatus) and len(row['cc']) >= 10:
statList['MostCCBugs'][rowId] = util_create_bug(
- row['summary'], row['component'], row['version'], keywords, creationDate, len(row['cc']))
+ row['summary'], row['component'], row['version'], rowKeywords, creationDate, len(row['cc']))
rowDupeOf = util_check_duplicated(rowId)
if rowDupeOf:
@@ -413,6 +413,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
bResolved = False
lastAssignedEmail = ""
patchAdded = False
+ regressionAdded = False
isReopened = False
closeDate = None
reopenerEmail = ""
@@ -545,7 +546,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
#from non-open status and never confirmed by someone else.
#Ignore bisected bugs or some trusted authors defined in configQA.json
if actionDate >= cfg['reportPeriod'] and not everConfirmed and actionMail == creatorMail and \
- isOpen(rowStatus) and isOpen(addedStatus) and 'bisected' not in keywords and \
+ isOpen(rowStatus) and isOpen(addedStatus) and 'bisected' not in rowKeywords and \
creatorMail not in cfg['configQA']['ignore']['autoConfirmed']:
autoConfirmed = True
autoConfirmedMail = actionMail
@@ -607,7 +608,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
if keyword in keywords_list:
util_increase_user_actions(statList, key, actionMail, bugTargets, 'keyword_added', actionDate)
- if actionDate >= cfg['reportPeriod'] and keyword in row['keywords']:
+ if actionDate >= cfg['reportPeriod'] and keyword in rowKeywords:
statList['weeklyReport']['keyword_added'][keyword]['id'].append(rowId)
statList['weeklyReport']['keyword_added'][keyword]['author'].append(actionMail)
statList['weeklyReport']['keyword_added'][keyword]['status'][rowStatus] += 1
@@ -615,12 +616,15 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
if keyword == 'patch':
patchAdded = True
+ if keyword == 'regression':
+ regressionAdded = True
+
keywordsRemoved = change['removed'].split(", ")
for keyword in keywordsRemoved:
if keyword in keywords_list:
util_increase_user_actions(statList, key, actionMail, bugTargets, 'keyword_removed', actionDate)
- if actionDate >= cfg['reportPeriod'] and keyword not in row['keywords']:
+ if actionDate >= cfg['reportPeriod'] and keyword not in rowKeywords:
statList['weeklyReport']['keyword_removed'][keyword]['id'].append(rowId)
statList['weeklyReport']['keyword_removed'][keyword]['author'].append(actionMail)
@@ -738,7 +742,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
statList['tags']['removeObsolete'].add(comments[-1]["id"])
else:
if datetime.datetime.strptime(row['last_change_time'], "%Y-%m-%dT%H:%M:%SZ") < cfg['untouchedPeriod'] and \
- rowStatus == 'NEW' and 'needsUXEval' not in row['keywords'] and 'easyHack' not in row['keywords'] and \
+ rowStatus == 'NEW' and 'needsUXEval' not in rowKeywords and 'easyHack' not in rowKeywords and \
row['component'] != 'Documentation' and (row['product'] == 'LibreOffice' or \
row['product'] == 'Impress Remote') and row['severity'] != 'enhancement':
statList['massping']['untouched'].append(rowId)
@@ -768,6 +772,15 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
if commentMail == email or actionMail == email:
util_check_bugzilla_mail(statList, email, person['real_name'])
+ if (isOpen(rowStatus) or rowStatus == 'UNCONFIRMED') and regressionAdded and \
+ 'bibisectRequest' not in rowKeywords and 'bibisected' not in rowKeywords and \
+ 'bisected' not in rowKeywords and 'preBibisect' not in rowKeywords and \
+ 'bibisectNotNeeded' not in rowKeywords and 'notBibisectable' not in rowKeywords:
+ if 'regressionAdded' not in lResults:
+ lResults['regressionAdded'] = []
+ tup = (rowId, '')
+ lResults['regressionAdded'].append(tup)
+
if movedToFixed:
if 'movedToFixed' not in lResults:
lResults['movedToFixed'] = []
commit 7bc7c5f27269cf7bd80907d2317fe067980f44b9
Author: Xisco Fauli <anistenis at gmail.com>
Date: Wed Jan 17 13:12:56 2018 +0100
QA tools: fix different issues with duplicate bugs
diff --git a/esc-reporting/qa-tools.py b/esc-reporting/qa-tools.py
index 43283d4..65161c7 100755
--- a/esc-reporting/qa-tools.py
+++ b/esc-reporting/qa-tools.py
@@ -254,6 +254,19 @@ def util_increase_user_actions(statList, bug, mail, targets, action, actionTime)
statList['period'][period]['people'][mail][action] += 1
statList['period'][period]['people'][mail]['bugs'].append(bug)
+def util_check_duplicated(bugID, isFirst=True):
+ rowDupeOf = bugzillaData['bugs'][str(bugID)]['dupe_of']
+ if rowDupeOf:
+ if str(rowDupeOf) in bugzillaData['bugs']:
+ return util_check_duplicated(rowDupeOf, False)
+ else:
+ return bugID
+ else:
+ if isFirst:
+ return None
+ else:
+ return bugID
+
def analyze_bugzilla(statList, bugzillaData, cfg):
print("Analyze bugzilla\n", end="", flush=True)
statNewDate = statList['stat']['newest']
@@ -357,8 +370,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
statList['MostCCBugs'][rowId] = util_create_bug(
row['summary'], row['component'], row['version'], keywords, creationDate, len(row['cc']))
-
- rowDupeOf = row['dupe_of']
+ rowDupeOf = util_check_duplicated(rowId)
if rowDupeOf:
if rowDupeOf not in statList['dupesBugs']:
statList['dupesBugs'][rowDupeOf] = []
@@ -373,8 +385,7 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
bugzillaData['bugs'][str(rowDupeOf)]['version'],
bugzillaData['bugs'][str(rowDupeOf)]['keywords'],
datetime.datetime.strptime(
- bugzillaData['bugs'][str(rowDupeOf)]['creation_time'], "%Y-%m-%dT%H:%M:%SZ"),
- 1)
+ bugzillaData['bugs'][str(rowDupeOf)]['creation_time'], "%Y-%m-%dT%H:%M:%SZ"), 1)
actionMail = None
@@ -858,21 +869,6 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
tup = (rowId, '')
lResults['emptyAlias'].append(rowId)
- output = ''
- for k, v in statList['dupesBugs'].items():
- if k in statList['MostDupeBugs']:
- if len(v) >= 3:
- statList['MostDupeBugs'][k]['count'] = len(v)
- else:
- del statList['MostDupeBugs'][k]
- for dupeBug in v:
- if dupeBug in statList['dupesBugs']:
- output += '\n- Duplicates of ' + str(k)
- for subDupeBug in statList['dupesBugs'][dupeBug]:
- output += '\n * ' + urlShowBug + str(subDupeBug)
- if output:
- output = '=== DupeOfDupe ===' + output
- print(output)
for dKey, dValue in lResults.items():
if dValue:
@@ -1003,6 +999,14 @@ def util_print_QA_line_created(fp, dValue ):
print(' {}: {}'.format(k, v), file=fp)
def create_wikimedia_table_mostCCBugs(cfg, statList):
+
+ for k, v in statList['dupesBugs'].items():
+ if k in statList['MostDupeBugs']:
+ if len(v) >= 3:
+ statList['MostDupeBugs'][k]['count'] = len(v)
+ else:
+ del statList['MostDupeBugs'][k]
+
for nameList in ['MostCCBugs', 'MostDupeBugs']:
print('Creating wikimedia table for ' + nameList)
output = ""
@@ -1012,16 +1016,14 @@ def create_wikimedia_table_mostCCBugs(cfg, statList):
output += '{{Menu.QA}}\n'
output += '\n'
table = []
+ headers = ['Id', 'Summary', 'Component', 'Version', 'isRegression', 'isBisected',
+ 'isEasyHack', 'haveBackTrace', 'Reported']
if nameList == 'MostCCBugs':
- headers = ['Id', 'Summary', 'Component', 'Version', 'isRegression', 'isBisected',
- 'isEasyHack', 'haveBackTrace', 'Reported', 'Total CC']
-
+ headers.append('Total CC')
output += '{} bugs have 10 or more emails in the CC list. (sorted in alphabetical order by number of users)\n'.format(
len(statList['MostCCBugs']))
else:
- headers = ['Id', 'Summary', 'Component', 'Version', 'isRegression', 'isBisected',
- 'isEasyHack', 'haveBackTrace', 'Total Duplicates']
-
+ headers.append('Total Duplicates')
output += '{} open bugs have 3 or more duplicates. (sorted in alphabetical order by number of duplicates)\n'.format(
len(statList['MostDupeBugs']))
commit ec9c9e898109b0f24914820c0f945d8b2110df30
Author: Xisco Fauli <anistenis at gmail.com>
Date: Wed Jan 17 10:34:04 2018 +0100
QA tools: make sure bugs reopened after 6 months remain closed
diff --git a/esc-reporting/qa-tools.py b/esc-reporting/qa-tools.py
index 15df883..43283d4 100755
--- a/esc-reporting/qa-tools.py
+++ b/esc-reporting/qa-tools.py
@@ -69,6 +69,8 @@ needInfoFollowUpPingComment = "Dear Bug Submitter,\n\nPlease read this message i
moveToNeedInfoComment = "I have set the bug's status to 'NEEDINFO'"
+reopened6MonthsComment = "This bug has been in RESOLVED FIXED status for more than 6 months."
+
def util_convert_days_to_datetime(cfg, period):
return cfg['todayDate'] - datetime.timedelta(days= period)
@@ -675,6 +677,9 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
statList['weeklyReport']['comments_count'][commentMail] = 0
statList['weeklyReport']['comments_count'][commentMail] += 1
+ if isOpen(rowStatus) and reopened6MonthsComment in comment['text']:
+ isReopened = True
+
#Check for duplicated comments
if idx > 0 and comment['text'] == comments[idx-1]['text']:
statList['tags']['addObsolete'].add(comment["id"])
commit c900d6ca8efba61e491cc1464c8c9ad3a29fe988
Author: Xisco Fauli <anistenis at gmail.com>
Date: Tue Jan 16 20:10:33 2018 +0100
QA tools: some changes to the weekly report
diff --git a/esc-reporting/qa-tools.py b/esc-reporting/qa-tools.py
index 36a21fa..15df883 100755
--- a/esc-reporting/qa-tools.py
+++ b/esc-reporting/qa-tools.py
@@ -147,6 +147,7 @@ def util_create_statList():
'platform': {},
'status': {s:0 for s in statutes_list},
'resolution': {},
+ 'unconfirmed': []
},
'closed':
{
@@ -168,7 +169,8 @@ def util_create_statList():
},
'weeklyReport':
{
- 'comments_count': 0,
+ 'newUsers': {},
+ 'comments_count': {},
'crashSignatures': {},
'status_changed': {s: {'id':[], 'author': [] } for s in statutes_list},
'keyword_added': {k: {'id':[], 'author': [], 'status': {s:0 for s in statutes_list}} for k in keywords_list},
@@ -195,7 +197,6 @@ def util_create_statList():
'removeObsolete': set()
},
'people': {},
- 'newUsersPeriod': {},
'targets': {t:{'count':0, 'people':{}} for t in targets_list},
'period': {p:{'count':0, 'people':{}} for p in periods_list},
'MostCCBugs': {},
@@ -314,6 +315,9 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
statList['bugs']['created']['id'].append(rowId)
statList['bugs']['created']['author'].append(creatorMail)
+ if rowStatus == 'UNCONFIRMED':
+ statList['bugs']['created']['unconfirmed'].append(rowId)
+
week = str(creationDate.year) + '-' + str(creationDate.strftime("%V"))
if week not in statList['bugs']['created']['split_week']:
statList['bugs']['created']['split_week'][week] = 0
@@ -667,7 +671,9 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
util_increase_user_actions(statList, rowId, commentMail, bugTargets, 'comments', commentDate)
if commentDate >= cfg['reportPeriod']:
- statList['weeklyReport']['comments_count'] += 1
+ if commentMail not in statList['weeklyReport']['comments_count']:
+ statList['weeklyReport']['comments_count'][commentMail] = 0
+ statList['weeklyReport']['comments_count'][commentMail] += 1
#Check for duplicated comments
if idx > 0 and comment['text'] == comments[idx-1]['text']:
@@ -874,8 +880,8 @@ def analyze_bugzilla(statList, bugzillaData, cfg):
if not statList['people'][k]['name']:
statList['people'][k]['name'] = statList['people'][k]['email'].split('@')[0]
- if statList['people'][k]['oldest'] >= cfg['newUserPeriod']:
- statList['newUsersPeriod'][k] = statList['people'][k]
+ if statList['people'][k]['oldest'] >= cfg['reportPeriod']:
+ statList['weeklyReport']['newUsers'][k] = statList['people'][k]
if statList['people'][k]['oldest'] >= cfg['newUserPeriod'] and len(statList['people'][k]['bugs']) >= 3 and \
statList['people'][k]['email'] not in cfg['configQA']['ignore']['newContributors']:
print('\n=== New contributor: '+ statList['people'][k]['name'] + " (" + statList['people'][k]['email'] + ")")
@@ -926,7 +932,7 @@ def util_print_QA_line_weekly(fp, statList, dValue, action, isMetabug=False):
d_view = [(v, k) for k, v in my_dict.items()]
d_view.sort(reverse=True)
- usersString = '\tDone by: '
+ usersString = '\t\t+ Done by: '
for i1,i2 in d_view:
try:
@@ -937,14 +943,14 @@ def util_print_QA_line_weekly(fp, statList, dValue, action, isMetabug=False):
print(usersString[:-2], file=fp)
print(file=fp)
-def util_create_short_url(fp, lBugs):
+def util_create_short_url(fp, lBugs, text='Link'):
url = "https://bugs.documentfoundation.org/buglist.cgi?bug_id="
for bug in lBugs:
url += str(bug) + "%2C"
url = url[:-3]
shortener = Shortener('Tinyurl', timeout=9000)
- print('\tLink: ' + shortener.short(url), file=fp)
+ print('\t\t+ ' + text + ': ' + shortener.short(url), file=fp)
def util_print_QA_line_blog(fp, statList, dValue, total_count):
@@ -1217,7 +1223,7 @@ def users_Report(statList):
print('Users report from {} to {}'.format(cfg['newUserPeriod'].strftime("%Y-%m-%d"), statList['stat']['newest']))
#fp = open('/tmp/users_report.txt', 'w', encoding='utf-8')
- print('{} new users in the last {} days'.format(len(statList['newUsersPeriod']), newUsersPeriod[:-1]))
+ print('{} new users in the last {} days'.format(len(statList['newUsersPeriod']), cfg['newUserPeriod']))
for v,k in statList['newUsersPeriod'].items():
print(v)
@@ -1328,10 +1334,15 @@ def weekly_Report(statList) :
statList['bugs']['created']['status']['UNCONFIRMED'],
statList['bugs']['all']['status']['UNCONFIRMED']), file=fp)
- util_create_short_url(fp, statList['bugs']['created']['id'])
+ util_create_short_url(fp, statList['bugs']['created']['id'], 'Created bugs')
+ util_create_short_url(fp, statList['bugs']['created']['unconfirmed'], 'Still unconfirmed bugs')
print(file=fp)
- print(' * {} comments have been written.'.format(statList['weeklyReport']['comments_count']), file=fp)
+ print(' * {} comments have been written by {} users.'.format(
+ sum(statList['weeklyReport']['comments_count'].values()), len(statList['weeklyReport']['comments_count'])), file=fp)
+ print(file=fp)
+
+ print(' * {} new users have signed up to Bugzilla.'.format(len(statList['weeklyReport']['newUsers'])), file=fp)
print(file=fp)
if statList['weeklyReport']['status_changed']:
commit a6299eb1738ef30d025e3f28f0f31570b3ea8898
Author: Xisco Fauli <anistenis at gmail.com>
Date: Tue Jan 16 18:42:06 2018 +0100
QA tools: fix a couple of problems
diff --git a/esc-reporting/qa-tools.py b/esc-reporting/qa-tools.py
index 35d490b..36a21fa 100755
--- a/esc-reporting/qa-tools.py
+++ b/esc-reporting/qa-tools.py
@@ -896,7 +896,8 @@ def util_print_QA_line_weekly(fp, statList, dValue, action, isMetabug=False):
if isMetabug:
dValueAux = {}
for key, value in dValue.items():
- if int(key) in statList['bugs']['metabugAlias']:
+ if int(key) in statList['bugs']['metabugAlias'] and \
+ statList['bugs']['metabugAlias'][int(key)]:
dValueAux[statList['bugs']['metabugAlias'][int(key)][0]] = dValue[key]
dValue = dValueAux
@@ -1309,7 +1310,7 @@ def Blog_Report(statList) :
print(file=fp)
print('* Statuses of bugs moved to resolved', file=fp)
- util_print_QA_line_created(fp, statList['bugs']['moveToClosed']['status'])
+ util_print_QA_line_created(fp, statList['bugs']['closed']['status'])
fp.close()
More information about the Libreoffice-commits
mailing list