Hi!

[ CCing Lucas for UDD, and Christoph for DDPO. ]

On Mon, 2017-12-11 at 20:59:55 +0100, Paul Gevers wrote:
> Package: qa.debian.org
> Severity: normal
> User: [email protected]

> Multiple of my packages do not have a proper URL to watch. Lintian suggest to
> add a watch file with comments, and uscan handles those gracefully. UDD
> turns them into an error on line 106 in rimporters/upstream.rb.
> 
> Please improve UDD to treat "empty" watch files as they are meant to be by
> people that follow Lintian's advice.

I think using the new watch format 5 with its "Untrackable:" field
support is probably a more explicit way to handle this, which is what
I've switched the couple of packages that I maintain that are in this
same situation.

To try to improve this I tried to modify both UDD and DDPO, to track
and show these as a new status, and show on DDPO in gray to avoid
creating the current alarming red upper-case entries, which seem wrong
given that I don't think these packages should be worse-off than ones
with no watch file included.

The attached two patches try to implement this, but they are
completely untested. I guess the one in UDD could be massaged to also
include the watch format 4 with only comments (originally requested in
this report), by checking in the same if/else case that none of the
fields are present (given that the previous cases handle non-existing
watch file).

(I've also provided an MR for lintian updating its recommendation to
use format 5 with
<https://salsa.debian.org/lintian/lintian/-/merge_requests/668>)

Thanks,
Guillem
From 589a882fe4f1cbb58d0425d19a47a2363d5fd27f Mon Sep 17 00:00:00 2001
From: Guillem Jover <[email protected]>
Date: Tue, 24 Feb 2026 02:00:23 +0100
Subject: [PATCH udd] upstream: Mark untrackable projects as their own status

Projects that have untrackable upstream sources, should not be
considered worse than projects that have no watch files, so marking them
as errors does not seem appropriate, given that there's not much
the maintainer(s) can do about it.
---
 rimporters/upstream.rb | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/rimporters/upstream.rb b/rimporters/upstream.rb
index 4850a1c..c38b6dd 100755
--- a/rimporters/upstream.rb
+++ b/rimporters/upstream.rb
@@ -134,6 +134,16 @@ module Upstream
         :errors => nil,
         :warnings => nil
       }
+    elsif d.root.elements['warnings'] && d.root.elements['warnings'].text =~ /^Untrackable project:/
+      return {
+        :debian_uversion => nil,
+        :debian_mangled_uversion => nil,
+        :upstream_version => nil,
+        :upstream_url => nil,
+        :status => 'untrackable project',
+        :errors => nil,
+        :warnings => (e = d.root.elements['warnings']) ? e.text : nil
+      }
     elsif d.root.elements['errors']
       return {
         :debian_uversion => nil,
-- 
2.51.0

From 73a87cfa16c1afa50440d268a8c13e6c9e7a71a0 Mon Sep 17 00:00:00 2001
From: Guillem Jover <[email protected]>
Date: Sun, 22 Feb 2026 05:18:44 +0100
Subject: [PATCH] ddpo: Show untrackable projects as their own status

Projects that have untrackable upstream sources, should not be
considered worse than projects that have no watch files, so showing
them as errors does not seem appropriate, given that there's not much
the maintainer(s) can do about it, yet it still currently shows as
an alarming red ERROR message in the board.

Instead show "untrackable" in grey, with the reason extracted from the
watch file as a tooltip.
---
 wml/developer.css | 1 +
 wml/developer.wml | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/wml/developer.css b/wml/developer.css
index 11994856..7c3a0aa2 100644
--- a/wml/developer.css
+++ b/wml/developer.css
@@ -39,6 +39,7 @@ h3 { margin-bottom: 0.5em; }
 .uptodate { color:green }
 .behind { color:#ff00ff }
 .ahead { color:#2222aa }
+.untrackable { color:#616161 }
 .error { color:red }
 
 .packagetable {
diff --git a/wml/developer.wml b/wml/developer.wml
index 0d4981c2..f4435fe5 100644
--- a/wml/developer.wml
+++ b/wml/developer.wml
@@ -377,6 +377,7 @@ function print_help() {
     $help_data .= html_blank().html_blank(). html_span("green", "", "uptodate") . ": upstream found version is in sync with version in unstable/experimental" . html_br();
     $help_data .= html_blank().html_blank(). html_span("magenta", "", "behind") . ": upstream found version is greater than version in unstable" . html_br();
     $help_data .= html_blank().html_blank(). html_span("navy blue", "", "ahead") . ": upstream found version is lower than version in unstable (a bug in the watch file?)" . html_br();
+    $help_data .= html_blank().html_blank(). html_span("grey", "", "untrackable") . ": upstream project is not currently trackable" . html_br();
     $help_data .= html_blank().html_blank(). html_color("Error", "red") . ": uscan had problems following the watch file" . html_br();
     $help_data .= "The 'pending uploads' section shows packages uploaded/Changed-By this developer in incoming, new, and delayed" . html_br();
     $help_data .= "The 'uploads' sections show all packages in the archive signed by this developer's key (NMUs, sponsored, QA uploads)" . html_br().html_br();
@@ -594,6 +595,10 @@ function print_dehs($package, $urlpackage)
         $dehs_warnings = dba_fetch("warnings:$package", $db);
         return html_a(html_span("ERROR", "", "error"), "/cgi-bin/watch?pkg=$urlpackage",
             "", "$dehs_warnings");
+    } else if ($dehs_status == "untrackable project") {
+        $dehs_reason = dba_fetch("warnings:$package", $db);
+        return html_a(html_span("untrackable", "", "untrackable"), "/cgi-bin/watch?pkg=$urlpackage",
+            "", "$dehs_reason");
     }
 
     $dehs_version = dba_fetch("upstream-version:$package", $db);
-- 
2.51.0

Reply via email to