1 |
Thanks for the feedback. |
2 |
For now, i have moved the proposal over to google docs. If someone |
3 |
could take one last final glance at it then that would be great. |
4 |
The document is available at http://docs.google.com/Doc?id=dg3k7d6g_47dm77d7hk |
5 |
|
6 |
Thanks a lot, |
7 |
Nils Schlupp |
8 |
|
9 |
Here is also a local copy just in case: |
10 |
|
11 |
Proposal for an SCM snapshot management infrastructure: |
12 |
|
13 |
1. Objective – The objective of this project is to make it easier |
14 |
for maintainers to generate snapshots of packages that are pulled from |
15 |
SCM. Some projects do not produce source downloads outside of their |
16 |
SCM system. In my current portage tree i have located around 200 |
17 |
ebuild which rely on some sort of SCM. Many of these are live ebuilds, |
18 |
but some are simply versioned or certain branches. Moving snapshots of |
19 |
these packages to the Gentoo infrastructure will have multiple |
20 |
benefits. First, we can ensure the integrity of the code the user |
21 |
receives, even when upstream changes their tags or otherwise modifies |
22 |
the code the user is trying to access. The only current solution is |
23 |
for maintainers to manually generate snapshots and distribute these |
24 |
through the Gentoo infrastructure. Secondly, we can guarantee |
25 |
availability even is the upstream server should have issues. |
26 |
2. Abstract – This project will produce a daemon which will locate |
27 |
all ebuilds using a new scm-snapshot eclass and generate snapshots for |
28 |
them, possibly have maintainers check these for integrity, upload them |
29 |
to the infrastructure, and then modify the ebuild to include the url |
30 |
of the snapshot. It will also periodically scan The repositories to |
31 |
locate any changes and then update the snapshots, as well as notify |
32 |
the maintainers. The eclass will be provided in order to allow |
33 |
maintainers to opt-in on this, or to just remain with the current |
34 |
system. It will also handle the cases there the snapshot cannot be |
35 |
located or fails. In these cases it passes the ebuild on to the |
36 |
original scm class to handle. |
37 |
3. Deliverables – This project will produce one daemon which will |
38 |
be taking care of these tasks, as well as an eclass to be used in |
39 |
conjunction with it. The daemon will most likely be run as a cronjob |
40 |
on the infrastructure itself, but details would need to be worked out |
41 |
with the infrastructure team. It will save its current state as a |
42 |
pickled file in order to be able to quickly resume work. The eclass |
43 |
will provide the above described functionality. |
44 |
4. Changes to current architecture - This will produce a minimal |
45 |
need to adjust. I will inform current maintainers of the possibility |
46 |
to use this system, and help them migrate to it. Migration should not |
47 |
require much more then adding the new eclass to the inherit line and |
48 |
maybe a quick call to a function or two in the prepare statement. |
49 |
5. Milestones: (Not in order) |
50 |
1. Be able to search the entire tree efficiently for ebuilds |
51 |
requiring snapshot generation. |
52 |
2. Be capable to generate snapshots given a variety of SCM |
53 |
uri's and tag/branch combinations. |
54 |
3. Be able to scan repositories for changes in the source for |
55 |
this particular package. |
56 |
4. Be able to notify maintainers. |
57 |
5. Be able to upload snapshots to the required location to |
58 |
have it propagate through the infrastructure. |
59 |
6. Be able to modify the ebuild to add the new snapshot url |
60 |
and update the manifest. |
61 |
7. Generate an eclass to work in conjunction with the daemon. |
62 |
6. 5.Timeline: |
63 |
1. May 28: Final design specifications. This will be produced |
64 |
after discussions with the infra team, especially on how to best |
65 |
notify the daemon of new ebuilds, as well as where it will be located, |
66 |
and how it will interact with the tree. |
67 |
2. June 18: Have completed at least milestone 1 and moved |
68 |
forward in milestones 2 and 3. |
69 |
3. July 9: Have completed Milestones 1-3, most likely 4, as |
70 |
well as develop a plan for milestones 5 and 7. |
71 |
4. July 30: Have completed milestones 1-7 |
72 |
5. August 6: Hopefully all bug free :) |
73 |
6. August 10: All done, some cleanup and minor optimisation. |
74 |
7. August 17: Release version 1.0. |
75 |
7. Development Experience: |
76 |
1. Programmer for high school robotics team (Botball |
77 |
competition) and now college robotics club (Mostly c and derivatives). |
78 |
2. Developer for the Auto-Ndiswrapper project |
79 |
3. Scripting Linux for 1-2 years (Bash, Python). |
80 |
4. 2 years of programming education (in Java). |
81 |
8. Biography – I was born on January 8th, 1990 in Hamburg, Germany. |
82 |
I moved between Germany and the US numerous times, and have also lived |
83 |
in Switzerland for a while. Currently I am located in Norman, Oklahoma |
84 |
where I am attending the University of Oklahoma. I am majoring in |
85 |
Engineering Physics, while pursuing a second major/minor in CS. My |
86 |
interest has always been Robotics, and in the past 2-3 years it has |
87 |
shifted from the mechanical side over to the programming aspect. I am |
88 |
especially interested in artificial intelligence in multi agent |
89 |
systems, where multiple robots are programmed to work together, share |
90 |
information, and make independent decisions. I have been using Linux |
91 |
for around 2 years by now, and been using Gentoo for little over one |
92 |
year by now. This has also been the point at which I started to become |
93 |
interested in the inner workings of Linux, which has in part lead me |
94 |
to Gentoo and now to the Gsoc. |