[Libreoffice-commits] dev-tools.git: qa/bugzillaChecker.py qa/common.py qa/createWikiStats.py
Xisco Fauli (via logerrit)
logerrit at kemper.freedesktop.org
Fri Nov 29 13:30:44 UTC 2019
qa/bugzillaChecker.py | 41 ++++++++++++++++++++++++++++++++++++-----
qa/common.py | 13 +++++++++++++
qa/createWikiStats.py | 15 +--------------
3 files changed, 50 insertions(+), 19 deletions(-)
New commits:
commit c623f77a3b60f1f6c8945dca57ab5274adff508c
Author: Xisco Fauli <xiscofauli at libreoffice.org>
AuthorDate: Fri Nov 29 13:57:20 2019 +0100
Commit: Xisco Fauli <xiscofauli at libreoffice.org>
CommitDate: Fri Nov 29 14:29:14 2019 +0100
QA: Change priority based on number of duplicates
diff --git a/qa/bugzillaChecker.py b/qa/bugzillaChecker.py
index 9909b9a..0c7edff 100755
--- a/qa/bugzillaChecker.py
+++ b/qa/bugzillaChecker.py
@@ -48,6 +48,8 @@ versionsToCheck = ('5', '6')
crashReportDomain = "https://crashreport.libreoffice.org/stats/signature/"
+minNumOfDupes = 5
+
def util_create_statList_checkers():
return {
'people': {}
@@ -63,6 +65,7 @@ def analyze_bugzilla_checkers(statList, bugzillaData, cfg):
print("Analyzing bugzilla chekers\n", end="", flush=True)
lResults = {}
+ dupesBugs = {}
for key, row in bugzillaData['bugs'].items():
rowId = row['id']
@@ -85,6 +88,16 @@ def analyze_bugzilla_checkers(statList, bugzillaData, cfg):
common.util_check_bugzilla_mail(statList, creatorMail, row['creator_detail']['real_name'], creationDate, rowId)
+ if common.isOpen(rowStatus) and rowId not in dupesBugs:
+ dupesBugs[rowId] = { 'total': 0, 'priority': row['priority'], 'severity': row['severity'] }
+
+ rowDupeOf = common.util_check_duplicated(bugzillaData, rowId)
+ if rowDupeOf and common.isOpen(bugzillaData['bugs'][str(rowDupeOf)]['status']):
+ if rowDupeOf not in dupesBugs:
+ dupesBugs[rowDupeOf] = { 'total': 0, 'priority': bugzillaData['bugs'][str(rowDupeOf)]['priority'],
+ 'severity': bugzillaData['bugs'][str(rowDupeOf)]['severity'] }
+ dupesBugs[rowDupeOf]['total'] += 1
+
crashSignature = row['cf_crashreport']
if crashSignature:
resultValue = [ rowId, creationDate, '']
@@ -386,6 +399,19 @@ def analyze_bugzilla_checkers(statList, bugzillaData, cfg):
value = [rowId, '', '']
util_add_to_result(lResults, 'empty_alias', value)
+ for k, v in dupesBugs.items():
+ if v['severity'] == 'enhancement':
+ if v['total'] < minNumOfDupes and (v['priority'] == 'high' or v['priority'] == 'highest'):
+ value = [k, '', '']
+ util_add_to_result(lResults, 'change_enhancement_priority_to_medium', value)
+ elif v['total'] >= minNumOfDupes and (v['priority'] != 'high' and v['priority'] != 'highest'):
+ value = [k, '', '']
+ util_add_to_result(lResults, 'change_enhancement_priority_to_high', value)
+ else:
+ if v['total'] >= minNumOfDupes and (v['priority'] != 'high' and v['priority'] != 'highest'):
+ value = [k, '', '']
+ util_add_to_result(lResults, 'change_bug_priority_to_high', value)
+
fp = open(bugzillaReportPath, 'w', encoding='utf-8')
print("Creating file " + bugzillaReportPath)
@@ -400,11 +426,16 @@ def analyze_bugzilla_checkers(statList, bugzillaData, cfg):
dValue[idx][1] = datetime.datetime.strptime(dValue[idx][1], "%Y-%m-%dT%H:%M:%SZ")
count = idx + 1
- print("{:<3} | {:<58} | {} | {}".format(
- str(count), common.urlShowBug + str(dValue[idx][0]),
- str(dValue[idx][1].strftime("%Y-%m-%d")),
- str(dValue[idx][2])),
- file=fp)
+ if dValue[idx][1]:
+ print("{:<3} | {:<58} | {} | {}".format(
+ str(count), common.urlShowBug + str(dValue[idx][0]),
+ str(dValue[idx][1].strftime("%Y-%m-%d")),
+ str(dValue[idx][2])),
+ file=fp)
+ else:
+ print("{:<3} | {:<58}".format(
+ str(count), common.urlShowBug + str(dValue[idx][0])),
+ file=fp)
if count != len(dValue) and count % 10 == 0:
print('=' * 100, file=fp)
diff --git a/qa/common.py b/qa/common.py
index 51a9b47..52a5cdd 100755
--- a/qa/common.py
+++ b/qa/common.py
@@ -80,6 +80,19 @@ def util_create_person_bugzilla(email, name):
'bugs': set()
}
+def util_check_duplicated(bugzillaData, bugID, isFirst=True):
+ rowDupeOf = bugzillaData['bugs'][str(bugID)]['dupe_of']
+ if rowDupeOf:
+ if str(rowDupeOf) in bugzillaData['bugs']:
+ return util_check_duplicated(bugzillaData, rowDupeOf, False)
+ else:
+ return bugID
+ else:
+ if isFirst:
+ return None
+ else:
+ return bugID
+
def util_check_bugzilla_mail(statList, mail, name, date=None, bug=None):
if mail not in statList['people']:
statList['people'][mail] = util_create_person_bugzilla(mail, name)
diff --git a/qa/createWikiStats.py b/qa/createWikiStats.py
index db1ef13..97f868e 100755
--- a/qa/createWikiStats.py
+++ b/qa/createWikiStats.py
@@ -64,19 +64,6 @@ 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 util_create_bug(summary, component, version, keywords, creationDate, count_cc):
return { 'summary': summary,
'component': component,
@@ -131,7 +118,7 @@ def analyze_bugzilla_wiki_stats(statList, bugzillaData, cfg):
statList['MostCCBugs'][rowId] = util_create_bug(
row['summary'], row['component'], row['version'], rowKeywords, creationDate, len(row['cc']))
- rowDupeOf = util_check_duplicated(rowId)
+ rowDupeOf = common.util_check_duplicated(bugzillaData, rowId)
if rowDupeOf:
if rowDupeOf not in statList['dupesBugs']:
statList['dupesBugs'][rowDupeOf] = []
More information about the Libreoffice-commits
mailing list