Els abundants resultats finals produïts pel projecte Debian deriven simultàniament del tasca en la infraestructura realitzada per desenvolupadors Debian experimentats, de la feina individual o col·lectiva dels desenvolupadors en els paquets Debian, i de la resposta dels usuaris.
1.3.1. Els desenvolupadors Debian
Debian developers have various responsibilities, and as official project members, they have great influence on the direction the project takes. A Debian developer is traditionally generally responsible for at least one package, but according to their available time and desire, they are free to become involved in numerous teams and projects, thus acquiring more responsibilities within the project.
Package maintenance is a relatively regimented activity, very documented, or even regulated. It must, in effect, comply with all the standards established by the
Debian Policy. Fortunately, there are many tools that facilitate the maintainer's work. The developer can, thus, focus on the specifics of their package and on more complex tasks, such as “squashing“ bugs.
La Normativa, un element essencial del Projecte Debian, estableix les normes per assegurar tant la qualitat dels paquets com la perfecta interoperatibilitat de la distribució. Gràcies a aquesta Normativa, Debian roman consistent malgrat la seva mida gegantina. Aquest Normativa no està escrita en pedra, sinó que evoluciona contínuament gràcies a les propostes formulades a la llista de correu
debian-policy@lists.debian.org
. Les esmenes que són acordades per totes les parts interessades són acceptades i aplicades al text per un petit grup de mantenidors que no tenen responsabilitat editorial (ells només inclouen les modificacions acordades pels desenvolupadors Debian que són membres de l'abans citada llista. Pots llegir les propostes de modificació en curs al sistema de seguiment d'errors:
La Normativa ofereix una considerable quantitat de detall dels aspectes tècnics de l'empaquetat. La mida del projecte també genera problemes organitzatius; aquests són tractats per la Constitució de Debian, que estableix una estructura i mitjans per a la presa de decicions. En altres paraules: un sistema formal de governança.
Aquesta constitució defineix un seguit de rols i càrrecs, a més de responsabilitats i atribucions de cadascun. És particularment important adonar-se que els desenvolupadors de Debian sempre tenen l'autoritat per prendre la darrera decisió votant en una resolució general, on una majoria qualificada de tres quarts (75%) dels vots és requerida per a fer alteracions significatives (com les que tinguin impacte en els Documents de la Fundació). Amb tot, els desenvolupadors cada any elegeixen un «líder» per representar-los en reunions, i assegurar la coordinació interna entre els diferents equips. Aquesta elecció és sempre un període de discussions intenses. El rol de líder del Projecte Debian (
DPL) no és definit formalment per cap document: els candidats al lloc normalment proposen la pròpia definició del càrrec. A la pràctica, els rols del líder inclouen el ser el representant davant dels mitjans de comunicació, coordinar els equips “interns”, i oferir un guiatge general al projecte, amb el que els desenvolupadors poden adherir-s'hi: els punts de vista del DPL són aprovats implícitament per la majoria dels membres del projecte.
Específicament, el líder té autoritat real: el seu vot desfà empats, pot prendre qualsevol decisió que no estigui assignada a l'autoritat d'algú altre i pot delegar part de les seves responsabilitats.
Since its inception, the project has been successively led by Ian Murdock, Bruce Perens, Ian Jackson, Wichert Akkerman, Ben Collins, Bdale Garbee, Martin Michlmayr, Branden Robinson, Anthony Towns, Sam Hocevar, Steve McIntyre, Stefano Zacchiroli, Lucas Nussbaum, Neill McGovern, Mehdi Dogguy, Chris Lamb, Sam Hartman, Jonathan Carter, and Andreas Tille.
La constitució també defineix un «comitè tècnic». El rol essencial d'aquest comitè és decidir sobre aspectes tècnics quan desenvolupadors no arriben a un acord entre ells. Altrament, aquest comitè pren un rol consultiu per a qualsevol desenvolupador que no pren una decisió per a la qual és responsable. És important fixar-se que només s'involucra quan és cridat a fer-ho per alguna de les parts en qüestió.
Finalment, la constitució defineix el càrrec de «secretario del proyecto», que està a càrrec de l'organització de les votacions relacionades amb les vàries eleccions i resolucions generals.
El procés de “resolució general” (
GR o «general resolution» en anglès) està completament detallat a la constitució, des del període inicial de discussió fins al recompte final dels vots. L'aspecte més interessant del procés és a l'hora de votar: els desenvolupadors han d'ordenar les diferents opcions de vot entre elles, i el guanyador és triat amb el
mètode Condorcet (més específicament, el mètode Schulze). Per a més detalls veieu:
Even if this constitution establishes a semblance of democracy, the daily reality is quite different: Debian naturally follows the free software rules of the do-ocracy: the one who does things gets to decide how to do them. A lot of time can be wasted debating the respective merits of various ways to approach a problem; the chosen solution will be the first one that is both functional and satisfying… which will come out of the time that a competent person puts into it.
Aquesta és l'única manera de guanyar-se medalles: fes quelcom útil i ensenya que funciona bé. Molts equips «administratius» a Debian operen per cooptació, preferint voluntaris que ja han contribuït i demostrat la seva competència. La naturalesa pública de la feina d'aquesta equips fa possible als nous contribuïdors l'observar i començar a ajudar sense caler cap privilegi especial. És per això que Debian és sovint descrit com una «meritocràcia».
This effective operational method guarantees the quality of contributors in the “key” Debian teams. This method is by no means perfect, and occasionally there are those who do not accept this way of operating. The selection of developers accepted in the teams may appear a bit arbitrary, or even unfair. Furthermore, not everybody has the same definition of the service expected from these teams. For some, it is unacceptable to have to wait eight days for inclusion of a new Debian package, while others will wait patiently for three weeks without a problem. As such, there are regular complaints from the disgruntled about the “quality of service” from some teams.
1.3.2. El paper actiu dels usuaris
Hom es pot preguntar si és rellevant mencionar els usuaris entre aquells que treballen dins del projecte Debian, però la resposta és clarament que sí: ells juguen un paper crític al projecte. Lluny de ser "passius", alguns usuaris usen versions de Debian en desenvolupament i regularment registren informes d'error per indicar problemes. Altres fins i tot van més enllà i envien idees per a millores mitjançant un registre d'error amb un nivell de criticitat de "wishlist", o fins i tot enviant correccions al codi font anomenades pedaços ("patches" en anglès) (veieu
Secció 1.3.2.3, «Enviant correccions»).
1.3.2.1. Informant errors
L'eina fonamental per a l'enviament d'errors a Debian és el Debian Bug Tracking System (Debian BTS, sistema de seguiment d'errors de Debian), que és usat en molts àmbits del projecte. La part pública (la interfície web) permet als usuaris veure tots els errors registrats, amb l'opció de mostrar-los ordenadament i filtrats segons diferents criteris, com ara el paquet afectat, la severitat, l'estat, l'adreça del reportador, l'adreça del mantenidor encarregat, etiqueta, etc. També és possible veure el llistat històric de totes les discussions associades a cadascun dels errors.
Sota la superfície, el BTS de Debian és basat en el email: tota la informació que es desa ve de missatges enviats per les diferents persones involucrades. Qualsevol correu enviat a
12345@bugs.debian.org
serà, així, associat a la història de l'error amb número 12345. Les persones autoritzades poden «tancar» un error escrivint un missatge que descrigui la motivació per tancar-lo a
12345-done@bugs.debian.org
(un error es tanca quan el problema indicat queda resolt o deixa de ser rellevant). Es pot reportar un error nou enviant un missatge a
submit@bugs.debian.org
d'acord amb el format específic que identifica el paquet afectat. L'adreça
control@bugs.debian.org
permet l'edició de tota la «metainformació» relacionada amb l'error.
El BTS de Debian té altres característiques funcionals, com ara l'ús d'etiquetes per associar als errors. Per a més informació, mira
Users can also use the command line to send bug reports on a Debian package with the reportbug
tool. It helps making sure the bug in question hasn't already been filed, thus preventing redundancy in the system. It reminds the user of the definitions of the severity levels, for the report to be as accurate as possible (the developer can always fine-tune these parameters later, if needed, e.g. using the bts
command). It helps writing a complete bug report, without the user needing to know the precise syntax, by writing it and allowing the user to edit it. This report will then be sent via an e-mail server (by default, a remote one run by Debian, but reportbug
can also use a local server).
Aquesta eina primer es focalitza en les versions de desenvolupament, que és on els errors seran resolts. En efecte, els canvis no són benvinguts en una versió estable de Debian, amb molt poques excepcions en cas d'actualitzacions de seguretat o d'importància (si, per exemple, un paquet no funcionés en absolut). Una correcció d'un error menor en un paquet Debian ha de, per tant, esperar a la següent versió estable.
1.3.2.2. Traducció i documentació
Addicionalment, nombrosos usuaris satisfets dels serveis oferts per Debian volen contribuir el seu granet de sorra al projecte. Així com no tothom té els nivell apropiat d'experiència en programació, poden triar en col·laborar en la traducció i la revisió de la documentació. Hi llistes de correu específiques per a idiomes per a coordinar aquesta feina.
1.3.2.3. Enviant correccions
Els usuaris més avançats seran capaços de proporcionar una correcció per a un programa enviant un pedaç.
Un pedaç ("patch" en anglès) és un arxiu que descriu els canvis que cal fer a un o més altres arxius de referència. Específicament, contindrà una llista de línies per a ser eliminades o bé afegides al codi, així com, de vegades, línies agafades del text de referència, amb les modificacions en el context (permeten identificar la ubicació dels canvis si els números de línia haguessin canviat).
L'eina usada per aplicar les modificacions en un arxiu és simplement anomenada patch
. L'eina que les crea es diu diff
, i s'usa d'aquesta manera:
$
diff -u arxiu.antic arxiu.nou >arxiu.pedaç
L'arxiu arxiu.pedaç
conté les instruccions per canviar el contingut d'arxiu.antic
a arxiu.nou
. Podem enviar-lo a algú que podrà llavors usar-lo per a generar arxiu.nou
a partir dels altres dos així:
$
patch -p0 arxiu.antic <arxiu.pedaç
L'arxiu arxiu.antic
serà ara idèntic a arxiu.nou
.
A la pràctica, la majoria del programari és actualment mantingut el repositoris Git i d'aquesta manera els contribuïdors és més probable que usin la comanda git
per obtenir el codi font i proposar canvis. L'ordre git diff
generarà un arxiu en el mateix format que crea diff -u
i git apply
pot fer el mateix que la comanda patch
.
Mentre que el resultat de git diff
és un arxiu que pot ser compartit amb altres desenvolupadors, normalment hi ha millors maneres d'enviar canvis. Si els desenvolupadors prefereixen rebre els pedaços via correu electrònic, normalment els prefereixen generats amb git format-patch
de manera que poden ser directament integrats al repositori amb git am
. Això preserva les metainformació dels «commits» i fa possible el compartir-ne múltiples d'un sol cop.
This email-based workflow is still popular, but it tends to be replaced by the usage of merge requests (or pull requests) whenever the software is hosted in a platform like GitHub or GitLab — and Debian is using GitLab on its salsa.debian.org
server. On those systems, once you have created an account, you fork the repository, effectively creating a copy of the repository in your own account, and you can then clone that repository and push your own changes in it. From there, the web interface will suggest you to submit a merge request, notifying the developers of your changes, making it easy for them to review and accept your changes with a single click.
1.3.2.4. Altres maneres de contribuir
No només els usuaris s'ajuden entre si (i també a d'altres) en aspectes tècnics que directament els afecten, sinó que també discuteixen sobre les millors maneres de contribuir al projecte Debian i ajudar a què es mogui endavant — discussions que sovint acaben en suggeriments per a millores.
Atès que Debian no gasta fons en campanyes de promoció, els seus usuaris tenen un paper essencial en la seva difusió, assegurant la fama amb el boca-orella.
Aquest mètode funciona força bé, ja que els fans de Debian es troben per tot arreu de la comunitat del programari lliure: des de festes d'instal·lació (tallers on usuaris amb experiència assisteixen als no iniciats a instal·lar el sistema) organitzats per
LUGs o “Linux User Groups” (Grups d'Usuaris de Linux), fins a estands de l'associació en grans convencions tècniques relacionades amb el Linux, etc.
Els voluntaris fan pòsters, fulletons, adhesius i altres materials de promoció del projecte, que són posats a disposició de tothom, i que Debian ofereix lliurement al lloc web i a la wiki:
1.3.3. Equips, «Blends» i subprojectes
Debian s'ha organitzat al voltant del concepte de paquets font, cadascun amb el seu mantenidor o grup de mantenidors. Molts equips de treball han aparegut amb el temps, assegurant l'administració de la infraestructura, la gestió de tasques no específiques a cap paquet en particular (control de qualitat, Normativa Debian, l'instal·lador, etc.), amb els darrers equips creixent a l'entorn de subprojectes i «blends».
1.3.3.1. Subprojectes i «blends» Debian existents
Un Debian personalitzat per a cadascú! Un subprojecte és un grup de voluntaris interessats en adaptar Debian a necessitats específiques. Més enllà de la selecció d'un subgrup de programes destinats a un domini particular (educació, medicina, creació multimèdia, etc. ), els subprojectes també estan implicats en la millora dels paquets existents, l'empaquetament del programari que falta, l'adaptació de l'instal·lador, la creació de documentació específica, i més. Encara que un «blend» (en anglès, barreja) pot no ser exactament el mateix, funciona de manera molt similar i també intenta proporcionar una solució per a grups de persones que tenen la intenció d'utilitzar Debian per a un domini en particular. Es podria dir que «Debian Pure Blends» (o “Barreges pures de Debian”) és el successor dels subprojectes.
Aquí hi ha una petita selecció dels actualment publicats «Debian Pure Blends»:
Debian Junior, offering an appealing and easy to use Debian system for children;
Debian Edu, focused on the creation of a specialized distribution for the academic and educational world;
Debian Med, dedicated to the medical field;
Debian Multimedia, que s'ocupa de l'àudio i del treball multimèdia;
Debian GIS, que s'encarrega de les aplicacions i usuaris de Sistemes d'Informació Geogràfica;
Debian Astro, tant per a astrònoms professionals com aficionats;
Debian Science, que treballa per proporcionar a investigadors i científics una millor experiència usant Debian;
Freedombox, feta per a desenvolupar, dissenyar i promoure els servidors personals usant programari lliure per a comunicacions privades i personals;
Debian Games, que proporciona jocs a Debian des d'«arcades» i aventures fins a simulació i estràtègia;
DebiChem, destinat a la Química, proporciona suites i programes químics.
El nombre de projectes probablement continuarà creixent amb el temps i la percepció millorada dels avantatges dels Debian Pure Blends. Completament suportats per la infraestructura de Debian existent, poden, de fet, centrar-se en el treball amb un valor afegit real, sense preocupar-se de romandre sincronitzats amb Debian, ja que es desenvolupen dins del projecte.
1.3.3.2. Grups administratius
La majoria dels equips administratius estan relativament tancats i només es recluta mitjançant cooptació. El millor mitjà per a formar part d'un és ajudar de manera intel·ligent als membres actuals, demostrant que s'han comprès els seus objectius i mètodes de funcionament.
Els ftpmasters estan a càrrec de l'arxiu oficial dels paquets Debian. Mantenen el programa que rep els paquets enviats pels desenvolupadors i els emmagatzema automàticament, després d'algunes comprovacions, al servidor de referència (ftp-master.debian.org
).
També han de verificar les llicències de tots els paquets nous, per tal d'assegurar que Debian els pugui distribuir, abans d'incloure'ls en el corpus dels paquets existents. Quan un desenvolupador vol eliminar un paquet, s'adreça a aquest equip a través del sistema de seguiment d'errors i el «pseudopaquet»ftp.debian.org.
L'equip
Debian System Administrators (
DSA,
debian-admin@lists.debian.org
), com es podria esperar, és responsable de l'administració del sistema dels molts servidors utilitzats pel projecte. Garanteixen un funcionament òptim de tots els serveis bàsics (DNS, Web, correu electrònic, shell, etc.), instal·len programari sol·licitat per desenvolupadors de Debian, i prenen totes les precaucions pel que fa a la seguretat.
Els listmasters administren el servidor de correu electrònic que gestiona les llistes de correu. Creen noves llistes, manegen els rebots (avisos d'error de lliurament), i mantenen filtres de correu brossa (un correu electrònic massiu no sol·licitat).
Cada servei específic té el seu propi equip d'administració, generalment compost per voluntaris que l'han instal·lat (i també sovint han programat les eines corresponents). Aquest és el cas del sistema del sistema seguiment d'errors (BTS), el seguidor de paquets
salsa.debian.org
(servidor GitLab, veieu el quadre
EINA GitLab, amfitrió de repositoris git i molt més), els serveis disponibles a
qa.debian.org
,
lintian.debian.org
,
buildd.debian.org
,
cdimage.debian.org
, etc.
1.3.3.3. Equips de desenvolupament, equips transversals
A diferència dels equips administratius, els equips de desenvolupament són bastant oberts, fins i tot als col·laboradors externs. Encara que Debian no té vocació de crear programari, el projecte necessita alguns programes específics per complir els seus objectius. Per descomptat, desenvolupat sota una llicència de programari lliure, aquestes eines fan ús de mètodes provats en altres llocs del món del programari lliure.
Debian ha desenvolupat poc programari propi, però alguns programes han assumit un paper protagonista, i la seva fama s'ha estès més enllà de l'abast del projecte. Bons exemples són dpkg
, el programa de gestió de paquets de Debian (és, de fet, una abreviatura de Debian PacKaGe, i generalment es pronuncia en anglès com “dee-package”), i apt
, una eina per instal·lar automàticament qualsevol paquet Debian, i les seves dependències, garantint la consistència del sistema després d'una actualització (el seu nom és un acrònim d'Advanced Package Tool). No obstant això, els seus equips són molt més petits, ja que es requereix un alt nivell d'habilitat de programació per obtenir una comprensió global de les operacions d'aquests tipus de programes.
L'equip més important és probablement el del programa d'instal·lació de Debian,
debian-installer
, que ha realitzat una obra de proporcions transcendentals des de la seva concepció el 2001. Es van necessitar nombrosos col·laboradors, ja que és difícil escriure un sol programa capaç d'instal·lar Debian en una dotzena d'arquitectures diferents. Cada un té el seu propi mecanisme per arrencar i el seu propi carregador d'arrencada. Tot aquest treball està coordinat a la llista de correu
debian-boot@lists.debian.org
, sota la direcció de Cyril Brulebois.
El (molt petit) equip del programa debian-cd
té un objectiu encara més modest. Molts contribuïdors «petits» són responsables de la seva arquitectura, ja que el desenvolupador principal no pot conèixer totes les subtileses, ni la manera exacta d'iniciar l'instal·lador des del CD-ROM.
Molts equips han de col·laborar amb D'altres en l'activitat de l'empaquetament:
debian-qa@lists.debian.org
, per exemple, intenta assegurar la qualitat a tots els nivells del projecte Debian. La llista
debian-policy@lists.debian.org
desenvolupa la Normativa de Debian d'acord amb propostes de tot arreu. Els equips encarregats de cada arquitectura (
debian-architecture@lists.debian.org
) compilen tots els paquets, adaptant-los a la seva arquitectura en particular, si és necessari.