dpkg-source: Add test dependencies to .dsc

Martin Pitt mpitt at debian.org
Mon Mar 2 10:15:22 UTC 2015

Package: dpkg
Version: 1.17.24
User: autopkgtest-devel at lists.alioth.debian.org
Usertags: autopkgtest


Adam and I just discussed how to improve DEP-8 autopkgtest regression
detection on uploading packages. Right now we only run tests for
reverse binary dependencies of a package that got uploaded, but we ran
into several cases where also running reverse test dependencies (i. e.
Depends: in debian/tests/control) would have been useful to catch
regressions before landing them [1]. For example, a recent binutils
upload broke the glibc build/test (but libc6 doesn't depend on
binutils), and updating linux from 3.18 to 3.19 broke the legacy
nvidia driver.

Originally I thought we should have a "test control index" similar to
the archive's Packages.gz and Sources.gz. But that is very expensive
to generate, as you would have to unpack thousand(s) of source
packages, extract debian/tests/control, and do that often enough to be
useful. Also, it would require changing DAK, Launchpad, and all the
other tooling around archives.

A simpler idea would be to make dpkg-source -b add a new
XS-Autopkgtest-Depends: header, which aggregates all Depends: lines of
debian/tests/control, possibly filter out '@' (which are a packages'
own binaries, not reverse dependencies) for cleanliness, and put them
into the .dsc that way, so that they appear in Sources.gz. That way
they would always be current.

The obvious downside is that this brings some extra clutter. Right now
we have some 1300 packages with tests, but their number has grown
fast. On the other hand, a lot of packages just use "Depends: @", i.
e. just test-depend on themselves, so for those we don't need to add
anything. Most just have a few extra dependencies, but I've also seen
some which depend on 10 packages. But even if we assume 3000 packages
with actual reverse test dependencies, and one screen line on average
worth of Depends: (both of which are rather big overestimates), the
total impact on the Sources index would be +240 kB uncompressed, or
perhaps 30 kB compressed. Compared to sid's current Sources.gz which
is 34 MB uncompressed and 7.4 MB xz'ed that by and large gets lost in
the noise.

Adam or I will be happy to work on a patch, but I'd like to discuss
this first before we start coding.



[1] "landing": In Debian that would mean unstable → testing, in Ubuntu
    it would mean devel-proposed → devel.
Martin Pitt                        | http://www.piware.de
Ubuntu Developer (www.ubuntu.com)  | Debian Developer  (www.debian.org)

More information about the autopkgtest-devel mailing list