Run autopkgtests for blocked packages.

bzr-import-20160707
Colin Watson 12 years ago
parent 9da36a9385
commit 75b84eebe5

@ -1388,8 +1388,9 @@ class Britney(object):
source_u[MAINTAINER] and excuse.set_maint(source_u[MAINTAINER].strip())
source_u[SECTION] and excuse.set_section(source_u[SECTION].strip())
# the starting point is that we will update the candidate
# the starting point is that we will update the candidate and run autopkgtests
update_candidate = True
run_autopkgtest = True
# if the version in unstable is older, then stop here with a warning in the excuse and return False
if source_t and apt_pkg.version_compare(source_u[VERSION], source_t[VERSION]) < 0:
@ -1401,6 +1402,7 @@ class Britney(object):
if source_u[FAKESRC]:
excuse.addhtml("%s source package doesn't exist" % (src))
update_candidate = False
run_autopkgtest = False
# retrieve the urgency for the upload, ignoring it if this is a NEW package (not present in testing)
urgency = self.urgencies.get(src, self.options.default_urgency)
@ -1416,6 +1418,7 @@ class Britney(object):
excuse.addhtml("Removal request by %s" % (item.user))
excuse.addhtml("Trying to remove package, not update it")
update_candidate = False
run_autopkgtest = False
# check if there is a `block' or `block-udeb' hint for this package, or a `block-all source' hint
blocked = {}
@ -1476,6 +1479,7 @@ class Britney(object):
excuse.addhtml("Too young, but urgency pushed by %s" % (urgent_hints[0].user))
else:
update_candidate = False
run_autopkgtest = False
if suite in ['pu', 'tpu']:
# o-o-d(ish) checks for (t-)p-u
@ -1501,6 +1505,7 @@ class Britney(object):
text = text + " (but %s isn't keeping up, so never mind)" % (arch)
else:
update_candidate = False
run_autopkgtest = False
excuse.addhtml(text)
@ -1550,6 +1555,7 @@ class Britney(object):
text = text + " (but %s isn't keeping up, so nevermind)" % (arch)
else:
update_candidate = False
run_autopkgtest = False
if self.dates is None or self.date_now != self.dates[src][1]:
excuse.addhtml(text)
@ -1558,9 +1564,11 @@ class Britney(object):
if len(self.sources[suite][src][BINARIES]) == 0:
excuse.addhtml("%s has no binaries on any arch" % src)
update_candidate = False
run_autopkgtest = False
elif not built_anywhere:
excuse.addhtml("%s has no up-to-date binaries on any arch" % src)
update_candidate = False
run_autopkgtest = False
# if the suite is unstable, then we have to check the release-critical bug lists before
# updating testing; if the unstable package has RC bugs that do not apply to the testing
@ -1590,6 +1598,7 @@ class Britney(object):
excuse.addhtml("Updating %s introduces new bugs: %s" % (pkg, ", ".join(
["<a href=\"http://bugs.debian.org/%s\">#%s</a>" % (urllib.quote(a), a) for a in new_bugs])))
update_candidate = False
run_autopkgtest = False
if len(old_bugs) > 0:
excuse.addhtml("Updating %s fixes old bugs: %s" % (pkg, ", ".join(
@ -1605,6 +1614,7 @@ class Britney(object):
if not update_candidate and forces:
excuse.addhtml("Should ignore, but forced by %s" % (forces[0].user))
update_candidate = True
run_autopkgtest = True
# if the suite is *-proposed-updates, the package needs an explicit approval in order to go in
if suite in ['tpu', 'pu']:
@ -1614,6 +1624,7 @@ class Britney(object):
else:
excuse.addhtml("NEEDS APPROVAL BY RM")
update_candidate = False
run_autopkgtest = False
# if the package can be updated, it is a valid candidate
if update_candidate:
@ -1621,6 +1632,7 @@ class Britney(object):
# else it won't be considered
else:
excuse.addhtml("Not considered")
excuse.run_autopkgtest = run_autopkgtest
self.excuses.append(excuse)
return update_candidate
@ -1768,7 +1780,7 @@ class Britney(object):
autopkgtest_packages = []
autopkgtest_excuses = []
for e in self.excuses:
if e.name not in upgrade_me:
if not e.run_autopkgtest:
continue
# skip removals, binary-only candidates, and proposed-updates
if e.name.startswith("-") or "/" in e.name or "_" in e.name:
@ -1801,7 +1813,7 @@ class Britney(object):
forces[0].user)
else:
adtpass = False
if not adtpass:
if not adtpass and e.is_valid:
upgrade_me.remove(e.name)
unconsidered.append(e.name)
e.addhtml("Not considered")

@ -50,6 +50,7 @@ class Excuse(object):
self.section = None
self._is_valid = False
self._dontinvalidate = False
self.run_autopkgtest = False
self.invalid_deps = []
self.deps = {}

Loading…
Cancel
Save