335 Commits

Author SHA1 Message Date
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
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
Niels Thykier
3dc4a6367f Write "HeidiResultDelta" file containing the changes of the run
Based on Colin Watson's code to do the same from the "britney2-ubuntu"
repository[1] revision 306, 308 and 309.

Notable differences include:
 * output include version of source package being removed
 * output prefix removals with a "-" (otherwise it would be identical to
   a upgrade/new source with the change above).

[1] http://bazaar.launchpad.net/~ubuntu-release/britney/britney2-ubuntu/revision/306

Signed-off-by: Niels Thykier <niels@thykier.net>
2014-01-11 09:03:16 +01:00
Niels Thykier
36da23b5b7 britney.py: Remove obsolete comment about AIEEE
Signed-off-by: Niels Thykier <niels@thykier.net>
2013-12-15 05:13:12 +01:00
Ivo De Decker
0214b41a4f Add note when a pkg is being removed because it is not in sid
Signed-off-by: Niels Thykier <niels@thykier.net>
2013-12-11 21:56:51 +01:00
Niels Thykier
f9d2d78734 util: Add new "write_excuses" function
Signed-off-by: Niels Thykier <niels@thykier.net>
2013-12-11 21:21:15 +01:00
Ivo De Decker
c971474945 handle export for excuse with 'force' 2013-12-11 21:21:15 +01:00
Ivo De Decker
e109b446df add remove reason when package not in unstable 2013-12-11 21:21:13 +01:00
Ivo De Decker
369f01e8d2 first attempt at adding reason 2013-12-10 22:27:32 +01:00
Ivo De Decker
511a25707b add bug list to yaml 2013-12-10 22:27:32 +01:00
Ivo De Decker
b7d6ee82d9 first attempt at yaml logging 2013-12-10 22:26:26 +01:00
Ivo De Decker
ce6357b671 if hintsdir is defined, read hints from there
This introduces a new variable HINTSDIR, which overrides the location of the
Hints dir (normally it is read from the UNSTABLE dir).

Please note that this is the location of the dir that contains the Hints dir.

Signed-off-by: Niels Thykier <niels@thykier.net>
2013-12-06 22:45:01 +01:00
Ivo De Decker
1163101cf7 read hints earlier
This allow to do quicker test of the code that reads the hints.

Signed-off-by: Niels Thykier <niels@thykier.net>
2013-12-06 22:44:56 +01:00
Ivo De Decker
c7c16a2a25 if outputdir is defined, write dates file there
This introduces a new variable OUTPUTDIR, which overrides the location where
the new dates file is written. This allow to run britney against a read-only
copy of the data.

Signed-off-by: Niels Thykier <niels@thykier.net>
2013-12-06 22:44:50 +01:00
Julien Cristau
a2d1793ab6 Fix urgency reading to obey 'low'
Set the default to maxint until we've read something.

Reported-by: Ivo De Decker <ivo.dedecker@ugent.be>
Signed-off-by: Julien Cristau <jcristau@debian.org>
2013-12-02 20:48:06 +01:00
Julien Cristau
6fd11db7e9 Change the default urgency setting to medium
But don't force urgency to medium for new packages, they can still be
low.

Signed-off-by: Julien Cristau <jcristau@debian.org>
2013-12-01 19:01:19 +01:00
Niels Thykier
d3dea1be37 Remove the old installability tester
Signed-off-by: Niels Thykier <niels@thykier.net>
2013-11-27 19:54:22 +01:00
Niels Thykier
4030b5cb22 Rewrite installability tester
The new Installability Tester (IT) module replaces the remaining
C-parts.  Unlike C-implementation, it does not give up and emit an
"AIEEE" half-way through.

In order to determine installability, it uses two sets "musts" and
"never".  As the names suggest, the sets represents the packages that
must be (co-)installable with the package being tested and those that
can never be co-installable.  For a package to be installable, "musts"
and "never" have remain disjoint.

These sets are also used to reduce the number of alternatives that are
available to satisfy a given dependency.  When these sets are unable
to remove the choice completely, the new IT defers the choice to later.
This occasionally reduces backtracking as a later package may conflict
or unconditionally depend on one of the remaining alternatives.

Signed-off-by: Niels Thykier <niels@thykier.net>
2013-11-27 19:46:59 +01:00
Niels Thykier
f791c96f47 Defer building the nun-inst cache
This is needed for the next commit, where the "per-arch"
installability tester disappears.

Signed-off-by: Niels Thykier <niels@thykier.net>
2013-11-27 19:46:59 +01:00
Adam D. Barratt
e643daad28 Apply various typo and clarity fixes
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2013-09-18 20:40:00 +00:00
Adam D. Barratt
a881298103 Remove the C library placeholder for "pre-depends"
We stopped populating the element with real data some time ago, it's
time to drop it entirely.

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2013-09-18 10:00:04 +00:00
Colin Watson
4576882338 Support :any architecture qualifiers for multiarch
Multiarch adds a Depends: foo:any syntax, permitted only if the
target of the dependency is "Multi-Arch: allowed".  This has
been supported by dpkg and apt for some time and is now safe to
use in unstable.

[Adam D. Barratt: adjusted to use consts.py]

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2013-09-17 20:07:38 +00:00
Adam D. Barratt
54b641945d Update copyright
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2013-09-07 18:21:00 +00:00
Adam D. Barratt
f1291b7463 Rename make_hintitem() to make_migrationitem()
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2013-09-07 18:19:17 +00:00
Adam D. Barratt
e75c4a4815 Make MigrationItems versionned by default
As HintItem is now redundant, also replace it with a new class -
UnversionnedMigrationItem - and migrate users of the classes to use
the new versions.

Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2013-09-07 17:01:58 +00:00
Adam D. Barratt
89bc7c8d61 Replace uses of MigrationItem with HintItem
Signed-off-by: Adam D. Barratt <adam@adam-barratt.org.uk>
2013-09-07 16:59:06 +00:00
Niels Thykier
09e9e16431 Reduce the number of "used-once" lists
Where possible, avoid creating a list only to discard immediately
afterwards.  Example:

"""
  for x in sorted([x for x in ...]):
      ...
"""

Creates a list, passes it to sorted, which generates a new list and
sorts that copy.  Since sorted accepts an iterable, we can avoid the
"inner" list and just pass it a generator expression instead.

Signed-off-by: Niels Thykier <niels@thykier.net>
2013-08-11 15:23:45 +02:00
Niels Thykier
c554bffee4 Move newlyuninst to britney_util
Also, renamed it for consistency with the other X_uninst functions.

Signed-off-by: Niels Thykier <niels@thykier.net>
2013-07-10 20:01:04 +02:00
Niels Thykier
8c911748c8 Move eval_uninst to britney_util
Signed-off-by: Niels Thykier <niels@thykier.net>
2013-07-10 20:01:04 +02:00
Niels Thykier
a2d63aed07 Move write_heidi to britney_util
Signed-off-by: Niels Thykier <niels@thykier.net>
2013-07-10 20:01:04 +02:00
Niels Thykier
82771fb4ee Move {read,write}_nuninst to britney_util
Signed-off-by: Niels Thykier <niels@thykier.net>
2013-07-10 20:01:04 +02:00
Niels Thykier
d959541722 Move get_reverse_tree into britney_util
Rename get_reverse_tree and move it to britney_util with slightly
different arguments.

Signed-off-by: Niels Thykier <niels@thykier.net>
2013-07-10 20:01:04 +02:00
Niels Thykier
d3401d4829 Move the package loop into register_reverses
By moving the package loop inside register_reverses, it will be
invoked a lot less (reducing the overhead of invoking functions).

Signed-off-by: Niels Thykier <niels@thykier.net>
2013-07-10 20:01:04 +02:00
Niels Thykier
9dc6d1415e Move register_reverses to britney_util
Signed-off-by: Niels Thykier <niels@thykier.net>
2013-07-10 20:01:04 +02:00
Niels Thykier
88e8ff6005 Add container filters and use it to refactor get_reverse_tree
Signed-off-by: Niels Thykier <niels@thykier.net>
2013-07-10 20:01:04 +02:00
Niels Thykier
11fab49365 Merge get_reverse_tree and get_full_tree
Beside some "minor differences" they were computing the same "tree"
(read: "graph"), so merge them into one (get_reverse_tree) and
properly document return value and special cases.

Signed-off-by: Niels Thykier <niels@thykier.net>
2013-07-10 20:01:03 +02:00
Niels Thykier
5026e9ee6e Move old_libraries_format to britney_util
Signed-off-by: Niels Thykier <niels@thykier.net>
2013-07-10 20:01:03 +02:00
Niels Thykier
568d5f809c Move "undo_changes" to britney_util
Signed-off-by: Niels Thykier <niels@thykier.net>
2013-07-10 20:01:03 +02:00
Niels Thykier
df47518dae Move "constants" to a new consts module
Signed-off-by: Niels Thykier <niels@thykier.net>
2013-07-10 20:01:03 +02:00
Niels Thykier
9e14cb520c Move same_source to separate module
Signed-off-by: Niels Thykier <niels@thykier.net>
2013-07-10 20:01:03 +02:00
Niels Thykier
b505a5a357 Remove unused write_bugs
The method was last invoked in 2008 (commit 3dc3be1c7).

Signed-off-by: Niels Thykier <niels@thykier.net>
2013-07-10 20:01:03 +02:00
Niels Thykier
1942e00ee1 britney: Do not consider "smooth-updates-only" interesting
Signed-off-by: Niels Thykier <niels@thykier.net>
2013-07-09 18:11:22 +02:00