1 |
Hi everyone, |
2 |
|
3 |
== Brief summary of this project == |
4 |
|
5 |
The aim of this project is to create scripts that automate the process |
6 |
of overlay creation/maintenance for R packages from repositories such |
7 |
as CRAN and Bioconductor. |
8 |
|
9 |
Longer: |
10 |
For the ebuild creation of a single package one needs to extract the |
11 |
package, copy-paste data from its description file to the ebuild and |
12 |
look up dependencies, which is time-consuming. |
13 |
Although trivial for a few number of packages, this is practically |
14 |
impossible to do by hand for repositories like CRAN (> 3500 packages), |
15 |
especially 'cause it also requires tracking changes (new / updated / |
16 |
removed packages). |
17 |
The solution is to automate that process and this is what this project is about. |
18 |
|
19 |
== Progress of this week == |
20 |
|
21 |
My plan for this week was: |
22 |
* improve dependency resolution, add some functionality (e.g. listener |
23 |
modules that log unresolved dependencies in a separate file) and make |
24 |
it more thread-able |
25 |
* add Manifest / metadata creation |
26 |
|
27 |
And that's what I've achieved: |
28 |
|
29 |
* dependency resolution |
30 |
-> listener modules, unresolved dependencies can now be logged to an extra file |
31 |
-> 'negative' result cache that stores unresolvable dependencies |
32 |
-> the dependency resolver supports threads now (one master and |
33 |
multiple worker threads) |
34 |
|
35 |
Manifest creation should work (needs more testing), I'm currently |
36 |
using the ebuild(1) interface to do this within a filtered |
37 |
environment, which contains only necessary variables from os.environ |
38 |
and adjusts portage variables (DISTDIR, FEATURES). |
39 |
|
40 |
Metadata creation works using a data tree (metadata root, description |
41 |
node, use flag list node, use flag nodes,...). This is inspired by how |
42 |
portage is reading metadata files. |
43 |
|
44 |
I'm on schedule. |
45 |
|
46 |
== Plans for the next (this) week == |
47 |
I'm now starting with 'putting all things together'. This means I'll |
48 |
first concentrate on an "R package -> ebuild in overlay" interface |
49 |
(including metadata, Manifest), which will later be part of an "local |
50 |
distfiles dir -> overlay" interface. |
51 |
|
52 |
-- |
53 |
Regards, |
54 |
André E. |