Ettore Di Giacinto
30a7312911
Compute upgrades
...
Make solver compute simply upgrades and the installer execute them.
Add simple upgrade test
2019-11-29 19:01:56 +01:00
Ettore Di Giacinto
ff3b322ea2
Expand also when selecting candidates to install/uninstall
2019-11-29 19:01:55 +01:00
Ettore Di Giacinto
d0c84d24a0
Expand also when ordering assertions
2019-11-29 19:01:52 +01:00
Ettore Di Giacinto
91b3daf180
Drop Best from solver and add cases for solver with expansion
2019-11-29 19:01:51 +01:00
Ettore Di Giacinto
c9d93454b8
Drop IsFlagged() from what the solver considers
2019-11-29 19:01:47 +01:00
Ettore Di Giacinto
b5381e0248
Make solver consume databases instead of world lists
...
first step - it is slower in the implementation for now, but all cases
seems to be sorted out.
Drop Flagged() and IsSet() from solver. the solver wont care, and only
the assertion value does matter (exception for uninstall)
2019-11-29 19:01:41 +01:00
Ettore Di Giacinto
da9e14fb45
Distinguish solverdb
2019-11-29 19:01:12 +01:00
Ettore Di Giacinto
3a7cfae9ae
Adapt solver test to structure change
2019-11-23 19:01:26 +01:00
Ettore Di Giacinto
542d45a646
Do not use interface in struct used for serialization
2019-11-23 00:29:44 +01:00
Geaaru
8989d3f8d7
Add String implementation
2019-11-16 17:29:58 +01:00
Ettore Di Giacinto
32dea6f7fd
Add Best() to solver for package selection based on version
2019-11-16 14:40:58 +01:00
Ettore Di Giacinto
602f5c68d5
Use emojis for icons
2019-11-16 14:16:59 +01:00
Ettore Di Giacinto
3e850e9607
Adapt tests and fixup races in spinner
...
Signed-off-by: Ettore Di Giacinto <mudler@gentoo.org>
2019-11-16 13:26:33 +01:00
Ettore Di Giacinto
b2060c82e3
Make DB Switchable
...
Fixes races conditions and make the DB Switchable. Also prepare inside
the CompilationSpec the tree of the deps to be built, and parallelize
only the building jobs.
Closes #7
Signed-off-by: Ettore Di Giacinto <mudler@gentoo.org>
2019-11-16 13:26:33 +01:00
Ettore Di Giacinto
c95e0ed91d
Add revdep calculation
...
Add CompilationSpecs type to handle slices of CompilationSpec, to
perform operation such as Unique() and Remove().
Add also dependencies and the spec associated to the Artifact, to track
how the artifact was generated.
Add revdeps compilation wrapper, and unit tests
2019-11-15 18:11:26 +01:00
Ettore Di Giacinto
83fb1d1219
Add Matches() to pkg.Package
2019-11-15 18:04:46 +01:00
Ettore Di Giacinto
a85f4a53ec
Fix topological ordering
...
Keep unordered things on top and add two ways of topological sorting
Note: AssertionHash cannot order here as doesn't know the start point
2019-11-12 17:28:22 +01:00
Ettore Di Giacinto
e7a328bca7
Fix compilation and hash image calculation. Tests fails on spec (installing d)
2019-11-12 00:13:03 +01:00
Ettore Di Giacinto
8550265d75
Add assertion hashing
2019-11-11 14:58:12 +01:00
Ettore Di Giacinto
2dd56e9e49
Create a type for lists of PackageAssertion, and move Order() inside it
2019-11-11 11:02:47 +01:00
Ettore Di Giacinto
1131a52f97
Extend the test also for the packages that doesn't have a special ordering
2019-11-09 11:18:20 +01:00
Ettore Di Giacinto
a3b4d953d7
Add disequality test for assertion ordering
2019-11-09 11:16:22 +01:00
Ettore Di Giacinto
f7efbe23f2
Add topological order for assertions
2019-11-09 10:47:18 +01:00
Ettore Di Giacinto
e5db47a679
Add Explain() to Assertions and Packages
2019-10-31 12:38:59 +01:00
Ettore Di Giacinto
f47e907dda
Refactor
2019-06-11 18:48:09 +02:00
Ettore Di Giacinto
ff582ce77c
Enhance Uninstall and resolve conflict sets
...
Compute a minimum conflict set over the uninstall.
Adds also tests for specific cases covered by Uninstall now
2019-06-11 18:03:50 +02:00
Ettore Di Giacinto
0bb72e67fd
Refactor package imports
2019-06-05 19:13:09 +02:00
Ettore Di Giacinto
86472e7bf5
Normalize input data beforeahead
2019-06-05 18:49:35 +02:00
Ettore Di Giacinto
632619fe91
Add uninstall
...
Uninstall can be done in different ways - the most accurate would be to try find a minimum subset of packages that gives conflicts and try to reduce them gradually.
E.g. this could be done with other SAT algorithms. For now we keep things simple and we compute the uninstalls as an indirect of an installation from an empty profile.
Also take care of corner cases where world has no clauses, and fixes a typo in building the world formula
2019-06-05 18:49:35 +02:00
Ettore Di Giacinto
fef6467cc9
Rename Solve to Install
2019-06-05 18:49:35 +02:00
Ettore Di Giacinto
2b095601eb
Handle case when no packages are installed in the system, and add test for it
2019-06-05 18:49:35 +02:00
Ettore Di Giacinto
39a3e433a7
Cleanup
2019-06-05 18:49:34 +02:00
Ettore Di Giacinto
a342bc515f
Implement basic install algorithm
2019-06-05 18:49:34 +02:00
Ettore Di Giacinto
5184a26e69
Build formulas recursively
2019-06-05 18:49:34 +02:00
Ettore Di Giacinto
e6239f416b
Make formula built less complex
2019-06-05 18:49:34 +02:00
Ettore Di Giacinto
1084941240
Draft
2019-06-05 18:49:34 +02:00