home *** CD-ROM | disk | FTP | other *** search
- <?xml version="1.0" encoding="ISO-8859-1"?>
- <article id="paper-252">
- <articleinfo>
- <title>Managing Debian</title>
- <author>
- <firstname>Martin</firstname>
- <surname>Michlmayr</surname>
- </author>
- <copyright>
- <year>2003</year>
- <holder>LinuxTag e.V.</holder>
- </copyright>
- </articleinfo>
-
- <section>
- <title>Introduction</title>
-
-
- <para>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 <ulink
- url="http://www.debian.org/social_contract#guidelines"> Debian Free
- Software Guidelines</ulink> which have later been adopted as the foundation
- of the <ulink url="http://www.opensource.org/docs/definition.php">Open
- Source Definition</ulink>. Furthermore, Debian has a <ulink
- url="http://www.debian.org/social_contract">Social Contract</ulink> in
- which the project lists its priorities and its promises explicitly. The
- document consists of five points:</para>
-
- <itemizedlist>
-
- <listitem><para><emphasis>Debian Will Remain 100% Free
- Software:</emphasis> the project promises that the Debian GNU/Linux
- distribution will always be free according to the Debian Free Software
- Guidelines.</para></listitem>
-
- <listitem><para> <emphasis>We Will Give Back to the Free Software
- Community:</emphasis> 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.</para></listitem>
-
- <listitem><para><emphasis>We Won't Hide Problems:</emphasis> the project
- maintains an open Bug Tracking System (BTS) in which information about all
- known bugs can be found.</para></listitem>
-
- <listitem><para><emphasis>Our Priorities are Our Users and Free
- Software:</emphasis> we will be guided by the needs of our users and the
- Free Software community.</para></listitem>
-
- <listitem><para><emphasis>Programs That Don't Meet Our Free-Software
- Standards:</emphasis> 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
- <emphasis>contrib</emphasis> and <emphasis>non-free</emphasis> areas on our
- FTP servers for software which is free but depends on non-free software and
- for non-free software itself, respectively.</para></listitem>
-
- </itemizedlist>
-
- <para>
- <inlinemediaobject>
- <imageobject>
- <imagedata fileref="picture-252-01.jpg" format="JPG"/>
- </imageobject>
- </inlinemediaobject>
- </para>
-
- <para>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?</para>
-
- <para>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.</para>
-
- </section>
-
-
- <section>
- <title>The Officers</title>
-
- <para>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
- <emphasis>root</emphasis> and therefore packages can maliciously or
- accidently cause great damage. Hence, the <ulink
- url="http://nm.debian.org/">New Maintainer</ulink> 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.</para>
-
- <para>The great exception to the flat hierarchy are Debian's officers who
- have a special status as defined in Debian's <ulink
- url="http://www.debian.org/devel/constitution">constitution</ulink>. 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.</para>
-
- <section>
- <title>The Project Leader</title>
-
- <para>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.</para>
-
- <para>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.</para>
-
- <para>Here are some examples of specific tasks the DPL performs:</para>
-
- <itemizedlist>
-
- <listitem><para>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.</para></listitem>
-
- <listitem><para>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.</para></listitem>
-
- <listitem><para>Make any decision which requires urgent
- action.</para></listitem>
-
- <listitem><para>Make any decision for whom nobody else has
- responsibility.</para></listitem>
-
- <listitem><para>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.</para></listitem>
-
- </itemizedlist>
-
- <para>The current Project Leader is Martin Michlmayr.</para>
-
- </section>
-
-
- <section>
- <title>The Project Secretary</title>
-
- <para>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.</para>
-
-
- <itemizedlist>
-
- <listitem><para>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.</para></listitem>
-
- <listitem><para>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.</para>
-
- <para>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.</para></listitem>
-
- <listitem><para>Interpreting the Constitution: The secretary is also
- responsible for adjudicating any disputes about interpretation of the
- constitution.</para></listitem>
-
- </itemizedlist>
-
- <para>The current Project Secretary is Manoj Srivastava.</para>
-
- </section>
-
- <section>
- <title>The Technical Committee</title>
-
- <para>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.</para>
-
- <para>The Technical Committee may:</para>
-
- <itemizedlist>
-
- <listitem><para>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.</para></listitem>
-
- <listitem><para>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.</para></listitem>
-
- <listitem><para>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.</para></listitem>
-
- <listitem><para>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.</para></listitem>
-
- </itemizedlist>
-
- <para>The current Chairman of the Technical Committee is Ian
- Jackson.</para>
-
- </section>
-
- </section>
-
-
-
- <section>
- <title>Teams</title>
-
- <para>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.</para>
-
- <para>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.</para>
-
- <para>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.</para>
-
- <section>
- <title>Quality Assurance</title>
-
- <para>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.</para>
-
- </section>
-
- <section>
- <title>FTP Master</title>
-
- <para>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.</para>
-
- </section>
-
-
- <section>
- <title>Listmasters</title>
-
- <para>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.</para>
-
- </section>
-
-
- <section>
- <title>Debian Admin</title>
-
- <para>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.</para>
-
- </section>
-
- <section>
- <title>Web Team & Translations</title>
-
- <para>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.</para>
-
- </section>
-
-
- <section>
- <title>Security Team</title>
-
- <para>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.</para>
-
- </section>
-
-
- <section>
- <title>Release Management</title>
-
- <para>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.</para>
-
- </section>
-
-
- <section>
- <title>New Maintainer</title>
-
- <para>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.</para>
-
- </section>
-
-
- <section>
- <title>Policy</title>
-
- <para>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.</para>
-
- </section>
-
- <section>
- <title>Legal</title>
-
- <para>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.</para>
-
- </section>
-
-
- </section>
-
-
-
- <section>
- <title>Infrastructure</title>
-
- <para>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
- <emphasis>debian-private</emphasis> 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, <emphasis>We Won't
- Hide Problems</emphasis>, the BTS is open to anyone. If a bug is not
- documented there, we probably don't know about it.</para>
-
- <para>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.</para>
-
-
- <section>
- <title>The Mailing Lists</title>
-
- <para>There are about 150 mailing lists, each with a specific topic. There
- are mailing lists where users can ask questions, such as
- <emphasis>debian-user</emphasis>, 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 <emphasis>debian-devel</emphasis> 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 <emphasis>debian-devel-announce</emphasis> which is required for
- all Debian developers since important announcements regarding the
- development of Debian are made there. The lists
- <emphasis>debian-announce</emphasis> and
- <emphasis>debian-security-announce</emphasis> are for general and security
- announcements, respectively, and are a must for every user of Debian.
- Also, <emphasis>debian-news</emphasis> 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 <ulink url="http://lists.debian.org/">web</ulink> -- everyone
- who is interested in Debian or specific aspects of Debian's development can
- subscribe to the lists of their choice.</para>
-
- </section>
-
-
- <section>
- <title>IRC</title>
-
- <para>IRC (Internet Relay Chat) is a real-time chat system with different
- channels dedicated to specific topics. There are various Debian related
- channels on <emphasis>irc.debian.org</emphasis>, the biggest being
- <emphasis>#debian</emphasis>. Many user questions are discussed on this
- channel and there are other channels more specifically aimed for
- developers.</para>
-
- </section>
-
-
- <section>
- <title>Bug Tracking System</title>
-
- <para>The <ulink url="http://bugs.debian.org/">Bug Tracking System</ulink>
- is an important foundation in Debian's development. Using tools like
- <emphasis>reportbug</emphasis>, 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
- <emphasis>unstable</emphasis> 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.</para>
-
- </section>
-
- <section>
- <title>Package Tracking System</title>
-
- <para>The <ulink url="http://packages.qa.debian.org/">Package Tracking
- System (PTS)</ulink> 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.</para>
-
- </section>
-
- </section>
-
-
- <section>
- <title>Summary</title>
-
- <para>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.</para>
-
- </section>
-
-
- </article>
-