581 Commits

Author SHA1 Message Date
Niels Thykier
31377a7c39 Move loop invariant out of the loop
Signed-off-by: Niels Thykier <niels@thykier.net>
2016-01-17 20:37:45 +00:00
Niels Thykier
da5e797fc9 Remove unused variables/assignments
Signed-off-by: Niels Thykier <niels@thykier.net>
2016-01-17 20:37:45 +00:00
Paul Wise
cd66fc82d8 Do not hard-code codenames in the URL to the freeze policy
Closes: #808031
Signed-off-by: Niels Thykier <niels@thykier.net>
2016-01-17 20:37:44 +00:00
Niels Thykier
505e31b106 britney.py: Remove unused import
Signed-off-by: Niels Thykier <niels@thykier.net>
2016-01-16 09:46:58 +00:00
Emilio Pozuelo Monfort
f6c974fdb7 Point to the Stretch freeze policy
Signed-off-by: Emilio Pozuelo Monfort <pochu@debian.org>
2015-11-19 21:09:01 +01:00
Emilio Pozuelo Monfort
3bd5380afc britney.py: Fix migration of binNMUs for sources that have cruft
If we are ignoring cruft, new sources with cruft are migrating, but
binNMUs aren't. Fix that.
2015-11-01 10:09:30 +01:00
Adam D. Barratt
8480e1859c Always output excuses for packages with "wrong source" issues
Previously whether such packages received excuses, and the specific
content of such excuses, was dependent on the order in which their
binary packages were considered.

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2015-10-20 18:39:28 +00:00
Niels Thykier
1e99c780da britney.py: Fix the hint tester
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-20 17:17:57 +02:00
Niels Thykier
3b610160ad britney.py: Update nuninst after writing the "accepted" stats
Otherwise "pre" and "now" will always show exactly the same numbers.

Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-20 14:56:27 +02:00
Niels Thykier
9c3d0afaf5 britney.py: Remove sort_actions, we no longer need it
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-13 20:33:07 +02:00
Niels Thykier
bbc6c34ca5 britney.py: Make iter_packages repeat until no more actions work
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-13 20:33:07 +02:00
Niels Thykier
326cc0d98b Rewrite the main run to use the solver and allow combined migrations
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-13 20:33:06 +02:00
Niels Thykier
65f74c226d Make try_migration support multiple actions
This made iter_packages_hint a thin wrapper around try_migration, so
it was inlined into its only caller "do_all".

Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-13 20:33:06 +02:00
Niels Thykier
13d4d4801b britney: Factor out a try_migration method
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-13 20:33:06 +02:00
Niels Thykier
6db0ed5ac8 britney: Move table lookup out of get_dependency_solvers
The callers of get_dependency_solvers need to do those table lookups
anyway.  By moving it out, it is now possible to reuse the results.

Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-13 20:33:06 +02:00
Niels Thykier
681a7b8cd7 Log when compiling Installability tester
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-13 20:33:06 +02:00
Niels Thykier
a9ee64470e Always use pkg ids in the InstallabilityTester API
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-13 20:33:06 +02:00
Niels Thykier
2914a8a51b britney.py: Verify nuninst before updating control files
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-13 20:32:49 +02:00
Niels Thykier
7736b53c60 Drop now unused register_reverses and RDEPENDS
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-13 19:33:22 +02:00
Niels Thykier
3d5d328738 Use inst_tester to compute smooth updatable binaries
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-13 19:33:22 +02:00
Niels Thykier
5123bc2317 Remove the now unused RCONFLICTS field
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-09 21:06:06 +02:00
Niels Thykier
289807463e Rewrite computation and testing of "affected" packages
Rely on the Installability tester to locate all of the affected
packages plus their transitive reverse dependencies.  As the
InstallabilityTester is suite agnostic, the set of affected packages
now includes (versions of) packages not in testing, which is filtered
out during the check.

Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-09 21:06:06 +02:00
Niels Thykier
58edb64c99 Update nuninst correctly for arch:any -> arch:all migrations
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-08 08:07:43 +02:00
Niels Thykier
f3a8181bda britney.py: Fix statement without an effect
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-06 22:39:39 +02:00
Niels Thykier
7c5fdc8aca britney.py: Use "is" rather than "==" for None comparisons
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-09-06 21:41:45 +02:00
Ivo De Decker
606dbcb470 ignore arch all when looking for up-to-date bins
If we have an up-to-date arch all package available for this architecture,
that doesn't mean this architecture has an up-to-date build. We need an
architecture specific up-to-date package for that.

Signed-off-by: Ivo De Decker <ivodd@debian.org>
2015-09-06 19:30:47 +00:00
Ivo De Decker
984b07b58e Don't remove outdated binaries for fucked arches if they are in unstable
For fucked architectures, binaries from older versions are allowed to be in
testing, so we only remove them if they are gone from unstable.

Signed-off-by: Ivo De Decker <ivodd@debian.org>
2015-09-06 17:08:32 +00:00
Ivo De Decker
88bf620896 Add option to ignore cruft
Signed-off-by: Ivo De Decker <ivodd@debian.org>
2015-09-06 15:21:30 +00:00
Cyril Brulebois
d2fa0fb07c excuses: New try for block-udeb → d-i RM.
Signed-off-by: Cyril Brulebois <kibi@debian.org>
2015-08-11 22:26:57 +00:00
Cyril Brulebois
d2bdcfc237 Revert "excuses: Point to the d-i release manager when block-udeb is involved."
This reverts commit 6adee798cd0bec3b64c8a6315667d68ab3c16bd9.

Patching the wrong location considered unhelpful.

Signed-off-by: Cyril Brulebois <kibi@debian.org>
2015-08-11 22:25:23 +00:00
Cyril Brulebois
6adee798cd excuses: Point to the d-i release manager when block-udeb is involved.
Signed-off-by: Cyril Brulebois <kibi@debian.org>
2015-08-11 21:38:36 +00:00
Niels Thykier
5f98e6b37b Create a clone_nuninst function for iter_packages{,_hint}
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-06-02 21:33:52 +02:00
Niels Thykier
da83e4cc23 iter_pkg: Refactor nuninst cloning
Move nuninst cloning out of the check loop and always populate the new
nuninst entirely.

This will allow some simplifications in other places.

Signed-off-by: Niels Thykier <niels@thykier.net>
2015-06-02 21:33:52 +02:00
Niels Thykier
0043b09c45 britney.py: Avoid some O(n) look-ups in the auto-hinter
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-06-02 21:33:52 +02:00
Niels Thykier
843952d627 Avoid O(n^2) duplication handling when building hints
Use a set to filter out seen items to avoid doing O(n^2)
de-duplication.  For very large hints, this can take considerable
time.

Using "seen_items" to build the actual hints on the (unverified)
assumption that Python can do something "smart" to turn a set into a
frozenset faster than it can with a list.

Signed-off-by: Niels Thykier <niels@thykier.net>
2015-06-02 21:33:52 +02:00
Niels Thykier
72eb6af711 britney: Optimise original auto-hinter duplication handling
Britney is now smart enough to produce the same result from hints
regardless of the order of the items in the hint.  With this in mind,
we can have the original auto-hinter produce hints as sets and filter
out duplicates as we produce them.

Note that the hints are sorted to produce deterministic output (to
make it easier to compare the hints between runs and changes).

Signed-off-by: Niels Thykier <niels@thykier.net>
2015-06-02 21:33:52 +02:00
Niels Thykier
0b9006c36b britney.py: Pre-split self.options.*_arches
We always use them as lists, so we might as well just split them once
and be done with it.
2015-06-02 21:33:52 +02:00
Niels Thykier
bf3aa08023 britney.py: Minor optimisation to sort_actions
Avoid some cases of O(n^2) behaviour in sort_actions and reduce the
size of n for the remaining O(n^2)-ish behaviour by filtering out
removals early on.

Signed-off-by: Niels Thykier <niels@thykier.net>
2015-06-02 21:33:52 +02:00
Niels Thykier
d5cfd5aebd britney.py: Remove redundant arg to format
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-06-02 21:33:51 +02:00
Niels Thykier
e725647175 Be verbose when rejecting a hint due to invalid candidates
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-06-02 21:33:51 +02:00
Niels Thykier
d017fe1a8c Remove "leading" from hints - it provides no new information 2015-06-02 21:33:51 +02:00
Niels Thykier
2047eb1e50 Remove unused local variable
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-06-02 21:29:47 +02:00
Adam D. Barratt
b4bed1ca62 britney.py: reverse sense of tests for architecture-indep packages
It's more natural to say "check this package if the current arch is in
this list" than "do not check this package if the current arch is not
in this list"

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2015-04-27 19:43:54 +00:00
Adam D. Barratt
bc037efccb britney.py: typo fixes
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2015-04-27 19:14:08 +00:00
Adam D. Barratt
11eef30869 britney.py: drop inaccurate comment
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2015-04-27 18:50:48 +00:00
Anthony Towns
c7fbe91b2a britney: Take more care with hijacked binaries
This updates the doop_source and _compute_groups functions so
that binary packages that are built from a different source
aren't included as part of an update to the original source.
In the event that it's a binary-only update, also don't remove
the hijacked packages from testing.

This change also removes an obsolete comment regardarding pre-conditions
for the _compute_groups function.
2015-04-26 18:20:11 +02:00
Niels Thykier
d911314c2d britney.py: Enable the new consistency checks by default
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-04-26 18:20:11 +02:00
Niels Thykier
0c5651576a britney.py: Skip ESSENTIAL consistency check
The live-data tests rely on an inconsistency, since they were before
Britney started to record the Essential field.

Signed-off-by: Niels Thykier <niels@thykier.net>
2015-04-26 18:20:11 +02:00
Anthony Towns
c28bc84f57 britney: Check for mismatched packages between suites.
britney assumes that a package build is uniquely described by its
name, version and architecture. Particularly when constructing
Packages files by hand for testing purposes this assumption can be
violated, leading to confusing behaviour. This change makes britney
look for such mismatches, and report if any are found.
2015-04-26 18:20:11 +02:00
Niels Thykier
b4e4ba4681 Collect more statistics from the installability tester
Signed-off-by: Niels Thykier <niels@thykier.net>
2015-04-26 18:20:11 +02:00