Debianprojektets lyckade slutresultat skapas av arbete med infrastrukturen utförd av erfarna Debianutvecklare, från individuella, det gemensamma arbetet med Debianpaket och från användaråterkoppling.
1.3.1. Debian-utvecklarna
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.
Riktlinjerna, en viktig del av Debianprojektet, etablerar de normer som försäkrar distributionens paketkvalitet och interoperabilitet. Tack vare dessa riktlinjer fortsätter Debian, trots dess omfattning, att vara samstämmigt. Riktlinjerna är inte skrivna i sten utan fortsätter att utvecklas kontinuerligt tack vare förslag som skickats in via sändlistan
debian-policy@lists.debian.org
. Tillägg som ges bifall av alla intresserade parter accepteras och tillämpas texten av en liten grupp ansvariga för underhåll som inte har någon befogenhet att editera (de inkluderar endbart ändringar som bifallits av Debian-utvecklarna som också är medlemmar i den nämnda sändlistan). Du kan läsa om aktuella ändringsförslag i felrapporteringssystemet:
The Policy provides considerable coverage of the technical aspects of packaging. The size of the project also raises organizational problems; these are dealt with by the Debian Constitution, which establishes a structure and means for decision making. In other words, a formal governance system.
This constitution defines a certain number of roles and positions, plus responsibilities and authorities for each. It is particularly worth noting that Debian developers always have ultimate decision making authority by a vote of general resolution, wherein a qualified majority of three quarters (75%) of votes is required for significant alterations to be made (such as those with an impact on the Foundation Documents). However, developers annually elect a “leader” to represent them in meetings, and ensure internal coordination between varying teams. This election is always a period of intense discussions. The Debian Project leader's (
DPL) role is not formally defined by any document: candidates for this post usually propose their own definition of the position. In practice, the leader's roles include serving as a representative to the media, coordinating between “internal” teams, and providing overall guidance to the project, within which the developers can relate: the views of the DPL are implicitly approved by the majority of project members.
Ledaren har ett starkt mandat; deras röst avgör jämna röster; de kan ta vilket beslut som helst som inte redan är under någon annans ansvar och de kan delegera vidare delar av sitt ansvar.
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.
Författningen definierar också en ”teknisk kommitté”. Kommitténs essentiella roll är att bestämma om tekniska spörsmål när de involverade utvecklarna inte har kommer fram till en kompromiss. Kommittén har också en rådgörande roll till utvecklare som misslyckas med att ta ett beslut för vilka de är ansvariga. Observera att de endast blir involverade när de bjuds in av en av parterna i fråga.
Slutligen definierar författningen rollen ”projektsekreterare” som ansvarar för organisationen av röster relaterat till de olika valen och allmänna resultaten.
The “general resolution” (
GR) procedure is fully detailed in the constitution, from the initial discussion period to the final counting of votes. The most interesting aspect of that process is that when it comes to an actual vote, developers have to rank the different ballot options between them and the winner is selected with a
Condorcet method (more specifically, the Schulze method). For further details see:
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.
Det enklaste sättet att få erkännande är att göra något nyttigt och visa att man har utfört arbeta. Många ”administrativa” Debian-team sköts genom samarbeten, och de föredrar volontärer som redan har bidragit effektivt och visat sin kompetens. Den naturliga öppenheten i dessa teams arbete gör det möjligt för nya volontärer att observera och börja hjälpa till utan speciella privilegium. Det är därför Debian ofta beskrivs som en ”meritokrati”.
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. Användarnas aktiva roll
Är det relevant att nämna användarna bland de som jobbar inom Debianprojektet? - svaret är ett rungande ja: de spelar en kritisk roll i projektet. De är långt ifrån ”passiva”, en del användare testar utvecklingsversioner av Debian, och skapa felrapporter för att uppmärksamma problem. Andra går längre och skickar in ideer för förbättringar genom att skriva in felrapporter med nivån ”whishlist”, eller till och med genom att skicka in ”programfixar”, det vill säga rättningar till källkoden, (se
Avsnitt 1.3.2.3, ”Skicka rättningar”).
Det grundläggande verktyget för att rapportera fel i Debian är Debians felrapporteringssystem (Debian BTS, Bug Tracking System) vilket används av många delar i projektet. Den öppna delen (webbgränssnittet) låter användarna se alla felrapporter, med valet att visa en sorterad lista av fel baserat på olika kriterier så som: påverkade paket, allvarsgrad, status, rapportörens adress, ansvariges adress, taggar och så vidare. Det är också möjligt att för varje fel ta del av hela diskussionshistoriken kring den.
Under ytan är Debian BTS e-postbaserat: all information den lagrar kommer från meddelanden skickade av involverade personer. Varje e-postmeddelande skickat till
12345@bugs.debian.org
kommer att läggas till historiken för fel nummer 12345. Behöriga personer kan ”stänga” ett fel genom att skriva ett meddelande som beskriver orsakerna för beslutet att stänga
12345-done@bugs.debian.org
(ett fel är stängt när det beskrivna problemet inte längre är relevant). Ett nytt fel rapporteras genom att skicka ett meddelande till
submit@bugs.debian.org
i ett specfikt format som identifierar paketet. Adressen
control@bugs.debian.org
möjliggör redigering av meta-informationen relaterad till ett fel.
Debian BTS har också andra funktionella egenskaper, som användning av taggar för ett märka felen. För mer information, se
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).
Verktyget siktar in sig på utvecklingsversioner, vilket är var felen kommer att repareras. Ändringar är med få undantag inte välkomna i en stabil version av Debian, undantagsvis säkerhetsuppdateringar eller andra viktiga uppdateringar (exempelvis om ett paket inte alls fungerar). En felrättning av ett mindre fel i ett Debianpaket måste därför vänta in nästa stabila version.
1.3.2.2. Översättning och dokumentation
Utöver det finns det flertalet nöjda användare av tjänster tillhandahållen av Debian som skulle vilja bidra med någonting tillbaka till projektet. Eftersom inte alla har tillräcklig kunskap i programmering kan de välja att hjälpa till med översättningar och granskning av dokumentation. Det finns språkspecifika e-postlistor för att koordinera detta arbete.
1.3.2.3. Skicka rättningar
Mer avancerade användare skulle kunna tillhandahålla en lösning på ett fel i ett program genom att skicka en programfix.
En programfix är en fil som beskriver ändringar för en eller flera referensfiler. Mer specifikt innehåller den rader att lägga till och ta bort ur koden, så väl (ibland) som kringliggande rader tagna från referenstexten, (de gör det möjligt att hitta var ändringarna skett om radantalet har ändrats).
Verktyget som används för att tillämpa ändringarna beskrivna i en sådan fil kallas patch
. Verktyget som skapar dem kallas diff
. Exempel på användning:
$
diff -u fil.gammal fil.nya >fil.patch
Filen fil.patch
innehåller instruktionerna för att ändra innehållet för fil.gammal
till fil.ny
. Vi kan skicka den till någon som sedan kan använda den för att återskapa fil.ny
från de två andra. Exempel:
$
patch -p0 fil.gammal <fil.patch
Filen fil.gammal
är nu identisk med fil.ny
.
In practice, most software is currently maintained in Git repositories and contributors are thus more likely to use git
to retrieve the source code and propose changes. git diff
will generate a file in the same format as what diff -u
would do and git apply
can do the same as patch
.
Även om resultatet av git diff
är en fil som kan delas med andra utvecklare, finns det ofta bättre sätt att skicka in ändringar. Om utvecklaren föredrar att få rättningar via mail, föredrar de oftast rättningar skapade av git format-patch
så att de utan vidare kan integrera rättningen i förådet med kommandot git am
. Detta sätt bevarar metainformationen kring bidraget och möjliggör att kunna dela flera bidrag på en och samma gång.
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. Andra sätt att bidra
Alla dessa bidragsmekanismer blir effektivare genom användarens beteende. Istället för att vara en samling av isolerade personer är användarna en del i en verklig gemenskap inom vilken en stort antal utbyten uppstår inom. Vi vill speciellt uppmärksamma på aktiviteten i sändlistan för användardiskussioner,
debian-user@lists.debian.org
(
Kapitel 7, Lösa problem och hitta relevant information tar upp detta i detalj).
Användare hjälper inte bara varandra (och andra) med tekniska problem som direkt påverkar dem, men de diskuterar också de bästa sätten att bidra till Debianprojektet och dess framtid - diskussioner som ofta slutar i förslag på förbättringar.
Eftersom Debian inte bekostar marknadsföring spelar dess användare en viktig roll i spridningen av Debian.
Denna Metod fungerar rätt så bra eftersom Debianfans kan hittas på alla nivåer inom gemenskapen för fri mjukvara: från installationsfester (arbetsträff där erfarna hjälper nytillkommna att installera systemet) organiserade av lokala
LUG-ar eller ”Linux Användargrupper”, till bås på stora teknikkonferenser som har att göra med Linux, och så vidare.
Volontärer skapar affischer, broschyrer, klistermärken och annat användbart marknadsföringsmaterial för projektet, vilket de gör allmänt tillgängligt, och vilket Debian tillhandahåller fritt på sin webbplats och wiki:
1.3.3. Teams, Blends, and Sub-Projects
From the start, Debian has been organized around the concept of source packages, each with its maintainer or group of maintainers. Many work teams have emerged over time, ensuring administration of the infrastructure, management of tasks not specific to any package in particular (quality assurance, Debian Policy, installer, etc.), with the latest series of teams growing up around sub-projects and blends.
1.3.3.1. Existing Debian Sub-Projects and Blends
To each their own Debian! A sub-project is a group of volunteers interested in adapting Debian to specific needs. Beyond the selection of a sub-group of programs intended for a particular domain (education, medicine, multimedia creation, etc.), sub-projects are also involved in improving existing packages, packaging missing software, adapting the installer, creating specific documentation, and more. While a "blend" might not be exactly the same, it works quite similar and also tries to provide a solution for groups of people intending to use Debian for a particular domain. One could say that "Debian Pure Blends" is the successor of sub-projects.
Here is a small selection of current released 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, which deals with audio and multimedia work;
Debian GIS, which takes care of Geographical Information Systems applications and users;
Debian Astro, for both professionals and hobby astronomers;
Debian Science, working on providing researchers and scientists a better experience using Debian;
Freedombox, made to develop, design and promote personal servers running free software for private, personal communications;
Debian Games, providing games in Debian from arcade and adventure to simulation and strategy;
DebiChem, som riktar sig till kemister, tillhandahåller paketlösningar och program inom kemiområdet.
The number of projects will most likely continue to grow with time and improved perception of the advantages of Debian Pure Blends. Fully supported by the existing Debian infrastructure, they can, in effect, focus on work with real added value, without worrying about remaining synchronized with Debian, since they are developed within the project.
1.3.3.2. Administrativa grupper
De flesta administrativa grupper är ganska slutna och rekryterar genom samarbeten. Det bästa sättet att bli en del av en grupp är att på ett smart sätt hjälpa och stödja de aktuella medlemmarna, och på så sätt visa att du förstår deras mål och arbetssätt.
FTP-ansvariga har hand om de officiella arkiven för Debian-paket. De underhåller programmet som tar emot paket insända av utvecklare, och lagrar dem automatiskt, efter en del kontroller, på referensservern(ftp-master.debian.org
).
För att försäkra sig om att Debian kan distribuera paket, verifiera de licenserna för alla nya paket, innan de inkluderas i andra paket. När en utvecklare önskar att ta bort ett paket, adresserar de denna grupp genom felrapporteringssystemet och pseudo-paketet ftp.debian.org.
Debian-systemadministratörs-gruppen (
DSA)
debian-admin@lists.debian.org
är, som man kan anta, ansvarig för systemadministration på de många servrar som används av projektet. De garanterar att alla grundläggande tjänster fungerar optimalt (DNS, webb, e-post, skal med mera), installerar program begärda av Debian-utvecklare och sköter säkerhetsförebyggande arbete.
Listmasters har hand om e-postservern som hanterar e-postlistorna. De skapar nya listor, hanterar studsar (aviseringar om leveransproblem), och hanterar spam-filter (oönskade massutskick).
Each specific service has its own administration team, generally composed of volunteers who have installed it (and also frequently programmed the corresponding tools themselves). This is the case for the bug tracking system (BTS), the package tracker,
salsa.debian.org
(GitLab server, see sidebar
VERKTYG GitLab, tillhandahållande av Git föråd och mycket mer), the services available on
qa.debian.org
,
lintian.debian.org
,
buildd.debian.org
,
cdimage.debian.org
, etc.
1.3.3.3. Utvecklargrupper, överlappande grupper
Olikt de administrativa grupperna är utvecklingsgrupperna generellt ganska öppna, även för bidrag utifrån. Även om Debians syfte är att skapa program behöver projektet ändå en del specifika sådana för att nå sina mål. Verktygen, självklart fri programvara, använder beprövade metoder i fri programvaru-världen.
Debian har utvecklat några få egna programvaror, men vissa program har fått en ledande roll, och deras namn har spritt sig långt utanför projektet. Bra exempel är dpkg
, Debians-pakethanteringssystem (det är faktiskt en förkortning av Debian PacKaGe, och uttalas som ”dee-package”), och apt
, ett verktyg för att automatiskt installera Debianpaket med beroenden, och som försäkrar sig om systemets samstämmighet efter en uppgradering (namnet är en akronym för Advance Package Tool). Deras team är dock mycket mindre eftersom det krävs en ganska hög färdighet i programmering för att förstå hur dessa programtyper fungerar.
Det viktigaste teamet är kanske det för installationsprogramet för Debian,
debian-installer
och som har uppnått enormt mycket sedan det startades 2001. Det har krävt många medarbetare eftersom det är svårt att skriva en enskillt program kapabelt att installera Debian på ett dussin olika arkitekturer. Varje arkitektur har sina mekanismer för uppstart och deras egena Uppstartsladdare. All detta arbete koordineras på sändlistan för
debian-boot@lists.debian.org
under ledning av Cyril Brulebois.
Det lilla teamet debian-cd
har ett ännu blygsammare mål. Många små ”medarbetare” är ansvariga för deras arkitektur, eftersom huvudutvecklaren inte kan känna till alla variationer, eller det exakta sättet att starta installationen från CD-ROM-skivan.