1 |
André, |
2 |
|
3 |
congratulations on the successful completion! |
4 |
|
5 |
You mention that it is now in layman. I looked and cannot find any |
6 |
mention of roverlay. Could you add instructions on how to access via |
7 |
layman? |
8 |
|
9 |
EBo -- |
10 |
|
11 |
On Sep 26 2013 8:03 PM, André Erdmann wrote: |
12 |
> Hi everyone, |
13 |
> |
14 |
> == Overview == |
15 |
> |
16 |
> This project is about creating an overlay of R packages, without |
17 |
> requiring much interaction. Overlay creation itself was already |
18 |
> implemented in last year's GSoC project "Automatically generated |
19 |
> overlay |
20 |
> of R packages", with "roverlay" [0] as result. This year's work |
21 |
> focused |
22 |
> on extending roverlay and facilitating overlay maintenance. |
23 |
> |
24 |
> I'm going to give an insight on what's been done this summer, without |
25 |
> going too much into details. |
26 |
> |
27 |
> |
28 |
> == Overlay creation features == |
29 |
> |
30 |
> * RSUGGESTS USE_EXPAND variable |
31 |
> |
32 |
> Instead of a single "r_suggests" USE flag, overlay creation now |
33 |
> produces |
34 |
> per-package USE_EXPAND flags (r_suggests_<sth>). These flags can also |
35 |
> be |
36 |
> renamed and grouped. |
37 |
> |
38 |
> * extended package rules system |
39 |
> |
40 |
> package rules match a set of packages by name, origin,... using |
41 |
> boolean |
42 |
> expressions and apply actions to them, which manipulates their |
43 |
> metadata |
44 |
> or causes packages to be ignored. The general concept and |
45 |
> syntax/parser |
46 |
> was implemented prior to this year's GSoC, but lacked actions. Now, |
47 |
> packages can be "relocated" (category, name, $SRC_URI), dependency |
48 |
> resolution can be influenced (add/ignore dependencies) and ebuild |
49 |
> variables (LICENSE,...) can be set. Additionally, support for |
50 |
> "else"-blocks has been added, which makes writing of rule files |
51 |
> easier. |
52 |
> |
53 |
> * support for SLOTs in resolved dependencies (including sub-slots) |
54 |
> |
55 |
> * patch generated ebuilds, import ebuilds into the overlay |
56 |
> |
57 |
> |
58 |
> == Improved overlay quality == |
59 |
> |
60 |
> * selfdep validation |
61 |
> |
62 |
> This feature ensures that all dependencies on packages provided by |
63 |
> the |
64 |
> generated overlay are satisfiable ("candidates" exist), which |
65 |
> improves |
66 |
> the overlay's consistency. |
67 |
> |
68 |
> * dependency resolution: look up package dependencies in own repo |
69 |
> first |
70 |
> |
71 |
> More accurate dependencies if a package is available from more than |
72 |
> one |
73 |
> repo. |
74 |
> |
75 |
> * handle file collisions (package available from >1 repo) |
76 |
> |
77 |
> Very important, because it keeps the package mirror directory |
78 |
> collision-free. |
79 |
> |
80 |
> * revbump if upstream modifies a tarball without renaming it |
81 |
> |
82 |
> |
83 |
> == Misc == |
84 |
> |
85 |
> * (dependency resolution) console reimplementation with support for |
86 |
> tab |
87 |
> completion, command history |
88 |
> |
89 |
> * API for using roverlay's functionality externally (dependency |
90 |
> resolution and remote-sync) |
91 |
> |
92 |
> * "Event Hooks", execution of scripts on certain events, e.g. |
93 |
> automatic |
94 |
> metadata cache creation (suggested by heroxbd) and git commit/push |
95 |
> after |
96 |
> overlay creation |
97 |
> |
98 |
> * up-to-date documentation [1] |
99 |
> |
100 |
> |
101 |
> == Helper scripts == |
102 |
> |
103 |
> * roverlay-setup |
104 |
> |
105 |
> This script takes care of generating a config file, creating |
106 |
> directories |
107 |
> with proper permissions and managing event hook scripts. |
108 |
> It's mostly intended for setting up a roverlay server, which can be |
109 |
> done |
110 |
> with "roverlay-setup" or "roverlay-setup-interactive"/"emerge |
111 |
> --config |
112 |
> roverlay". |
113 |
> |
114 |
> * roverlay-sh, a /bin/sh wrapper which sets up a environment similar |
115 |
> to |
116 |
> what's used for "Event Hooks" (access to variables like $OVERLAY) |
117 |
> |
118 |
> * roverlay-status |
119 |
> |
120 |
> Creates status reports based on mako templates and roverlay's stats. |
121 |
> Can |
122 |
> also be used as CGI script. |
123 |
> |
124 |
> |
125 |
> == Conclusion and Future directions == |
126 |
> |
127 |
> After 2 summers and some work in between, roverlay is now (more or |
128 |
> less) |
129 |
> complete. What's left to do is some more testing, updating the |
130 |
> roverlay |
131 |
> server and then making the R overlay available via layman. |
132 |
> |
133 |
> Finally, I'd like to thank Denis (Calchan), my mentor, for |
134 |
> suggestions, |
135 |
> testing and guidance throughout the past months, and for encouraging |
136 |
> me |
137 |
> to participate this year again ;) |
138 |
> |
139 |
> Credits also go to Benda (heroxbd) for a patch to the R-packages |
140 |
> eclass |
141 |
> and suggesting metadata cache creation (which then led to the "Event |
142 |
> Hooks" feature), and Ebo for making me aware of a dependency |
143 |
> resolution |
144 |
> issue. |
145 |
> |
146 |
> |
147 |
> [0] |
148 |
> http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=summary |
149 |
> [1] |
150 |
> |
151 |
> http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=blob_plain;f=doc/html/usage.html;hb=HEAD |
152 |
> |
153 |
> Regards, |
154 |
> André E. |