Commit Graph

428 Commits

Author SHA1 Message Date
Ettore Di Giacinto
92e27b7031
update vendor/ 2019-11-04 17:26:20 +01:00
Ettore Di Giacinto
573fe0332a
Add tests for helpers 2019-11-04 17:25:09 +01:00
Ettore Di Giacinto
b62966ca35
Consume CompilerBackend in Compiler 2019-11-04 17:21:19 +01:00
Ettore Di Giacinto
add0021cfd
Add compiler interfaces and build definition skeleton
Create compiler interface with switchable backends. For now it can resolve and
parse a `build.yaml` which is in the same folder as in `definition.yaml`

Add also tests to cover this and new fixtures
2019-11-04 17:21:19 +01:00
Ettore Di Giacinto
61c318d549
Set path during recipe load
Set path only when the recipe is loaded and not when it gets converted. In such way the internal temporary db knows where the sources where.
2019-11-04 17:14:32 +01:00
Ettore Di Giacinto
b32a6c2286
Wrap errors 2019-11-04 17:13:53 +01:00
Ettore Di Giacinto
9dc8fccd12
Add Rel() accessor to package 2019-11-04 12:36:55 +01:00
Ettore Di Giacinto
4dab89d209
Add support to store the path of the loaded packages 2019-11-04 12:35:21 +01:00
Ettore Di Giacinto
8c86f6c84d
Drop ID from marshalled content 2019-11-04 11:11:33 +01:00
Ettore Di Giacinto
6855c3bdf7
Add copy of LICENSE 2019-11-04 11:01:41 +01:00
Ettore Di Giacinto
24a6de3f29
Use Fatal() in cmd/ 2019-11-04 10:16:20 +01:00
Ettore Di Giacinto
0307b1faad
Consider also category when building up the luet tree 2019-11-03 18:39:15 +01:00
Ettore Di Giacinto
a5e125de4b
Query needs a category as well to find out the package 2019-11-03 17:24:47 +01:00
Ettore Di Giacinto
55214bc6c8
Extend tests for each supported dbtype 2019-11-03 13:53:41 +01:00
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