26 Commits

Author SHA1 Message Date
Niels Thykier
69d42ffb36
solver: improve apply_order to simplify more code
Signed-off-by: Niels Thykier <niels@thykier.net>
2019-01-19 22:13:09 +00:00
Niels Thykier
b306700376
solver: Extract a function from _comute_group_order_adds
Signed-off-by: Niels Thykier <niels@thykier.net>
2019-01-19 22:13:08 +00:00
Niels Thykier
259fecf6cf
solver: Rename a variable to avoid confusion
Signed-off-by: Niels Thykier <niels@thykier.net>
2019-01-19 22:13:07 +00:00
Niels Thykier
cdcfe85bfa
solver: Replace dict with a proper object
Signed-off-by: Niels Thykier <niels@thykier.net>
2019-01-19 22:13:06 +00:00
Niels Thykier
93f101bee2
solver: Extract some common code into a function
Signed-off-by: Niels Thykier <niels@thykier.net>
2019-01-19 22:13:05 +00:00
Niels Thykier
2ed6161b49
solver: Refactor out a function to avoid duplicated code
Signed-off-by: Niels Thykier <niels@thykier.net>
2019-01-19 22:13:04 +00:00
Niels Thykier
af20634b12
solver: Merge some loops to reduce nesting level
Signed-off-by: Niels Thykier <niels@thykier.net>
2019-01-19 22:13:03 +00:00
Niels Thykier
b61e1086bd
solver: Invert an if-statement to reduce max indentation level
Signed-off-by: Niels Thykier <niels@thykier.net>
2019-01-19 22:13:02 +00:00
Niels Thykier
68407c53c0
Remove an unnecessary if-statement
Signed-off-by: Niels Thykier <niels@thykier.net>
2019-01-19 22:13:01 +00:00
Niels Thykier
9971714e27
solver: Merge two loops by using chain
Signed-off-by: Niels Thykier <niels@thykier.net>
2019-01-19 22:13:00 +00:00
Niels Thykier
16dc303190
solver: Reduce two small loops into a comprehension
Signed-off-by: Niels Thykier <niels@thykier.net>
2019-01-19 22:12:59 +00:00
Niels Thykier
d3e06fc45f
solver: Split _compute_group_order into three methods
Signed-off-by: Niels Thykier <niels@thykier.net>
2019-01-19 22:12:58 +00:00
Niels Thykier
c65b377c5d
solver: Split solve_groups into 3 smaller methods
Signed-off-by: Niels Thykier <niels@thykier.net>
2019-01-19 22:12:56 +00:00
Niels Thykier
7124313aa6
Make InstallabilityTester suite agnostic
Signed-off-by: Niels Thykier <niels@thykier.net>
2018-12-16 11:00:02 +00:00
Niels Thykier
07a407e810
Partly separate the solver from the inst_tester
Signed-off-by: Niels Thykier <niels@thykier.net>
2018-11-11 09:38:14 +00:00
Niels Thykier
530db5d3f7
Extract a BinaryPackageUniverse from the InstallabilityTester
The InstallabilityTester is suffering from a lack of clear purpose
because it serves multiple.  This commit extracts most of one of these
purposes into the BinaryPackageUniverse class while retaining the
original API of the InstallabilityTester.

Signed-off-by: Niels Thykier <niels@thykier.net>
2018-11-11 09:38:09 +00:00
Niels Thykier
c4931fb1b2
solver: Move a common variable out of an if
Signed-off-by: Niels Thykier <niels@thykier.net>
2018-09-30 12:19:38 +00:00
Niels Thykier
cd1f384012
inst-tester: Remove obsolete "safe-set" optimization
Signed-off-by: Niels Thykier <niels@thykier.net>
2018-09-30 12:19:34 +00:00
Niels Thykier
41978869ce Migrate solver's ad-hoc debug logging
Signed-off-by: Niels Thykier <niels@thykier.net>
2018-03-31 07:04:35 +00:00
Niels Thykier
69473eefca solver: Extract compute_scc into a function
Signed-off-by: Niels Thykier <niels@thykier.net>
2017-07-29 07:54:48 +00:00
Niels Thykier
bd375fdd85 solver: Make _compute_scc iterative
Rewrite _compute_scc to be iterative to avoid call recursion limit for
graphs with long dependency chains.

Signed-off-by: Niels Thykier <niels@thykier.net>
2017-07-29 07:40:15 +00:00
Niels Thykier
64653087d0 solver: Fix bug where some items were not emitted
Sometimes the solver would correctly compute which items are grouped
together, but then fail to emit some groups.  This is trivially
fixable by forcing an update of "before" + "after" relations.
Admittedly, this looks unnecessary, so it may just be hiding the bug.

Nonetheless, the change makes the new test_solver_simple_scc test
produce the expected result.

Signed-off-by: Niels Thykier <niels@thykier.net>
2017-07-28 21:36:01 +00:00
Niels Thykier
a14ced6403 Drop now unused "from __future__" imports
Signed-off-by: Niels Thykier <niels@thykier.net>
2016-11-22 20:21:06 +00:00
Niels Thykier
a768432eb2 solver.py: Add missing "no cover" pragma
Signed-off-by: Niels Thykier <niels@thykier.net>
2016-11-22 20:21:06 +00:00
Niels Thykier
20c2b87833 Sprinkle some "no cover" pragmas over the code base
Add some "no cover" to some unrecoverable exceptions
(e.g. misconfiguration) or base-class methods that are not intended to
be invoked.

Signed-off-by: Niels Thykier <niels@thykier.net>
2016-11-13 11:39:46 +00:00
Niels Thykier
9bc94db01c Refactor all modules into a britney2 subdir
That way they are all contained.

Signed-off-by: Niels Thykier <niels@thykier.net>
2016-11-13 08:02:00 +00:00