Control: tags -1 patch Hi,
On Mon, Oct 21, 2013 at 10:22:37PM +0200, Niels Thykier wrote: > Please warn maintainers about pending auto-removals from testing > that affect their package(s). The data set is available via [1]. The attached patches should add this information to the PTS. Cheers, Ivo
>From de4549e5a4aecbf966bc2721cde3c8fe5ae653aa Mon Sep 17 00:00:00 2001 From: Ivo De Decker <ivo.dedec...@ugent.be> Date: Sat, 25 Jan 2014 22:21:50 +0100 Subject: [PATCH 1/2] download testing autoremoval info --- 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 4adbadf..e3a2575 100755 --- a/www/bin/update_incoming.sh +++ b/www/bin/update_incoming.sh @@ -211,6 +211,9 @@ get http://dedup.debian.net/static/ptslist.txt dedup.txt nice_redirect_to upstream-info.txt svn ls -R svn://anonscm.debian.org/collab-qa/packages-metadata +# testing autoremoval info +get https://udd.debian.org/cgi-bin/autoremovals.yaml.cgi autoremovals.yaml + # What more ? # Decompress all files -- 1.8.5.3
>From 44e12a416152c0f9f757f1cf39da62ab243a59d3 Mon Sep 17 00:00:00 2001 From: Ivo De Decker <ivo.dedec...@ugent.be> Date: Sun, 26 Jan 2014 01:38:43 +0100 Subject: [PATCH 2/2] display autoremoval info --- www/bin/other_to_xml.py | 56 +++++++++++++++++++++++++++++++++++++++++++- www/xsl/pts.xsl | 62 +++++++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 117 insertions(+), 1 deletion(-) diff --git a/www/bin/other_to_xml.py b/www/bin/other_to_xml.py index acd74ce..e98686e 100755 --- a/www/bin/other_to_xml.py +++ b/www/bin/other_to_xml.py @@ -16,6 +16,7 @@ except ImportError: import json from lxml import html import xml.dom import re +from datetime import datetime try: from debian import deb822, debian_support @@ -321,6 +322,13 @@ def read_l10n_status(fname): f.close() return l10n +def read_autoremoval_info(fname): + y = yaml.load(file(fname), yaml.CLoader) + packages = {} # maps pkg to the font review for it + if y: + packages = y + return packages + # Initialization: fill binary <-> source maps f = open(odir + "/sources_mapping") source2binaries = cPickle.load(f) # maps a source package to its binaries @@ -492,6 +500,9 @@ logcheck = read_logcheck_info(os.path.join(dir, "logcheck.txt")) # read clang build info clang = read_clang_info(os.path.join(dir, "clang.txt")) +# read autoremoval info +autoremovals = read_autoremoval_info(os.path.join(dir, "autoremovals.yaml")) + # read the list of packages indexed by svnbuildstat.debian.net svnbuildstat = {} try: @@ -1010,6 +1021,49 @@ while 1: root_elt.setAttribute('security', '0') sec_sig = '0' + # add autoremoval info + if autoremovals.has_key(pkg): + autoremoval_info = autoremovals[pkg] + elt = doc.createElement("autoremoval") + if len(autoremoval_info["bugs"]) > 0: + elt.setAttribute("bugs","yes") + for bug in autoremoval_info["bugs"]: + bug_elt = doc.createElement("bug") + bug_elt.setAttribute("bugid",bug) + elt.appendChild(bug_elt) + if autoremoval_info.has_key("bugs_dependencies"): + elt.setAttribute("bugs_dep","yes") + for bug in autoremoval_info["bugs_dependencies"]: + bug_elt = doc.createElement("bug_dep") + bug_elt.setAttribute("bugid",bug) + elt.appendChild(bug_elt) + if autoremoval_info.has_key("buggy_dependencies"): + elt.setAttribute("buggy_dep","yes") + for dep in autoremoval_info["buggy_dependencies"]: + bug_elt = doc.createElement("buggy_dep") + bug_elt.setAttribute("pkg",dep) + elt.appendChild(bug_elt) + if autoremoval_info.has_key("rdeps"): + elt.setAttribute("rdep","yes") + for rdep in autoremoval_info["rdeps"]: + bug_elt = doc.createElement("rdep") + bug_elt.setAttribute("pkg",rdep) + elt.appendChild(bug_elt) + removaldate = "on " + autoremoval_info["removal_date"].strftime("%Y-%m-%d") + if autoremoval_info["removal_date"] < datetime.now(): + removaldate = "today" + + elt.setAttribute("removaldate",removaldate) + elt.setAttribute("version",autoremoval_info["version"]) + + root_elt.appendChild(elt) + root_elt.setAttribute("autoremoval", "yes") + autoremoval_sig = autoremoval_info + else: + root_elt.setAttribute("autoremoval", "no") + autoremoval_sig = "n" + + # TODO: try to do that signature checking before the creation of XML DOM # Build the sig and check if anything changed sig = (pts.get(pkg, "0"), dc_sig, wnpp_sig, override_sig, dehs_sig, @@ -1019,7 +1073,7 @@ while 1: watchbroken_sig, watchavail_sig, depneedsmaint_sig, dms_sig, fonts_sig, sec_sig, logcheck_sig, rg_sig, url_issues_sig, screenshots_sig, clang_sig, dedup_sig, longdesc_sig, - upstream_info_sig) + upstream_info_sig, autoremoval_sig) if sigs.has_key(pkg) and sig == sigs[pkg] and \ os.path.isfile("%s/%s/%s/other.xml" % (odir, hash, pkg)): continue diff --git a/www/xsl/pts.xsl b/www/xsl/pts.xsl index 395f894..64b8b03 100644 --- a/www/xsl/pts.xsl +++ b/www/xsl/pts.xsl @@ -1286,6 +1286,67 @@ other-to-%xx, especially % to %25... Fortunately, that's rare --> </xsl:if> </xsl:template> +<xsl:template name="autoremoval-status"> + <xsl:if test="$other/@autoremoval='yes'"> + <div class="block autoremoval"> + <a name="autoremoval" /> + <h2>autoremoval from testing</h2> + <ul> + <li> + Version <xsl:value-of select="$other/autoremoval/@version"/> of <xsl:value-of select="$package"/> is marked for autoremoval from testing + <xsl:value-of select="$other/autoremoval/@removaldate"/>. + </li> + <xsl:if test="$other/autoremoval/@bugs='yes'"> + <li> + It is affected by RC bug(s) + <xsl:for-each select="$other/autoremoval/bug"> + <xsl:if test="position()=last()"><xsl:text> and </xsl:text> + </xsl:if> + <xsl:if test="position()!=last() and position() != 1"><xsl:text>, </xsl:text> + </xsl:if> + <a href="http://bugs.debian.org/{@bugid}"><xsl:value-of select="@bugid"/></a> + </xsl:for-each> + </li> + </xsl:if> + <xsl:if test="$other/autoremoval/@buggy_dep='yes'"> + <li> + It depends (transitively) on + <xsl:for-each select="$other/autoremoval/buggy_dep"> + <xsl:if test="position()=last()"><xsl:text> and </xsl:text> + </xsl:if> + <xsl:if test="position()!=last() and position() != 1"><xsl:text>, </xsl:text> + </xsl:if> + <a href="/{@pkg}"><xsl:value-of select="@pkg"/></a> + </xsl:for-each>, + affected by RC bug(s) + <xsl:for-each select="$other/autoremoval/bug_dep"> + <xsl:if test="position()=last()"><xsl:text> and </xsl:text> + </xsl:if> + <xsl:if test="position()!=last() and position() != 1"><xsl:text>, </xsl:text> + </xsl:if> + <a href="http://bugs.debian.org/{@bugid}"><xsl:value-of select="@bugid"/></a> + </xsl:for-each> + </li> + </xsl:if> + <xsl:if test="$other/autoremoval/@rdep='yes'"> + <li> + The removal of <xsl:value-of select="$package"/> will also cause the removal of + (transitive) reverse dependencies: + <ul> + <xsl:for-each select="$other/autoremoval/rdep"> + <li><a href="/{@pkg}"><xsl:value-of select="@pkg"/></a> + </li> + </xsl:for-each> + </ul> + </li> + </xsl:if> + <li>You should try to prevent the removal from testing by fixing these bugs. + </li> + </ul> + </div> + </xsl:if> +</xsl:template> + <xsl:template name="testing-status"> <xsl:if test="$hasexcuse or $other/@transitions='yes'"> <div class="block testing"> @@ -1442,6 +1503,7 @@ other-to-%xx, especially % to %25... Fortunately, that's rare --> <div class="center maincol"> <xsl:call-template name="todo-list" /> <xsl:call-template name="problems" /> + <xsl:call-template name="autoremoval-status" /> <xsl:call-template name="testing-status" /> <xsl:call-template name="static-info" /> <xsl:call-template name="latest-news" /> -- 1.8.5.3