debexpo / mentors.debian.net
Mentor: Christoph Haas
Summary: mentors.debian.net is currently a very specialized web-based repository that allows everybody to contribute software packages to Debian without the need to be a Debian Developer (or Debian Maintainer). It has successfully helped simplifying the sponsoring process in the last years. However it needs to be refactored and in the process should be turned into a generic piece of software that can be used for other Debian source/binary package repositories, too.
Required skills:
- Python 2.4 programming
- SQL databases (PostgreSQL, creating proper schemas with normalisation, foreign keys etc.)
- Understanding of Debian source packages (what files a source package consists of and what their meaning is)
- Basic knowledge of revision control systems (e.g. Mercurial or Subversion)
Optional skills:
- Python-based web frameworks like Pylons, Turbogears or Django or any other MVC framework
- Using ORMs (object-relations mappers) like SQLAlchemy
- Basic Javascript programming. Perhaps even experience with the simple jQuery Javascript library.
Description: mentors.debian.net has been around for years. It was started as a hacky Perl/CGI web interface. Two years later it was rewritten completely in Python/CGI making the source code more readable. But our tiny development team lacked serious Python experience so that the result was still far from perfect. After some brainstorming on the Debian mailing lists and on IRC we collected some interesting ideas (see also: DebianMentorsNet) on what the "next" mentors.debian.net could look like.
The idea is not only to "just" refactor the mentors.debian.net web site with the underlying maintenance scripts but to create something more generic. Our working title is "debexpo" (Debian package exposition) and I have created a Trac (wiki + bug tracker) at http://debexpo.workaround.org/trac/ to begin with. debexpo should work similar to Ubuntu's REVU tool or the Personal Package Archives (PPA). The debexpo software should be generic enough to provide the basis for mentors.debian.net as well as allow private repositories for anyone. The basic concepts are:
- A repository for source and/or binary Debian packages
- Generic enough to run both a quick'n'dirty personal binary package repository as well as a larger site like mentors.debian.net where packages are uploaded, reviewed, commented on etc.
- Emphasis on social networking (e.g. try to match package maintainers with sponsors who share the same interest or skills so a source package can be put into good shape and uploade in time)
- Make the sponsorship process as easy as possible while assuring a good quality of the packages
Convenient web interface that collects and presents all important information (e.g. getting information from the BTS that shows information on the bug reports that a package upload would close, an RSS feed of new uploades for sponsors, search functions, ...)
- Automatically check the uploaded package for obvious problems (as different repositories have different needs I thought of a way to write and enable "plugins" that check for different issues like lintian checks, a valid PGP signature on the package, etc.)
Currently I'm alone on the project. I think I have a good idea of what the resulting debexpo software should look like. "Pylons" (which is similar to Django or Turbogears) is a flexible web framework for such projects and I'm rather active in the Pylons project myself and have created real-life applications with it already. I'm usually very responsive and reachable via Jabber for mentoring. I'm open-minded regarding the general direction of the project. But I will probably insist that it will be done with Pylons because I have to maintain the software in the long run.
Note: In order to not reinvent the wheel one could work with the Ubuntu universe Team and their REVU2, which is currently in development: https://wiki.ubuntu.com/REVU2Spec