From b4530967021bf624b0fb71b23f7f956169cd2db7 Mon Sep 17 00:00:00 2001 From: Iain Lane Date: Tue, 21 Jul 2020 12:04:46 +0100 Subject: [PATCH] excuse: When writing HTML, say that packages are not considered when they need further action We currently have excuses.html saying: x264 (2:0.155.2917+git0a84d98-2 to 2:0.159.2999+git296494a-2) Migration status for x264 (2:0.155.2917+git0a84d98-2 to 2:0.159.2999+git296494a-2): BLOCKED: Cannot migrate due to another item, which is blocked (please check which dependencies are stuck) Issues preventing migration: Implicit dependency: x264 nageru (not considered) Invalidated by implicit-dependency Implicit dependency: x264 ffmpeg Implicit dependency: x264 gst-plugins-ugly1.0 Implicit dependency: x264 handbrake Implicit dependency: x264 libquicktime Implicit dependency: x264 mplayer Implicit dependency: x264 mythtv Implicit dependency: x264 obs-studio Implicit dependency: x264 vlc Implicit dependency: x264 xpra Additional info: 8 days old Apart from `nageru` it's not clear here that some further packages need working on to move this migration forward. In fact, the package `gst-plugins-ugly1.0` is FTBFS Migration status for gst-plugins-ugly1.0 (1.16.2-2build2 to 1.16.2-2build3): BLOCKED: Maybe temporary, maybe blocked but Britney is missing information (check below) as is xpra. The remaining packages are simply those which are part of this SONAME transition, as such they have Migration status for mplayer (2:1.3.0-8build6 to 2:1.3.0-8build7): BLOCKED: Cannot migrate due to another item, which is blocked (please check which dependencies are stuck) All of these excuses are (or should be) "invalid", but only the ones which are not BLOCKED_BY_ANOTHER_ITEM require direct action. We should show this, so that maintainers can see what they need to concentrate on. When outputting depdencency problems, consider the policy verdict of the excuse. If it's one that indicates further work is required for that excuse, indicate this by outputting "(not considered)". --- britney2/excuse.py | 12 ++++++++---- britney2/utils.py | 1 + 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/britney2/excuse.py b/britney2/excuse.py index 81269d6..7e6b366 100644 --- a/britney2/excuse.py +++ b/britney2/excuse.py @@ -412,11 +412,15 @@ class Excuse(object): info = "Impossible %s: %s -> %s" % (d.deptype, self.uvname, desc) else: duv = excuses[dep].uvname - if d.valid: - info = "%s: %s %s" % (d.deptype, self.uvname, duv, duv) - else: + verdict = excuses[dep].policy_verdict + if not d.valid or verdict in (PolicyVerdict.REJECTED_NEEDS_APPROVAL, + PolicyVerdict.REJECTED_CANNOT_DETERMINE_IF_PERMANENT, + PolicyVerdict.REJECTED_PERMANENTLY): info = "%s: %s %s (not considered)" % (d.deptype, self.uvname, duv, duv) - dep_issues[d.verdict].add("Invalidated by %s" % d.deptype.get_description()) + if not d.valid: + dep_issues[d.verdict].add("Invalidated by %s" % d.deptype.get_description()) + else: + info = "%s: %s %s" % (d.deptype, self.uvname, duv, duv) dep_issues[d.verdict].add(info) seen = set() diff --git a/britney2/utils.py b/britney2/utils.py index afb07dd..b48426e 100644 --- a/britney2/utils.py +++ b/britney2/utils.py @@ -728,6 +728,7 @@ def invalidate_excuses(excuses, valid, invalid, invalidated): exc = excuses[x] # if the item is valid and it is not marked as `forced', then we # invalidate this specfic dependency + if x in valid and not exc.forced: # mark this specific dependency as invalid still_valid = exc.invalidate_dependency(ename, rdep_verdict)