[Libreoffice-commits] dev-tools.git: esc-reporting/qa-tools.py

Xisco Fauli anistenis at gmail.com
Thu Sep 28 08:25:49 UTC 2017


 esc-reporting/qa-tools.py |   37 ++++++++++++++++++++++++++++++++-----
 1 file changed, 32 insertions(+), 5 deletions(-)

New commits:
commit 4e5bdd2d3163b2e78ebf032a8ede729b31875259
Author: Xisco Fauli <anistenis at gmail.com>
Date:   Wed Sep 27 11:15:04 2017 +0200

    QA tools: Tag other massping comments as obsolete

diff --git a/esc-reporting/qa-tools.py b/esc-reporting/qa-tools.py
index ace4e65..e9dd7ee 100755
--- a/esc-reporting/qa-tools.py
+++ b/esc-reporting/qa-tools.py
@@ -57,7 +57,11 @@ product_list = ['cppunit', 'Document Liberation Project', 'Impress Remote', 'lib
 
 untouchedPingComment = "** Please read this message in its entirety before responding **\n\nTo make sure we're focusing on the bugs that affect our users today, LibreOffice QA is asking bug reporters and confirmers to retest open, confirmed bugs which have not been touched for over a year."
 
-needInfoPingComment = "MassPing-NeedInfo-Ping"
+needInfoPingComment = "Dear Bug Submitter,\n\nThis bug has been in NEEDINFO status with no change for at least 6 months."
+
+needInfoFollowUpPingComment = "Dear Bug Submitter,\n\nPlease read this message in its entirety before proceeding."
+
+moveToNeedInfo = "I have set the bug's status to 'NEEDINFO'. Please change it back to 'UNCONFIRMED'"
 
 def util_load_file(fileName):
     try:
@@ -222,6 +226,7 @@ def isOpen(status):
     return status == 'NEW' or status == 'ASSIGNED' or status == 'REOPENED'
 
 def isClosed(status):
+    #Use row['status'], not rowStatus
     return status == 'VERIFIED' or status == 'RESOLVED' or status == 'CLOSED'
 
 def util_increase_user_actions(statList, bug, mail, targets, action, actionTime):
@@ -684,10 +689,15 @@ def analyze_bugzilla(statList, bugzillaData, cfg, lIgnore):
                 if commentDate >= cfg[reportPeriod]:
                     statList['detailedReport']['comments_count'] += 1
 
-                if isOpen(rowStatus) and \
+                if rowStatus != 'NEEDINFO' and \
                         "obsolete" not in [x.lower() for x in comment["tags"]] and \
                         (comment["text"].startswith(untouchedPingComment) or \
-                        "[NinjaEdit]" in comment["text"]):
+                        comment["text"].startswith("Migrating Whiteboard tags to Keywords:") or \
+                        "[NinjaEdit]" in comment["text"] or \
+                        moveToNeedInfo in comment["text"] or \
+                        comment["text"].startswith("(This is an automated message.)") or \
+                        comment["text"].startswith(needInfoPingComment) or \
+                        comment["text"].startswith(needInfoFollowUpPingComment)):
                     statList['tags']['addObsolete'].append(comment["id"])
 
             if len(comments) > 0:
@@ -701,14 +711,31 @@ def analyze_bugzilla(statList, bugzillaData, cfg, lIgnore):
                     else:
                         statList['massping']['1year'].append(rowId)
 
-                    if isOpen(rowStatus):
+                    if rowStatus != 'NEEDINFO':
                         if "obsolete" not in [x.lower() for x in comments[-1]["tags"]]:
                             statList['tags']['addObsolete'].pop()
                         else:
                             statList['tags']['removeObsolete'].append(comments[-1]["id"])
-                elif needInfoPingComment in comments[-1]["text"]:
+                elif comments[-1]["text"].startswith(needInfoPingComment):
                     if rowStatus == 'NEEDINFO':
                         statList['massping']['needinfo'].append(rowId)
+                    else:
+                        if "obsolete" not in [x.lower() for x in comments[-1]["tags"]]:
+                            statList['tags']['addObsolete'].pop()
+                        else:
+                            statList['tags']['removeObsolete'].append(comments[-1]["id"])
+                elif comments[-1]["text"].startswith(needInfoFollowUpPingComment):
+                    if rowStatus != 'NEEDINFO':
+                        if "obsolete" not in [x.lower() for x in comments[-1]["tags"]]:
+                            statList['tags']['addObsolete'].pop()
+                        else:
+                            statList['tags']['removeObsolete'].append(comments[-1]["id"])
+                elif moveToNeedInfo in comments[-1]["text"]:
+                    if rowStatus != 'NEEDINFO':
+                        if "obsolete" not in [x.lower() for x in comments[-1]["tags"]]:
+                            statList['tags']['addObsolete'].pop()
+                        else:
+                            statList['tags']['removeObsolete'].append(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 row['component'] != 'Documentation' and (row['product'] == 'LibreOffice' or row['product'] == 'Impress Remote') and row['severity'] != 'enhancement':
                         statList['massping']['untouched'].append(rowId)


More information about the Libreoffice-commits mailing list