Ubuntu är en av de mest polerade Linux-distributionerna som finns tillgängliga, vilket kombinerar arbetet med ett globalt samhälle av bidragsgivare som erbjuder ett brett spektrum av färdigheter för att göra Ubuntu vad det är.

Medan vi alla njuter av frukterna av ett nytt Ubuntu-släpp var sjätte månad, har många människor frågat laget genom åren hur det här brett utbudet av bidragsgivare lyckas komma ihop för att bygga ett nytt Ubuntu-utgåva.

I den här artikeln kommer vi att förklara hur ett nytt Ubuntu-utgåva görs, vilken typ av kompetens och talang går in i den och vilken organisationsstruktur vi använder för att sammanföra detta utbud av bidrag till en sammanhängande enhet.

Regelbundna utgåvor

Kärnan i Ubuntu-projektet är ett åtagande att leverera en ny release var sjätte månad. Till skillnad från många mjukvaruprojekt som identifierar en uppsättning kärnfunktioner som ska levereras i en release, och som ofta är villiga att fördröja utgåvan tills de funktionerna är färdiga, släpper Ubuntu aldrig sent ut. Om en given funktion inte är klar i tid för utlösning, stöter vi funktionen, försenar inte utlösningen.

Denna sexmånadersperiod är känd som en frigivningscykel och publiceras i början av en ny cykel. Som ett exempel har den nuvarande utvecklingsversionen (Ubuntu 10.10 Maverick Meerkat) sitt schema publicerat på http://wiki.ubuntu.com/MaverickReleaseSchedule.

Cykeln är uppdelad i några nyckelkomponenter:

fryser

En frysning är när en viss typ av utveckling måste sluta, vanligtvis redo för frisättning. Det finns olika typer av frysning, t.ex. UI Freeze (inga fler ändringar i användargränssnittet), strängfrysning (inga fler översättningar) och funktionen frysning (ingen mer betydande funktionutveckling).

Alphas

Under en frisläppningscykel gör vi ett antal stillbilder som utgivningen utvecklas. Dessa alfa-utgåvor är ibland ofullständiga och buggy (på grund av deras inbyggda natur), men ger ett bra tillfälle att rikta in funktioner till dem.

Betas

Betaversion är funktionella kompletta utgåvor som kräver mycket testning. Vi rekommenderar ofta beta som en bra tid för testare att uppgradera, stresstest Ubuntu och filbuggar.

Släpp kandidat

En släppkandidat kommer strax innan den slutliga versionen, och släpps för att stimulera på en sista bit av testning från samhället. Denna sexmånaderscykel och dessa olika element är närvarande i varje utgåva, och samhället är välkommen att uppgradera till en ny utvecklingsutgåva så snart den öppnar för arbete - fast vanliga användare kanske vill vänta tills de senare utvecklingsstadierna innan de prova den nya versionen ut.

Allt börjar med Debian

Sättet att bygga Ubuntu är att ta källkod från open source-projekt (kända som uppströms) och ladda upp det till en byggmaskin på Launchpad-projektets värdwebbplats som kommer att bygga ett paket redo för installation i ett Ubuntu-system. Dessa paket sammankopplas för att bilda hela distroen, från kärnan som stöter på maskinen, helt upp till de applikationer du kör.

Den första fasen av frigöringscykeln innebär att nya upplösningar av uppströms komponenter införs i Ubuntu. För att göra detta importerar vi hela Debian-paketarkivet och bygger det för Ubuntu.

Vi använder Debian eftersom det är det enklaste sättet att hålla sig uppdaterad med uppströms kod (Debian-underhållare paketerar nya uppströmsversioner ofta, ofta snabbare än vi kan göra det) och eftersom Debian och Ubuntu liknar många sätt så deras buggfixar är ofta bugfixes för oss också.

Med den här kärnpaketet från Debian importerade till Ubuntu tar vi sedan en uppsättning av våra modifieringar till många paket (kända som patchar), vilket omvandlar Debianpaketet till en som ser mer ut som Ubuntu.

Debianpaketet för Gnome innehåller exempelvis inte många av de ändringar som vi gör som standardprogramval, standardtema, extra panelfunktioner etc. Alla dessa patchar som omvandlar Debianpaket till Ubuntu-paket finns fritt tillgängliga på http: //patches.ubuntu.com.

Nästa steg är att bestämma vilken nyfunktionsutveckling vi vill göra och att bygga dessa funktioner i den nya Ubuntu-utvecklingsutgåvan. Ubuntu Developer Summit Primära funktioner och planer görs på vårt tvååriga Ubuntu Developer Summit, vars plats växlar mellan USA och Europa.

Ubuntu Developer Summit (UDS) är en händelse där vi skickar vårt fulla Ubuntu utvecklingsteam och vi sponsrar ett betydande antal medlemmar i samhället för att delta.

Den veckolånga händelsen är uppdelad i nio spår (skrivbord, server, community, mobil, design, fundament, QA, säkerhet och Ubuntu på ARM) som var och en har en spårledning som schemalägger sessioner för varje spår hela veckan. Dessa sessioner efterfrågas av kanonisk personal, medlemmar i samhället och mer och är utformade för att ge plats att diskutera och planera särskilda särdrag, scoped specifikt till den nya utgåvan.

Under hela UDS-veckan diskuteras ett stort antal ämnen, beslut fattas, lösningar löses och slutligen dokumenteras dessa slutsatser. Och därmed går vi vidare till planeringsfasen.