[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Bug#688446: qa.debian.org: Please update PTS in view of the new DM procedures



Control: tag -1 patch

On Sun, Nov 25, 2012 at 07:49:05PM +0000, Bart Martens wrote:
> I have modified the PTS to no longer display the old DMUA flags.
> http://anonscm.debian.org/viewvc/qa/trunk/pts/www/xsl/pts.xsl?r1=2868&r2=2867&pathrev=2868
> 
> At this point it is not visible on the PTS which DM has upload permission for
> which package.

Attached is a series of a patches that adds support for displaying DM
information by each maintainer/uploader's name.

As examples, I've also attached screenshots of what the "general" box
looks like for the glx-alternatives (one DM uploader) and event-dance
(DM maintainer) source packages.

Cheers,
-- 
James
GPG Key: 4096R/331BA3DB 2011-12-05 James McCoy <jamessan@debian.org>
From 78c2c98cbfaa5466e930e5d9014443e177da64d3 Mon Sep 17 00:00:00 2001
From: James McCoy <vega.james@gmail.com>
Date: Sun, 25 Nov 2012 22:08:11 -0500
Subject: [PATCH 1/5] Download dm.txt

---
 www/bin/update_incoming.sh |    3 +++
 1 file changed, 3 insertions(+)

diff --git a/www/bin/update_incoming.sh b/www/bin/update_incoming.sh
index c3334f6..ba14335 100755
--- a/www/bin/update_incoming.sh
+++ b/www/bin/update_incoming.sh
@@ -100,6 +100,9 @@ done
 get http://ftp-master.debian.org/testing/update_excuses.html.gz \
     update_excuses.html.gz
 
+# Download DM permissions
+get http://ftp-master.debian.org/dm.txt dm.txt
+
 # Download PTS subscription count
 get http://packages.qa.debian.org/data/pts-subscription-count.txt \
   count.txt
-- 
1.7.10.4

From 5322c052f722b1a390cab94206f2f37676b65a33 Mon Sep 17 00:00:00 2001
From: James McCoy <vega.james@gmail.com>
Date: Sun, 25 Nov 2012 22:08:35 -0500
Subject: [PATCH 2/5] Parse dm.txt into a data structure we can use

---
 www/bin/other_to_xml.py |   18 ++++++++++++++++++
 1 file changed, 18 insertions(+)

diff --git a/www/bin/other_to_xml.py b/www/bin/other_to_xml.py
index 84bbf2b..cc4ad2e 100755
--- a/www/bin/other_to_xml.py
+++ b/www/bin/other_to_xml.py
@@ -177,6 +177,23 @@ def read_NEW(fname):
                 new_contents[stanza['source']] = stanza['version']
     return new_contents
 
+def read_dm(fname):
+    dm_contents = {}
+    for stanza in deb822.Deb822.iter_paragraphs(file(fname)):
+        if stanza.has_key('Uid') and stanza.has_key('Allow'):
+            # Allow is a comma-separated string of 'package (DD fpr)' items,
+            # where DD fpr is the fingerprint of the DD that granted the
+            # permission
+            name, email = stanza['Uid'].rsplit(' ', 1)
+            email = email.strip('<>')
+            for pair in stanza['Allow'].split(','):
+                pair = pair.strip()
+                pkg, dd_fpr = pair.split()
+                pkg = pkg.encode('utf-8')
+                dm_contents.setdefault(pkg, [])
+                dm_contents[pkg].append({'name': name, 'email': email})
+    return dm_contents
+
 def read_l10n_status(fname):
     l10n = {}
     if os.path.exists(fname):
@@ -350,6 +367,7 @@ watchbroken = read_packages_list(os.path.join(dir, "watch-broken.txt"))
 watchavail = read_packages_list(os.path.join(dir, "watch-avail.txt"))
 
 new_queue = read_NEW(os.path.join(dir, "new.822"))
+dms = read_dm(os.path.join(dir, 'dm.txt'))
 
 # read QA lintian info
 lintian = read_lintian_info(os.path.join(dir, "lintian.qa-list.txt"))
-- 
1.7.10.4

From 877b007d6685ce93b02d07ce35873f107c914919 Mon Sep 17 00:00:00 2001
From: James McCoy <vega.james@gmail.com>
Date: Mon, 26 Nov 2012 21:21:30 -0500
Subject: [PATCH 3/5] Add dm information to XML and sig

---
 www/bin/other_to_xml.py |   15 +++++++++++++--
 1 file changed, 13 insertions(+), 2 deletions(-)

diff --git a/www/bin/other_to_xml.py b/www/bin/other_to_xml.py
index cc4ad2e..798997e 100755
--- a/www/bin/other_to_xml.py
+++ b/www/bin/other_to_xml.py
@@ -463,7 +463,18 @@ while 1:
         new_queue_sig = 'y'
     else:
         new_queue_sig = 'n'
-    
+
+    dms_sig = []
+    elt = doc.createElement('dms')
+    # Add DM information
+    for dm in dms.get(pkg, []):
+        sub_elt = doc.createElement('item')
+        sub_elt.setAttribute('name', dm['name'])
+        sub_elt.setAttribute('email', dm['email'])
+        elt.appendChild(sub_elt)
+        dms_sig.append(dm)
+    root_elt.appendChild(elt)
+
     # Get PTS stats
     elt = doc.createElement("pts")
     elt.setAttribute("count", pts.get(pkg, "0"))
@@ -776,7 +787,7 @@ while 1:
     sig = (pts.get(pkg, "0"), dc_sig, wnpp_sig, override_sig, dehs_sig,
             ubuntu_sig, s_rc, s_normal, s_wishlist, s_fixed, s_gift, s_help,
             subsig, svnbuildstat_sig, transitions_sig, lintian_sig,
-            shortdesc_sig, piuparts_sig, new_queue_sig, i18n_sig,
+            shortdesc_sig, piuparts_sig, new_queue_sig, dms_sig, i18n_sig,
             watchbroken_sig, watchavail_sig,
             fonts_sig, sec_sig, logcheck_sig, rg_sig)
     if sigs.has_key(pkg) and sig == sigs[pkg] and \
-- 
1.7.10.4

From 3a6f6f158e8905176689715b5d389bd37244bb98 Mon Sep 17 00:00:00 2001
From: James McCoy <vega.james@gmail.com>
Date: Mon, 26 Nov 2012 22:10:11 -0500
Subject: [PATCH 4/5] Add indicate-dm template and use it to annotate the
 maintainer/uploaders

---
 www/xsl/pts.xsl |   26 +++++++++++++++++++++++++-
 1 file changed, 25 insertions(+), 1 deletion(-)

diff --git a/www/xsl/pts.xsl b/www/xsl/pts.xsl
index 653dac5..e11db64 100644
--- a/www/xsl/pts.xsl
+++ b/www/xsl/pts.xsl
@@ -230,6 +230,21 @@ other-to-%xx, especially % to %25... Fortunately, that's rare -->
   </a>
 </xsl:template>
 
+<xsl:template name="indicate-dm">
+  <xsl:param name="email" />
+  <xsl:param name="maintainer" />
+  <xsl:if test="$hasother and $other/dms/item/@email=string($email)">
+    <xsl:choose>
+      <xsl:when test="$maintainer">
+	<xsl:text> (dm)</xsl:text>
+      </xsl:when>
+      <xsl:otherwise>
+	<xsl:text>, dm</xsl:text>
+      </xsl:otherwise>
+    </xsl:choose>
+  </xsl:if>
+</xsl:template>
+
 <xsl:template name="general-information">
   <div class="block info">
     <a name="general" />
@@ -271,6 +286,10 @@ other-to-%xx, especially % to %25... Fortunately, that's rare -->
 	    <xsl:value-of select="maintainer/name"/>
 	  </span>
 	</xsl:element>
+	<xsl:call-template name="indicate-dm">
+	  <xsl:with-param name="email"><xsl:value-of select="maintainer/email"/></xsl:with-param>
+	  <xsl:with-param name="maintainer">yes</xsl:with-param>
+	</xsl:call-template>
 	<xsl:if test="uploaders">
           <xsl:for-each select="uploaders/item">
 	    <xsl:text>, </xsl:text>
@@ -289,7 +308,12 @@ other-to-%xx, especially % to %25... Fortunately, that's rare -->
 		  <xsl:value-of select="name"/>
 		</span>
 	      </xsl:element>
-	      <xsl:text> (u)</xsl:text>
+	      <xsl:text> (u</xsl:text>
+	      <xsl:call-template name="indicate-dm">
+		<xsl:with-param name="email"><xsl:value-of select="email"/></xsl:with-param>
+		<xsl:with-param name="maintainer"></xsl:with-param>
+	      </xsl:call-template>
+	      <xsl:text>)</xsl:text>
 	      </small>
 	    </span>
           </xsl:for-each>
-- 
1.7.10.4

From f13a39ab6da7bf8fa08dabd772e5a837f2075895 Mon Sep 17 00:00:00 2001
From: James McCoy <vega.james@gmail.com>
Date: Mon, 26 Nov 2012 22:15:28 -0500
Subject: [PATCH 5/5] Remove old dm-upload-allowed support

---
 www/xsl/pts.xsl |   17 +----------------
 1 file changed, 1 insertion(+), 16 deletions(-)

diff --git a/www/xsl/pts.xsl b/www/xsl/pts.xsl
index e11db64..93b3b2d 100644
--- a/www/xsl/pts.xsl
+++ b/www/xsl/pts.xsl
@@ -161,30 +161,15 @@ other-to-%xx, especially % to %25... Fortunately, that's rare -->
 
 <xsl:template name="add-maintenance-info">
   <xsl:param name="email" />
-  <xsl:variable name="dm">
-    <xsl:if test="dm-upload-allowed and string(dm-upload-allowed)='yes'">
-      <!-- <xsl:text>true</xsl:text> -->
-    </xsl:if>
-  </xsl:variable>
   <xsl:variable name="lownmu">
     <xsl:if test="$low-nmu-emails/email[text()=$email]">
       <xsl:text>true</xsl:text>
     </xsl:if>
   </xsl:variable>
 
-  <xsl:if test="string($dm)!='' or string($lownmu)!=''">
+  <xsl:if test="string($lownmu)!=''">
     <div class="maint-markers">
-    <xsl:if test="string($dm)!=''">
-      <span class="dm-tag">
-	<a href="http://www.debian.org/vote/2007/vote_003";>
-	  <acronym title="Debian Maintainer Upload Allowed: this package can be uploaded by Debian Maintainers">DMUA</acronym>
-	</a>
-      </span>
-    </xsl:if>
     <xsl:if test="string($lownmu)!=''">
-      <xsl:if test="string($dm)!=''">
-	<xsl:text>, </xsl:text>
-      </xsl:if>
       <span class="lownmu-tag">
 	<a href="http://wiki.debian.org/LowThresholdNmu";>
 	  <acronym title="maintainer agrees with Low Threshold NMU">LowNMU</acronym>
-- 
1.7.10.4

Attachment: event-dance.jpg
Description: JPEG image

Attachment: glx-alternatives.jpg
Description: JPEG image

Attachment: signature.asc
Description: Digital signature


Reply to: