Name Arnaud Fontaine Email arnaud@andesi.org Project title Distribution wide-tracker tools (DWTT) and collaborative repository of meta-informations about source packages (CRMI). Synopsis DWTT is about providing tools to handle and follow changes that need to be done on many Debian packages. It would be generic enough to handle things like library transitions, moves to another python/perl version, policy changes (think /usr/doc -> /usr/share/doc, or rewrite of the init scripts to use LSB functions)... CRMI is a way to store meta-informations about each source package in a wiki-like way, everybody could contribute to them. The first application of this structure would be to store up-to-date watch files of all Debian packages. But in general, it would be helpful for QA people to have things like upstream URL, email of upstream mailing list, URL of CVS/SVN/whatever repository easily available in a standardized manner on the Package Tracking System. Benefits to the Debian Community The DWTT will give effective tools to handle large-scale changes within Debian. These tools will facilitate the coordination with a larger number of people. In turn it could mean reaching releases goals in shorter timeframes and managing more goals for a given release. The CRMI gives a new opportunity to non-technical contributors to help out. The meta-informations stored in the system are meant to be reused in several other services like the PTS, packages.debian.org where they provide more informations to developers who are looking for upstream code/patches or to users who are looking for a dedicated support mailing list, or online documentation. By having more watch files, we can effectively also keep Debian more up-to-date. Project details The transitions between two incompatible versions of a library are difficult to follow because they affect many packages which need to be fixed. Using the DWTT the process of handling such large-scale changes is streamlined: 1/ Create a new project in the DWTT and describe the changes which are needed. 2/ List the packages affected by the changes. 3/ Each package is assigned one or more bugs. This can be done via the web interface or the mail interface. The user is free to generate with a script the mail sent to the mailbot. 4/ The system manages usertags on the related bugs so that the BTS can provide a real-time view of the work left. The system provides automatically an up-to-date view of the work left. This structure works well for "technical changes" where the use of the BTS is natural. But the DWTT will also offer to handle large-scale changes without involving the BTS. In that case the initiator can describe himself the steps involved. This could be used to track the progress of other projects like "review of the description field", "security review", "QA review" or "writing watch files". Here's a list of features that the system will offer: * web page listing the status of the project (with progress statistics if possible) * possibility to put a lock on a package for a few hours (avoid duplication of work) * provide help to do proper mass-bug filing * provide help to contact all maintainers who are concerned In the future, the DWTT may be an interesting tool for BSPs coordination. The DWTT may also be used together with the CRMI for managing the meta-informations provided by the CMRI. The CRMI primary goal is to provide meta-informations about the source package. Those information can come from users working with a dedicated web interface or from scripts which extract data from the source package themselves. In some cases, it will be both at the same time. Watch files provided by the package would be automatically integrated in the system by a script but contributors are still free to edit it via the web interface. Due to the wiki-like nature of this system, it will keep an history of the changes and will enable anyone to restore an older version of a field. Changes will be sent to the Package Tracking System to let people who are concerned review them. The system will offer those meta-informations in several forms: - directly via an URL mechanism: http://meta.qa.debian.org/get.cgi/package/ => full RFC822 header with all meta-info available on the package http://meta.qa.debian.org/get.cgi/package/field => only the value of the given field - full database dump in a format like "Packages.gz" The system may also support localization of some meta-information like for example "Mailing list for user support" as those lists may exist in several languages. Project schedule * Project duration: 11 weeks (10 June - 30 August) week 1 Write the design of DWTT/CRMI and publish them early to get useful feedback from others (for example use cases that were not imagined yet). Choose a framework for the development. All features to develop should be listed in the design documents. week 2 Write the core components of the DWTT specified by the design. These components must be interface independant in order to make future improvements easier (like new interfaces or anything else). week 3-5 Write the web interface using the chosen framework and DB. At the middle of this milestone, the interface will be basically usable in order to show how the project looks like (beta release). Following the possible first users advices and finish the web interface. The release will be made on a private server for test target until the end of the summer of code. week 6 Write the mail interface to the DWTT. These two interfaces will be written during the project, as the libraries are interface-independant, it will allow another interface to be written. week 7 Write the core components of the CRMI. As the DWTT, these components have to be UI-independant. week 8-10 Write the web interface in the same way as the DWTT. At the middle of this timeframe, a first beta-release will be publish. Finally, a release will be made on a same public server as the DWTT. week 11 Complete developer documentation wherever needed, write some user documentation of the infrastructures. Improve visual appeareance of the websites with some nice CSS. Bio I'm currently studying computer science at the university of Grenoble (France). I switched to Debian GNU/Linux about 5 years ago. I am involved in the Debian project (mostly python packages [0], member of the debian-python team, english to french translation) and in the Debian GNU/Hurd porting effort too (package fixing and porting, bug reporting). I have also created a french-speaking website about Debian [1]. I have already written some projects using python (especially websites), and some months ago CherryPy and Kid. I have also worked for a small company on a e-business website with Python, CherryPy and Kid. I am quite familiar with these tools, and I plan to use them if possible and whenever it makes sense. References [0] http://qa.debian.org/developer.php?login=arnaud@andesi.org [1] http://www.andesi.org (in french)