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)".
ubuntu/dry-run
Iain Lane 4 years ago
parent 2ed6da1e0d
commit b453096702

@ -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 <a href=\"#%s\">%s</a>" % (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 <a href=\"#%s\">%s</a> (not considered)" % (d.deptype, self.uvname, duv, duv)
if not d.valid:
dep_issues[d.verdict].add("Invalidated by %s" % d.deptype.get_description())
else:
info = "%s: %s <a href=\"#%s\">%s</a>" % (d.deptype, self.uvname, duv, duv)
dep_issues[d.verdict].add(info)
seen = set()

@ -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)

Loading…
Cancel
Save