Name: Efraim Flashner
Background: I am 28 years old and married with a cute daughter. I'm currently a second year student at the Jerusalem College of Technology in Israel, majoring in Computer Science. In school we've been learning C++, C# and LISP so far. In my own time I've been extending what we've covered by learning the syntatic differences of C++ on linux and by using C, Java and shell scripting to get a more rounded knowledge base. I've been using linux off and on from 2007, switching to it as my daily driver in October 2010, and to Debian shortly after the release of Squeeze. I've been looking for a way to contribute back to Debian, and was unsure of where to start.
Project title: Package cross-building continuous integration
Project details: Cross-building support has become important as ARM development has become a major focus, but fast ARM build hardware remains rare. A lot of core work has been done to make this a reality in Debian, with multiarch and improved toolchain support. But most package maintainers are not aware of this, nor of the status of their packages. And many, many packages remain to be fixed. Continuous cross-build testing of packages and reporting the status in the Package Tracking System (http://wiki.debian.org/qa.debian.org/pts) would enable distribution of the large task of making this work everywhere.
- This needs cross-build infrastructure to be set up and integrated. A cross-aware buildd running cross-builds of new uploads for multiple target architectures, scripts to deploy such instances on (virtual) servers, PTS integration, web UI reporting current status and regressions. Many of the parts for this already exist to some degree, but code is needed for buildd cross-awareness, deployment, PTS and UDD integration and regression reporting. As well as an infinite amount of actual cross-build bug-fixes.
Synopsis: Create a cross-aware buildd that uploads packages and also hooks into the PTS and UDD.
Benefits to Debian: Currently most software is compiled on native hardware, this would allow packages to be compiled on any available hardware, allowing for more hardware platforms to have more up-to-date packages.
Deliverables: A continuously running cross buildd reporting status into the debian Package Tracking System.
Project schedule: I am not sure exactly of how the project will break up, but I imagine that that it could be divided into 3 parts: the cross-builder, the Web UI, and the uploading of the packages and information to the PTS. I have thus made a more general outline than I would've liked, but it can always be more finely tuned later.
- *Now - June 15: Background work, communicating with the mentor to hash out ideas and more finely understand how buildd works, familiarizing myself more with uploading packages, and how to interact with the APIs for the PTS and with Web UI.
- *June 16: Start work on the cross-builder first, without cross-building there is no project.
- * Configure automating downloading of new source code and uploading of finished packages and buildd logs and errors to the PTS.
- * Web UI to monitor, observe and control the whole process, rather than watching the terminal.
- *August 1st: Mid-term evaluations. I hope to have everything setup by this point and on tracking down bugs and monitoring for unusual behavior.
- * Improvements, clean up documentation, more testing.
- Sept 5 - Sept 20: Finish up anything outstanding
Exams and other commitments: I have 5 exams spread over the first month of GSoC but the extended exam period is planned to allow students to begin summer jobs immediately following the end of classes.
Other summer plans: We have a visit planned to the states to see my in-laws from August 7th-22nd, during which my wife and I both have built-in work periods with volunteer babysitting from our families.
Why Debian?: I like that Debian is the ancestor of so many other distros, that any contribution I could make to Debian would help many of the other distros available. I have it running on all the machines in our house, other than my wife's Mac, and love how easy it is to customize it to how I need it.
Are you applying for other projects in SoC? Not currently, but I am slowly looking over the other organizations.