432 Commits

Author SHA1 Message Date
Colin Watson
7c8fd39803 Merge trunk up to 2014-08-05 2014-12-10 11:39:27 +00:00
Colin Watson
24e20560e7 Merge trunk up to 2014-07-13 2014-12-10 11:08:56 +00:00
Colin Watson
b3562dbfe8 Merge trunk up to 2014-05-24 2014-12-10 10:36:01 +00:00
Colin Watson
6904969c7c Merge trunk up to 2013-12-06 2014-12-09 16:02:16 +00:00
Colin Watson
11af066dda Make sure that self.binaries['tpu'][arch] is properly initialised. 2014-12-09 15:36:09 +00:00
Colin Watson
9627ee7661 Merge trunk up to second commit from 2013-11-27 (rewritten installability tester) 2014-12-09 15:12:29 +00:00
Colin Watson
3290b4cccf Merge trunk up to first commit from 2013-11-27 2014-12-09 14:48:58 +00:00
Colin Watson
da9e838067 Revert to r414; this gets things wrong if there are sources with some Architecture: all binaries in unstable and some incompletely-built architecture-dependent ones. 2014-11-12 12:36:53 +00:00
Colin Watson
301dd2df1e Refine merging of binaries: only count unstable-architecture-independent as built if all binaries are now architecture-independent. 2014-11-12 12:17:50 +00:00
Colin Watson
4cc353296a When merging binaries, count a binary as built in unstable if the testing architecture is architecture-dependent and the unstable architecture is architecture-independent. 2014-11-12 12:08:46 +00:00
Martin Pitt
d57c0bbeb8 autopkgtest: Update public Jenkins URL to not depend on /view/<Release> to be created 2014-10-31 08:35:03 +01:00
Colin Watson
9dec8a1daf Fix log message if Dates is missing. 2014-10-23 18:28:42 -04:00
Colin Watson
1982bf4bd1 Remove a stray "break" that caused broken out-of-date output. 2014-08-19 12:49:35 +01:00
Niels Thykier
b53e8fa501 Move the nuninst checker function to britney_util
Signed-off-by: Niels Thykier <niels@thykier.net>
2014-08-05 07:56:29 +02:00
Niels Thykier
f02c1fcb82 britney.py: Avoid making migration items from migration items
Signed-off-by: Niels Thykier <niels@thykier.net>
2014-08-05 07:56:29 +02:00
Niels Thykier
9d45143127 britney.py: Save a table look up
Signed-off-by: Niels Thykier <niels@thykier.net>
2014-08-05 07:56:29 +02:00
Niels Thykier
9487da51a1 britney.py: Correct the hash key in nuninst_arch_report
Signed-off-by: Niels Thykier <niels@thykier.net>
2014-08-05 07:54:53 +02:00
Niels Thykier
d41f7f2119 britney.py: Use defaultdict instead of "{}.setdefault"
Signed-off-by: Niels Thykier <niels@thykier.net>
2014-08-04 20:20:33 +02:00
Niels Thykier
ddf52bc7ca Exploit equivalency to skip unneeded computation
Signed-off-by: Niels Thykier <niels@thykier.net>
2014-08-04 20:20:33 +02:00
Niels Thykier
6f24be9954 britney.py: Refactor doop_source
Rename local variables and avoid repeated chained lookups.  In
particular, avoid confusing cases like:

   [...]
         version = binaries[parch][0][binary][VERSION]

   [...]
   binaries[parch][0][binary] = self.binaries[item.suite][parch][0][binary]
   version = binaries[parch][0][binary][VERSION]

Where "version" here will refer to two different versions.  The former
the version from testing of a hijacked binary and the latter the
version from the source suite (despite the look up using the "testing"
table, due to the testing copy being updated).

Notable renamings:
 * binaries => packages_t (a.k.a. self.binaries['testing'])
 * binaries[parch][0] => binaries_t_a
 * binaries[parch][1] => provides_t_a
 * Similar naming used for "item.suite" instead of "testing"

The naming is based on the following logic:
 * self.binaries from "packages" files
   (by this logic, it ought to be "self.packages", but that is
   for later)
 * The "_X_a" is short for "[<suite>][<parch>]" look ups.
 * binaries_X_a and provides_X_a are the specialised parts of
   packages_X_a that deal with (real) binary packages and
   provides (i.e. virtual packages) respectively.

Signed-off-by: Niels Thykier <niels@thykier.net>
2014-08-04 20:20:16 +02:00
Niels Thykier
33049b2b1c doop_source: Remove unncessary table loop up
Signed-off-by: Niels Thykier <niels@thykier.net>
2014-08-04 20:20:02 +02:00
Niels Thykier
4fd740dd8b doop_source: Remove redundant part of the return value
Signed-off-by: Niels Thykier <niels@thykier.net>
2014-08-04 20:20:02 +02:00
Niels Thykier
faa3f450e1 britney.py: Split iter_packages into two
Extract a specialised iter_packages_hint from iter_packages that only
deals with applying hints.  This simplifies iter_packages AND avoids
having to re-compute the uninstallability counters after each single
item in the hint.

This means that a hint can now avoid triggering expontential runtime
provided only that the "post-hint" stage does not trigger expontential
runtime.  Previously the hint had to be ordered such that none of the
items in the hint caused such behaviour (if at all possible).

Signed-off-by: Niels Thykier <niels@thykier.net>
2014-08-04 20:20:02 +02:00
Niels Thykier
6a19e254de britney.py: Handle version-ranged dependencies a bit smarter
Avoid creating two dependency clauses for dependencies emulating a
"version range" a la:

  Depends: pkg-a (>= 2), pkg-a (<< 3~)

Previously this would create two clauses a la:

 - (pkg-a, 2, arch), (pkg-a, 3, arch)
 - (pkg-a, 1, arch), (pkg-a, 2, arch)

However, it is plain to see that only (pkg-a, 2, arch) is a valid
solution and the other options are just noise.  This patch makes
Britney merge these two claues into a single clause containing exactly
(pkg-a, 2, arch).

Signed-off-by: Niels Thykier <niels@thykier.net>
2014-08-04 20:19:49 +02:00
Colin Watson
52ad167312 Fix substitution ordering mistake in out-of-date rendering. 2014-07-25 12:37:16 +01:00
Colin Watson
0a4f948e3a Allow Dates to be absent. 2014-07-24 17:35:47 +01:00
Colin Watson
0a2b1fd4b0 Add a --distribution option; parameterise most mentions of "ubuntu" using it. 2014-07-24 15:28:12 +01:00
Colin Watson
f7b4cbc5cb Drop --ubuntu-series alias option now that britney1 no longer uses it. 2014-07-24 15:20:09 +01:00
Colin Watson
d0d4ea5fa8 Rename --ubuntu-series option to just --series. 2014-07-24 15:18:26 +01:00
Niels Thykier
5e7417f416 britney.py: _compute_groups returns sets of tuples, not str
Fix a call site to use a tuple instead of a str when testing if a
package has been smooth-updated.

Signed-off-by: Niels Thykier <niels@thykier.net>
2014-07-13 10:01:14 +02:00
Niels Thykier
ad84f50d1b britney.py: dict does not have a .add (in _compute_groups)
Signed-off-by: Niels Thykier <niels@thykier.net>
2014-07-13 10:01:14 +02:00
Colin Watson
9dbef8c864 Adjust maybe-NBS check again, this time to check for newer versions of other binaries from the same source. 2014-07-10 09:22:40 +01:00
Colin Watson
f81e685f99 Fix out-of-date maximum version check to only check binaries, not sources. 2014-07-08 17:34:35 +01:00
Colin Watson
02e9779d35 Only flag an out-of-date package as possible NBS if the out-of-date version is also the maximum version across all architectures. 2014-07-08 15:12:22 +01:00
Colin Watson
18edacf8b2 Show a note for out-of-date binaries from a version between the one in testing and the one in unstable, since those are usually NBS and this makes such cases more searchable. 2014-07-08 14:32:22 +01:00
Niels Thykier
9b24a1d4e7 britney.py: Fix use of undefined variable
A currently dead branch in _compute_group uses an undefined local
variable.

Signed-off-by: Niels Thykier <niels@thykier.net>
2014-06-15 21:57:24 +02:00
Adam D. Barratt
28389f730e Remove an obsolete comment
The C library is no longer used so stop suggesting changing it when
there are issues.

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2014-06-15 17:18:25 +00:00
Niels Thykier
8d4753530c Britney: Fix malformed removal hints from auto hinter
Signed-off-by: Niels Thykier <niels@thykier.net>
2014-06-15 18:20:22 +02:00
Niels Thykier
271fb11b33 britney.py: Fix bug with hinting removals
Fix a bug in the auto hinter that could make think that sources had
already been removed.

Signed-off-by: Niels Thykier <niels@thykier.net>
2014-06-15 16:56:17 +02:00
Niels Thykier
c0409c1b04 Add auto hinter on top of the new installability tester
The "new" auto hinter relies on partial ordering to determine, when
what can migrate (and what needs to migrate at the same time).  At the
same time, it leverages on "_compute_groups" to allow it to include
"removals" in its hints.

Signed-off-by: Niels Thykier <niels@thykier.net>
2014-06-08 17:51:50 +02:00
Niels Thykier
ebc9af70fa Handle smooth updates better in "easy"-hints
Avoid smooth-updating libraries in hints, when all of their reverse
dependencies will certainly disappear in the same hint.

Note that in "hint"-hint, reverse dependencies removed in the
following "full run" will not cause the smooth-updated library to be
removed.  Instead these will still be removed in the end as usual, but
in some cases that is too late.

Signed-off-by: Niels Thykier <niels@thykier.net>
2014-06-08 17:44:44 +02:00
Niels Thykier
580f4a7f3d Rewrite, rename and extend find_upgraded_binaries
Rename find_upgraded_binaries into _compute_groups.  The new method
will also compute what binaries will be updated in or added to testing
after migration.

Signed-off-by: Niels Thykier <niels@thykier.net>
2014-06-08 17:05:23 +02:00
Colin Watson
3aab217f6c Make sure that containing directories exist before writing output files. 2014-06-06 14:45:55 +01:00
Colin Watson
e38a4842d6 Make all output files series-specific, and remove dependency on "testing" and "unstable" symlinks. 2014-06-06 13:22:26 +01:00
Colin Watson
6ac23e6d67 Add new --ubuntu-series option, replacing ADT_SERIES in the configuration file. Add ADT_ENABLE configuration file entry to allow disabling autopkgtests (previously done by setting ADT_SERIES to the empty string). 2014-06-05 11:42:14 +01:00
Jean-Baptiste Lallement
2a3a8cb657 autopkgtest.py: Document method read() and code simplification
britney.py: code simplification
2014-05-12 11:47:40 +02:00
Jean-Baptiste Lallement
7e80d47eb6 autopkgtest.py:
- A test for a package/version can be triggered by several distincts causes with different results. Modify the data structure to store this instead of only storing the last cause and result, leading to missing test results in excuses.
- Check if failures are regressions (there is at least one pass and migration is blocked) or if test has always been failing. In the latter case, migration is not blocked.
- Add colours to excuses.html to distinguishes the test results
- Point jenkins URL to lastBuild
2014-04-29 23:38:45 +02:00
Niels Thykier
d644d7554a Move "old_libraries" to britney_util
Signed-off-by: Niels Thykier <niels@thykier.net>
2014-03-10 18:48:04 +01:00
Niels Thykier
3f86ef3299 Move write_controlfiles to britney_util
Signed-off-by: Niels Thykier <niels@thykier.net>
2014-03-10 18:48:04 +01:00
Niels Thykier
329f1901b4 Factor write_sources into its own function
Signed-off-by: Niels Thykier <niels@thykier.net>
2014-03-10 18:48:04 +01:00