[LTNet]OPEN-EVENTS::OPEN MUSIC::MINICONTENT::KNOPPIX LINUXTAG.org
Cornerstone
// LinuxTag 2004
Besuchen Sie uns auch n臘hstes Jahr wieder auf dem LinuxTag 2004 im Karlsruher Messe- und Kongresszentrum. Fr n臧ere Details und den genauen Termin besuchen Sie bitte die LinuxTag Homepage.
EUROPAS GRヨSSTE GNU/LINUX MESSE UND KONFERENZ
KONFERENZ-CD-ROM 2003
Hauptseite Vortr臠e Bcher History Software Knoppix Sponsoren Abspann Impressum
Hauptseite//Vortr臠e//Managing Debian

Managing Debian

Martin Michlmayr


Introduction

Debian is one of the most unique Free Software projects in existence today. Not only is it one of the largest and most successful projects, it is also unique in its stance towards the philosophy of Free Software. The project has defined the Debian Free Software Guidelines which have later been adopted as the foundation of the Open Source Definition. Furthermore, Debian has a Social Contract in which the project lists its priorities and its promises explicitly. The document consists of five points:

  • Debian Will Remain 100% Free Software: the project promises that the Debian GNU/Linux distribution will always be free according to the Debian Free Software Guidelines.

  • We Will Give Back to the Free Software Community: software written for Debian will be free and made available to the whole community. Furthermore, bug fixes and enhancements for existing software will be given back to the author of that software.

  • We Won't Hide Problems: the project maintains an open Bug Tracking System (BTS) in which information about all known bugs can be found.

  • Our Priorities are Our Users and Free Software: we will be guided by the needs of our users and the Free Software community.

  • Programs That Don't Meet Our Free-Software Standards: software which is not free according to the Debian Free Software Guidelines might still be needed by our users. While such software cannot become a part of the Debian distribution, there are contrib and non-free areas on our FTP servers for software which is free but depends on non-free software and for non-free software itself, respectively.

Debian GNU/Linux is the most comprehensive Linux distribution available to date. It has over 10,000 packages and is available for 11 architectures. Debian GNU/Linux 3.0 (woody) has been released for alpha, arm, hppa, i386, ia64, m68k, mips, mipsel, powerpc, s390 and sparc and other ports are in development. Debian is created by a large number of volunteers who are distributed all over the world. In total, there are over 800 official Debian developers and more than 200 other contributors. An interesting question is how Debian actually works. How can so many volunteers, distributed all over the world, work together effectively and produce a distribution with such a high degree of complexity?

One important factor which helps to keep Debian together and work smoothly is certainly the project's organizational structure and its infrastructure. Debian has existed for almost 10 years and, over the time, the project has established a solid infrastructure which works very well. In the following, the organizational structure and infrastructure which makes Debian work will be introduced. It will also be investigated who carries out coordination and management tasks in the project and how this is done.

The Officers

In general, Debian has a very flat hierarchy. With some exceptions, all official Debian developers have the same rights. This is one of the reasons why Debian has a very thorough application process. Once an application is accepted, they can upload packages to the main archive of Debian. Those packages are installed on an individual's computer as root and therefore packages can maliciously or accidently cause great damage. Hence, the New Maintainer process, which admits new Debian developers, checks the identity, philosophy (with regards to Free Software and the Social Contract) and technical skills of an applicant.

The great exception to the flat hierarchy are Debian's officers who have a special status as defined in Debian's constitution. As the Debian project grew, it became apparent that there needed to be a set of semi-formal rules to help in conflict resolution, and as a result the constitution was written. The Debian constitution describes the organizational structure for formal decision making in the Project. The constitution delineates who makes decisions, and what powers are attached to each such decision making individual or body. The officers listed in the constitution consist of the Debian Project Leader (DPL), the Project Secretary and the Technical Committee.

The Project Leader

The Debian Project Leader (DPL) is the official representative of the Debian Project. He or she has two main functions, one internal and one external. In the external function, he represents the Debian Project to others. This involves giving talks and presentations about Debian and attending trade shows, as well as building good relationships with other organizations and companies. Internally, the Project Leader manages the project and defines its vision. He should talk to other Debian developers, especially to the delegates, to see how he can assist their work. A main task of the Project Leader therefore involves coordination and communication.

The Project Leader is chosen in an election in which all Debian Developers are eligible to vote. The Project Leader's term of office is one year. Nine weeks before the leadership post becomes vacant, the Project Secretary initiates a new election. During the first three weeks, any Debian Developer can become a candidate for this post by nominating themselves. The next three weeks are used for campaigning. Each candidate posts their platforms and everyone can direct questions to one or all candidates. The last three weeks consist of the polling period during which developers may cast their votes.

Here are some examples of specific tasks the DPL performs:

  • Appoint Delegates or delegate decisions to the Technical Committee: the Project Leader may define a specific area of responsibility and delegate it to a Debian developer.

  • Lend authority to other Developers: the Project Leader may make statements support of support for points of view or for other members of the project.

  • Make any decision which requires urgent action.

  • Make any decision for whom nobody else has responsibility.

  • Together with SPI, make decisions affecting property held in trust for purposes related to Debian: the Project Leader may make decisions about how money owned by Debian is to be used.

The current Project Leader is Martin Michlmayr.

The Project Secretary

Unlike other delegates, who are appointed by the Project Leader, the next Project Secretary is appointed by the Project Leader and the current Project Secretary. In case the current secretary and the project leader disagree, they must ask the board of Software in the Public Interest (SPI), Debian's legal organization to appoint a Secretary.

  • Conducting votes: The most visible task performed by the secretary is conducting votes for the project -- notably the Project Leader elections, but also any other votes that are run (General Resolutions, for example). Running a vote also entails determining the number and identity of the people eligible to vote, for the purpose of calculating quorum.

  • Standing in for other Officers: The Project Secretary can stand in for the Leader, together with the Chairman of the Technical Committee. In this situation, they may jointly make decisions if they consider it imperative to do so -- but only when absolutely necessary and only when consistent with the consensus of the Developers.

    If there is no Project Secretary or the current Secretary is unavailable and has not delegated authority for a decision then the decision may be made or delegated by the Chairman of the Technical Committee, as Acting Secretary.

  • Interpreting the Constitution: The secretary is also responsible for adjudicating any disputes about interpretation of the constitution.

The current Project Secretary is Manoj Srivastava.

The Technical Committee

The Technical Committee is the body which makes the final decision on technical disputes in the Debian project. It can consist of up to eight members and usually has at least four members.

The Technical Committee may:

  • Decide on any matter of technical policy: This includes the contents of the technical policy manuals, developers' reference materials, example packages and the behavior of non-experimental package building tools.

  • Decide any technical matter where Developers' jurisdictions overlap: In cases where Developers need to implement compatible technical policies or stances (for example, if they disagree about the priorities of conflicting packages, or about ownership of a command name, or about which package is responsible for a bug that both maintainers agree is a bug, or about who should be the maintainer for a package) the technical committee may decide the matter.

  • Make a decision when asked to do so: Any person or body may delegate a decision of their own to the Technical Committee, or seek advice from it.

  • Overrule a Developer (requires a 3:1 majority): The Technical Committee may ask a Developer to take a particular technical course of action even if the Developer does not wish to; this requires a 3:1 majority.

The current Chairman of the Technical Committee is Ian Jackson.

Teams

In addition to the officers whose roles and powers are explicitly described in the constitution, several teams have formed naturally. These teams have clear areas of responsibility, and are almost exclusively technical in nature. Since very few Debian developers are paid for their work on Debian, they tend to do what they most enjoy.

The teams (and there are a number of them) form simply; when more than one Debian developer wishes to work on a given task, and when that's technically feasible, they do. Having demonstrated both the skill to perform a given task, and the willingness to do so, the teams are typically well-staffed with knowledgeable and enthusiastic participants.

The end result is that it's rare that any single Debian developer is overburdened, and a level of peer review and technical excellence that is widely held with respect.

Quality Assurance

The Quality Assurance (QA) team tries to make sure that high quality standards are held up. It maintains packages which temporarily do not have a maintainer. Also, it searches for inactive maintainers and buggy packages. If a maintainer is found who does not maintain their packages anymore, the packages are taken away so other maintainers can take them and take care of them properly. Although no one gave the Quality Assurance group the explicit power for this, they have established authority by doing it.

FTP Master

The FTP masters are responsible for Debian's software archive. They maintain the software which drives the archive and perform the day-to-day work which is needed. This involves processing new packages and removing packages on the request of the maintainer of the QA group.

Listmasters

Debian offers about 150 mailing lists to facilitate the communication between developers and users. The listmasters make sure that the mailing lists are working properly and that as few spam as possible reached the mailing lists. They also deal with user questions and requests regarding the mailing lists.

Debian Admin

Debian Admin is responsible for the debian.org machines and hence much of Debian's infrastructure. Debian offers a wide variety of ports to many architectures and has many different machines on which architecture specific bugs and packaging issues can be tested. Furthermore, Debian Admin is responsible for the main infrastructure, such as machines running the web, FTP and mailing list services.

Web Team & Translations

The web team maintains Debian's extensive web pages. They are internally maintained in CVS and written in WML from which HTML is generated. There is a large number of volunteers who translate the web pages to other languages.

Security Team

The Security Team tracks security issues in released Debian packages and issues advisories and updated packages. There are full members and secretaries. The security secretaries cannot publish advisories on their own, but primarily track security issues and provide patches and updated packages to full members, who can then issue an advisory.

Release Management

Release management is a very important task in every Free Software project because someone has to do the coordination effort needed in order to get new releases out of the door. In the past, Debian had one Release Manager working on this. Since recently, he is helped by Release Assistants who help making sure Debian is ready to release. The decisions about the release are made solely by the Release Manager, however.

New Maintainer

New Maintainer (NM) is the process which admits new Debian developers. The Debian Account Manager (DAM) is a delegated position who has the authority to create new accounts. The NM Front Desk coordinates the overall process and makes sure that everything works smoothly. They coordinate with the DAM, the applicants and also with the Application Managers (AM) who lead applications through this process.

Policy

Debian has 10,000 packages created by almost 1000 different people. In order to ensure that Debian is an integrated system, a set of guidelines has been created which describe to which standards a package has to conform. This document, Debian Policy, is maintained by a group of experienced developers. There are also detailed guidelines how the Policy document may be changed.

Legal

There are always important legal issues to discuss when distributing software created by others. The legal team is responsible for making a coherent decision about legal questions. For example, they are the first contact when the question arises if a particular license can be regarded as Free Software.

Infrastructure

One of the most important factors which holds Debian together is the project's solid infrastructure. Most coordination and communication is carried out through public mailing lists, IRC channels and the Bug Tracking System (BTS). One aspect of Debian's development model is that it is open for anyone. All mailing lists (with the exception of debian-private where sensitive or confidential issues are sometimes discussed) are open and everyone can subscribe to them or read the archives on the web. Also, all bugs found in Debian packages or feature requests are submitted through the Bug Tracking System. In accordance with the 3rd point of the Social Contract, We Won't Hide Problems, the BTS is open to anyone. If a bug is not documented there, we probably don't know about it.

This infrastructure is essential for the way Debian works. The developers are distributed all over the world and hence effective means of communication had to be created. The mailing lists, the IRC channels, the Bug Tracking System and recently also the Package Tracking System (PTS) facilitate communication and coordination. In fact, they do not only allow communication between developers, but also between developers and users. Users can follow the mailing lists and describe their problems with the current system, their requirements and wishes. Debian's development model is truly open -- anyone can get involved and make a change, be it by reporting bugs, providing good comments or patches to known problems. This is also beneficial for companies which use Debian. They see exactly in which direction Debian is moving and can also get involved to drive a release forwards.

The Mailing Lists

There are about 150 mailing lists, each with a specific topic. There are mailing lists where users can ask questions, such as debian-user, as well as user mailing lists in specific languages. Most mailing lists, however, are mainly aimed for Debian developers or other interested parties to discuss specific technical aspects of Debian. The list debian-devel is the big development discussion list, but there are many smaller lists dedicated to a specific topic, such as various porting mailing lists. Additionally, there is debian-devel-announce which is required for all Debian developers since important announcements regarding the development of Debian are made there. The lists debian-announce and debian-security-announce are for general and security announcements, respectively, and are a must for every user of Debian. Also, debian-news is a good way to stay up-to-date what is happened around Debian. A complete index of mailing lists can be found on the web -- everyone who is interested in Debian or specific aspects of Debian's development can subscribe to the lists of their choice.

IRC

IRC (Internet Relay Chat) is a real-time chat system with different channels dedicated to specific topics. There are various Debian related channels on irc.debian.org, the biggest being #debian. Many user questions are discussed on this channel and there are other channels more specifically aimed for developers.

Bug Tracking System

The Bug Tracking System is an important foundation in Debian's development. Using tools like reportbug, users can easily submit bug reports and feature requests. The maintainer of the package automatically receives all bug reports and can then follow-up and ask for more information or immediately fix the bugs. When a developer uploads a new package to the unstable archive of Debian, they can automatically close bugs with the upload -- that way, users are informed that their bugs have been solved in that specific upload.

Package Tracking System

The Package Tracking System (PTS) is a great way to see all kinds of information about a specific package at one spot. Different information is collected by the PTS and displayed on one summary page. Furthermore, the PTS allows users or developers of a piece of software packaged for Debian to subscribe to all bug reports filed against a specific package. This is a great way to stay informed of what is going on with a package and to help out -- when you know a solution for a bug, you can simply respond to the mail and it will be sent to the bug submitter, the maintainer of the package and get archived on the web so everyone has access to the useful information.

Summary

There are many means of coordination in Debian. The infrastructure, consisting of the mailing lists, the IRC channels and the Bug Tracking System among others, are a very solid foundation which enable efficient communication. Furthermore, there are various members of the project who are involved with coordination tasks. The constitution defines the roles and power of the Project Leader, the Project Secretary and the Technical Committee. However, there are many additional teams which have formed to fullfill a specific role. It is very often the case in Debian that organizational structure is generated implicitly over time when someone starts working on a job by themselves. Since all Debian developers are volunteers to Debian, nobody is paid for a specific task. Instead, everyone does what they like to do. Once someone has performed a specific job for some time and do a good job, other developers will recognize this and acknowledge their authority. The best advice for people who are interested in helping with Debian's development is therefore to simply get involved, and perform good work which is needed. Do not wait until someone assigns you a specific task, but find an area which needs help and get involved.

Impressum // ゥ 2003 LinuxTag e.V.