Читаем The Debian Administrator's Handbook полностью

The mailing lists are, without a doubt, the best testimony to activity on a project, since they keep track of everything that happens. Some statistics (from 2007) regarding our mailing lists speak for themselves: Debian hosts more than 180 lists, totaling 175,000 individual subscriptions. The 45,000 messages sent each month generate 1 million e-mails daily.

Each specific service has its own system administration team, generally composed of volunteers who have installed it (and also frequently programmed the corresponding tools themselves). This is the case of the bug tracking system (BTS), the package tracking system (PTS), alioth.debian.org (FusionForge server, see sidebar), the services available on qa.debian.org, lintian.debian.org, buildd.debian.org, cdimage.debian.org, etc.

1.3.3.3. Development Teams, Transversal Teams

Unlike administrative teams, the development teams are rather widely open, even to outside contributors. Even if Debian does not have a vocation to create software, the project needs some specific programs to meet its goals. Of course, developed under a free software license, these tools make use of methods proven elsewhere in the free software world.

CULTURE CVS

CVS (Concurrent Versions System) is a tool for collaborative work on multiple files, while maintaining a history of modifications. The files in question are generally text files, such as a program's source code. If several people work together on the same file, cvs can only merge the alterations made if they were made to different portions of the file. Otherwise, these “conflicts” must be resolved by hand. This system manages modifications, line by line, by storing diff patches from one version to another.

CVS uses a central archive (called a CVS repository) to store files and the history of their modifications (each revision is recorded in the form of a diff patch file, intended to be used on the prior version). Everyone checks out a particular version (working copy) to work on. The tool allows one to view the modifications made to the working copy (cvs diff), to record them in the central repository by creating a new entry in the versions history (cvs commit), to update the working copy to include modifications made in parallel by other uses (cvs update), and to record a particular configuration in the history in order to be able to easily extract it later on (cvs tag).

CVS experts will know how to handle multiple concurrent versions of a project in development without them interfering with each other. These versions are called branches. This metaphor of a tree is fairly accurate, since a program is initially developed on a common trunk. When a milestone has been reached (such as version 1.0), development continues on two branches: the development branch prepares the next major release, and the maintenance branch manages updates and fixes for version 1.0.

cvs, however, does have some limitations. It is unable to manage symbolic links, changes in file or directory names, the deletion of directories, etc. It has contributed to the appearance of more modern, and free alternatives which have filled in most of these gaps. These include, especially, subversion (svn), git, bazaar (bzr), and mercurial (hg).

→ http://subversion.tigris.org/

→ http://git-scm.com/

→ http://bazaar-vcs.org/

→ http://mercurial.selenic.com/

Debian has developed little software of its own, but certain programs have assumed a starring role, and their fame has spread beyond the scope of the project. Good examples are dpkg, the Debian package management program (it is, in fact, an abbreviation of Debian PacKaGe), and apt, a tool to automatically install any Debian package, and its dependencies, guaranteeing the cohesion of the system after upgrade (its name is an acronym for Advanced Package Tool). Their teams are, however, much smaller, since a rather high level of programming skill is required for overall understanding of the operations of these types of programs.

The most important team is probably that for the Debian installation program, debian-installer, which has accomplished a work of momentous proportions since its conception in 2001. Numerous contributors were needed, since it is difficult to write a single program able to install Debian on a dozen different architectures. Each one has its own mechanism for booting and its own bootloader. All of this work is coordinated on the mailing list, under the direction of Otavio Salvador and Joey Hess.

→ http://www.debian.org/devel/debian-installer/

→ http://kitenet.net/~joey/blog/entry/d-i_retrospective/

Перейти на страницу:

Похожие книги