Gentoo Archives: gentoo-soc

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

Replies