| Title | "Automate It All" |
|---|---|
| Student | Nirbheek Chauhan |
| Mentor | Stephen Anthony Klimaszewski |
| Abstract | |
|
A few statistics:
Gentoo currently has 12462 packages, 24473 ebuilds[1] and 254 devs with 43 "away"[2]. Besides these, there are 2600 ebuilds sitting maintainer-wanted in bugzilla[3]. A conservative estimate of the current workload on developers comes out to 12500/250 = 50 packages per developer. This workload is more than enough to burn out even the most active dev in no time. This instead leads to orphaned packages, under-maintained packages, and in general reduces the level of QA an ebuild goes through. Two particular examples of tedious and potentially automatable tasks the student came across were: 1. Having to manually recompile all the reverse deps of xulrunner to test for breakage with xulrunner-1.9[4]. 2. Seeing hundreds of bugs being filed for a missing pkgconfig dependency[5] which had a trivial fix. Most developers have neither the time nor the energy to maintain dedicated chroots for testing. To make matters worse, the current system makes collaboration between developers very difficult since there is no central place where all the resources can be shared, statuses of the packages viewed, etc. This project intends to create a webapp cum framework which eases the workload of developers by providing them with an infrastructure that allows them to queue jobs which can then be pulled from the server by slaves, completed, and the results sent back. These jobs can be extremely flexible in nature since the maintainer will have very few restrictions on what he wants to do in the executables he uploads. This will result in the automation of a maintainer's tasks to a great degree. Sample Use Cases: - A library is upgraded. Packages that rdep on it can be auto-checked for breakage, and [Tracker] bugs automatically (after maintainer double-checking) generated in Gentoo Bugzilla. - Dependencies can be auto-verified for accuracy. Examples include missing depends, incorrect versions, incomplete deps (built_with_use), etc. - Arch-testing can become faster -- devs who don't have time to sit and do testing can just setup a slave (minimal configuration necessary) on their machine and pull jobs queued by other devs in the arch team. - Devs can use/write app-specific test scripts to verify that a package works. Perl modules which usually have an inbuilt `make test` are a good example. - Sane binpkg maintenance will become feasible -- bug 473[6] can then finally be closed. 1. http://gentoo-portage.com/Newest at 17/03/2008 12:03 GMT 2. http://www.gentoo.org/news/en/gmn/20080317-newsletter.xml 3. http://tinyurl.com/39dxwm 4. https://bugs.gentoo.org/show_bug.cgi?id=213296 5. http://tinyurl.com/2jmg2z 6. http://bugs.gentoo.org/show_bug.cgi?id=473 |
|