[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[britney] RFC: Behaviour change for "approve" hints



[ Short version for the impatient - I'd like to make britney require all
architectures to be built in t-p-u before paying any attention to an
"approve" hint ]

Hi,

For as long as I can remember, the advice for adding "approve" hints to
migrate packages from t-p-u to testing has been "make sure the t-p-u
package has built on all architectures first, otherwise the remaining
architectures won't get built".  This was predicated on the assumption
that the source version would be removed from t-p-u either automatically
or semi-automatically once it had migrated to testing; so far as I can
see, this is not currently the case and I'm told that with the current
buildd trigger code the missing architectures should continue to be
built so long as the source remains in t-p-u.

However, adding an "approve" hint before all the architectures are
available still seems to have some issues.  As a test, I took a set of
britney data from a couple of days ago, before gnucash/tpu migrated, and
added the new source to the testing Sources file; a britney run using
that data failed to migrate any of the binary packages, claiming that
they would all become uninstallable (for reasons I haven't spent too
long investigating, possibly related to gnucash's dependency on arch:all
gnucash-common).

As a consequence of all of the above, I'd like to propose modifying the
semantics of "approve" so that the hint can be added straight away and
the t-p-u package only becomes a valid candidate once it's available on
all the architectures on which it exists in testing; the attached patch
does so.

Regards,

Adam
--- /srv/release.debian.org/britney/code/b1/update_out/update_out.py	2010-09-15 14:00:07.000000000 +0000
+++ update_out/update_out.py	2010-09-18 17:37:25.000000000 +0000
@@ -544,6 +544,30 @@
 			else:
 				updatecand = 0
 
+	if suite:
+		# o-o-d checks for t-p-u
+		for arch in arches:
+			# If the package isn't in testing or the testing
+			# package produces no packages on this architecture,
+			# then it can't be out-of-date.  We assume that if
+			# the t-p-u package has produced any binaries for
+			# this architecture then it is ok
+
+			if not orig.is_present(src) or \
+			   (len(orig.binaries(src, arch)) == 0) or \
+			   (len(new.binaries(src, arch)) > 0):
+				continue
+
+			text = "Not yet built on <a href=\"http://buildd.debian.org/build.php?arch=%s&pkg=%s&ver=%s&suite=testing\"; target=\"_blank\">%s</a>" % (urllib.quote(arch), urllib.quote(src), urllib.quote(srcv), arch)
+
+			if arch in fuckedarches:
+				text = text + " (but %s isn't keeping up," % \
+					(arch) + " so never mind)"
+			else:
+				updatecand = 0
+
+			exc.addhtml(text)
+
 	pkgs = { src: ["source"] }
 	anybins = 0
 	for arch in arches:


Reply to: