Ettore Di Giacinto
4fbe84b30b
Support concurrency in InMemoryDB and reach feature parity with boltdb
2019-11-02 17:56:43 +01:00
Ettore Di Giacinto
c04e6496fb
Enhance output with consistent usage of logger
2019-11-02 10:26:28 +01:00
Ettore Di Giacinto
2b9e512272
Respect builder concurrency when resolving deps
2019-11-01 16:30:46 +01:00
Ettore Di Giacinto
e1fab91802
update vendor/
2019-11-01 16:29:08 +01:00
Ettore Di Giacinto
e835562543
Add logging package
...
it will abstract other frameworks eventually, but for now keep it simple
2019-11-01 16:27:44 +01:00
Ettore Di Giacinto
ef1d0e5573
Make also deps recalculation concurrent
2019-11-01 16:26:11 +01:00
Ettore Di Giacinto
eef03f8909
Add spinner
2019-11-01 13:08:53 +01:00
Ettore Di Giacinto
a4535c5777
Avoid panics from inner 'sh' library
2019-11-01 12:41:55 +01:00
Ettore Di Giacinto
624e991688
Parametrize concurrency
2019-11-01 12:41:31 +01:00
Ettore Di Giacinto
f61b79692c
Parallelize ebuild scanning
2019-11-01 12:03:48 +01:00
Ettore Di Giacinto
ff98bdfc16
Enable two-pass scan
...
Split dependency resolving ( definition <-> db mapping ) into a method of the tree (ResolveDeps),
and do not care of looking up for packages while parsing.
Note: it is slower but it is much accurate and we can
choose what to do with the ones which aren't resolved (and show a helpful message too).
2019-11-01 11:32:17 +01:00
Ettore Di Giacinto
71100688f2
Enhance cmd output
2019-10-31 12:41:12 +01:00
Ettore Di Giacinto
190d4f0064
Provide more accurate information in gentoo/simpleparser
...
Extract categories and such
2019-10-31 12:38:59 +01:00
Ettore Di Giacinto
66631f9af9
Add solver tests from fixtures
...
Try to load with the recipe builder and solve simple installation queries.
Also adapt tests to the more accuracy from simple parser
2019-10-31 12:38:59 +01:00
Ettore Di Giacinto
47128e932d
Check if package exists in db before adding it
2019-10-31 12:38:59 +01:00
Ettore Di Giacinto
e5db47a679
Add Explain() to Assertions and Packages
2019-10-31 12:38:59 +01:00
Ettore Di Giacinto
7f848ee5ef
Update vendor/
2019-10-31 12:38:59 +01:00
Ettore Di Giacinto
a5ceafca26
Add Tree parser with bolt
...
Also add Tree builder (Recipe) which can recompose trees.
2019-10-31 12:38:59 +01:00
Ettore Di Giacinto
9d0dc601b7
Update vendor/
2019-10-31 12:38:58 +01:00
Ettore Di Giacinto
8ca6051a04
Add cmd/ and main.go
2019-10-31 12:38:58 +01:00
Ettore Di Giacinto
c3197d70fc
Add boltdb implementation for packageset and db
2019-10-31 12:38:32 +01:00
Ettore Di Giacinto
da8734ed6a
Add a PoC of simple ebuild parser (WIP)
2019-08-24 13:15:40 +02:00
Ettore Di Giacinto
e8d151e935
Adapt the existing test to the fixture change
2019-08-24 13:15:10 +02:00
Ettore Di Giacinto
98ab6202fc
Drop unneeded fixture
2019-08-24 13:14:47 +02:00
Ettore Di Giacinto
283fae1248
Add tests fixtures
2019-07-27 11:31:01 +02:00
Ettore Di Giacinto
bff2c1b798
Add treebuilder interface and Gentoo prototype
2019-07-27 11:30:44 +02: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
9f3f715324
Add BuildFormula and ReuiresContains tests
2019-06-11 23:38:16 +02:00
Ettore Di Giacinto
3f762070fe
Add tests
2019-06-11 23:18:16 +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
a42d8e809f
update vendor/
2019-06-11 18:07:13 +02:00
Ettore Di Giacinto
cb89d946e5
Create cover target
2019-06-11 18:04:57 +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
5f98a665a5
Add code coverage
2019-06-06 17:16:32 +02:00
Ettore Di Giacinto
b32508eded
Fix make deps
2019-06-05 19:39:39 +02:00
Ettore Di Giacinto
da465b9228
Add travis file
2019-06-05 19:37:36 +02:00
Ettore Di Giacinto
e2442f8ed8
update vendor/
2019-06-05 19:14:29 +02:00
Ettore Di Giacinto
0bb72e67fd
Refactor package imports
2019-06-05 19:13:09 +02:00
Ettore Di Giacinto
d842198537
Update README
2019-06-05 18:55:01 +02:00
Ettore Di Giacinto
86472e7bf5
Normalize input data beforeahead
2019-06-05 18:49:35 +02:00
Ettore Di Giacinto
6e7cef4710
Add simple makefile
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