Gentoo Archives: gentoo-soc

From: Nils <nils.schlupp@×××××.com>
To: gentoo-soc@l.g.o
Subject: Re: [gentoo-soc] Proposal draft, feedback appreciated
Date: Thu, 02 Apr 2009 05:18:45
Message-Id: e584d3a60904012218g1b3c8e17od6e6eae27c522278@mail.gmail.com
In Reply to: Re: [gentoo-soc] Proposal draft, feedback appreciated by Andrey Falko
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.