Debian Continuous Integration
Description of the project: Debian is an unconventionally large software project, with thousands of different packages that need to be integrated to work together to support dozens or even hundreds of use cases. Every time a change is made to one package, that might impact any of the other related packages, and a project of such magnitude needs automation to help identifying potential problems as soon as possible.
The Debian Continuous Integration is an initiative to automate testing of these different components when any of them changes. Initially that is being accomplished by running their test suites following the DEP-8 standard, but other different types of checks might be added in the future. The Debian Continuous Integration is powered by a package called debci that will soon be part of the official Debian repository.
Confirmed Mentor: Antonio Terceiro
How to contact the mentor: (firstname.lastname@example.org, terceiro on the OFTC IRC network)
Confirmed co-mentors: Kartik Mistry (email@example.com, kart_ on the OFTC IRC network)
Deliverables of the project:
- improvement in the efficiency of debci with regard to the time it takes to run tests for a package, reflected in a reduction of the time it takes for debci to finish a full test run.
- support for different backends for debci, e.g. local backends such as kvm/lxc and remote backends such as jenkins, debile, LAVA etc.
- improvements to the debci web interface, as in provide more useful information for package maintainers, for the release/QA teams etc.
documentation for people setting up their own debci instance, which will also help volunteers who might want to help with the maintaince of Debian's instance of debci at http://ci.debian.net/
Desirable skills: Basic understanding of software testing techiniques, programming in shell script and some higher level dynamic language (Ruby|Perl|Python), version control with git
What the student will learn: software testing in a large scale software project, quality assurance, Debian packaging, system administration, web development. This project has the potential to reduce considerably the time it takes to release a new version of Debian.