Commit Graph

814 Commits

Author SHA1 Message Date
Ettore Di Giacinto
f3623cbb38 Allow to switch between database types in Gentoo Parser
Define types and allows to switch between boltdb and inmemory
2019-11-03 13:37:45 +01:00
Ettore Di Giacinto
847f93b8b7 Revert "Consume a context when sourcing ebuild in parallel"
This reverts commit 1ee2551325.
2019-11-03 13:27:13 +01:00
Ettore Di Giacinto
0923e91527 Add context timeout to sh parsing
It is causing issues as it hangs indefinetly and then we wait for goroutines to finish
2019-11-03 13:24:13 +01:00
Ettore Di Giacinto
1ee2551325 Consume a context when sourcing ebuild in parallel 2019-11-03 12:03:26 +01:00
Ettore Di Giacinto
f0e56d966b This should return, but needs a flag eventually 2019-11-03 12:02:33 +01:00
Ettore Di Giacinto
3ff9632b8b Refactor common code in logger 2019-11-03 10:50:23 +01:00
Ettore Di Giacinto
87406e05d3 Use available num of CPU as default 2019-11-03 10:50:07 +01:00
Ettore Di Giacinto
8c0ad2b571 Use InMemoryDB instead of Bolt in gentoo parser
Also refactor things a bit
2019-11-02 18:03:06 +01:00
Ettore Di Giacinto
9ec316312f Use singleton version of InMemoryDB when necessary (still needed from the solver) 2019-11-02 18:00:42 +01:00
Ettore Di Giacinto
b72a09ab1c Make logging concurrent-aware 2019-11-02 18:00:06 +01:00
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