Commit Graph

15 Commits

Author SHA1 Message Date
Ettore Di Giacinto
c3197d70fc
Add boltdb implementation for packageset and db 2019-10-31 12:38:32 +01:00
Ettore Di Giacinto
0813f75546
Add packageset 2019-07-27 11:29:39 +02:00
Ettore Di Giacinto
db90a8f69c
Add package category and make fingerprint more unique 2019-06-14 17:40:24 +02:00
Ettore Di Giacinto
b29ce651b9
Expose Uses to interface 2019-06-12 21:32:15 +02:00
Ettore Di Giacinto
caa7c788ec
Drop State from package
Also tests for Clone()
2019-06-12 20:57:39 +02:00
Ettore Di Giacinto
cab133f229
Imeplement PackageDatabase
Consume InMemoryDatabase for now, which act as a singleton in-memory db.
2019-06-11 23:04:01 +02: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
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
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