Var sjätte månad släpper vi en ny version av Ubuntu. Var och en samlar hundratals utvecklare, översättare, testare och dokumentationskritiker för att integrera de senaste och bästa uppströmsapplikationerna samt nya och innovativa Ubuntu-teknologier.

Att bygga och släppa ett nytt operativsystem var sjätte månad är hektiskt. Verkligen hektisk. Men sedan 2004, när vi grundade projektet, har vi strävat för att få det allra bästa av alla som deltar i att bygga Ubuntu, så att varje utgåva är så bra som det kan vara.

Den här artikeln förklarar hur detta organiserade kaos fungerar och ger en inblick i hur Ubuntu sätts ihop. Allt är omsluttet i en stringent frigöringscykel, bestående av en serie viktiga milstolpar, som alltid är tillgängliga för allmänheten. Låt oss börja med att titta på början på en ny cykel.

Gjutning av nätet

Innan vi till och med startar den nya utgåvan, och samtidigt som vi slutar klara av den tidigare versionen, börjar vi utföra en träningsövning. Teamen på Canonical sträcker sig till olika intressenter och samhället för att se vad nästa utgåva ska fokusera på.

Vilka nya funktioner behöver Ubuntu? Vilka problem kräver fixering? Vilka användningsfall ska vi stödja? Denna process resulterar i en tvättlista av behov som vi börjar sortera i prioriterade fokusområden.

Samtidigt samordnar vi strukturen för nästa Ubuntu Developer Summit. Detta ansikte mot ansikte händer några veckor i början av varje ny release-cykel. Vi skickar nästan alla Canonicals Ubuntu-ingenjörer och sponsrar ett antal viktiga medlemmar i samhället för att vara med. Evenemanget är öppet för alla, och många företrädare för företagen ingår också.

Vid Ubuntu Developer Summit har vi 14 spår som täcker olika teman och vi planerar öppna diskussionssessioner för de olika fokusområdena. Målet med varje session är att diskutera ämnet och göra och dokumentera beslut och tilldelade åtgärder i offentliga ritningar. Dessa är webbsidor som vi använder för att spåra arbetet på funktionerna på ett öppet och öppet sätt. Du kan se gränssnittet på http://status.ubuntu.com för nästa Ubuntu-utgåva.

Den första uppgiften vi behöver ta itu med i en ny cykel är att få verktygskedjan färdigställd. Verktygskedjan är kärnuppsättningen av utvecklingsverktyg som används för att bygga programvara för utgåvan. Detta djupa och smutsiga lågnivåarbete utförs först och sedan synkroniserar vi Debian Unstable-arkivet med den här verktyget. Detta bygger effektivt alla Debianpaket mot verktygslåda, så vi har Debian Unstable i vårt Ubuntu-utvecklarförteckning.

När den här synkroniseringen är klar börjar Ubuntu-utvecklarna att använda hundratals Ubuntu-korrigeringar till dessa paket som omvandlar Debian Unstable till Ubuntu. Vid denna tidpunkt har vi en utvecklarversion av Ubuntu som ser ut och känns som vår senaste utgåva, men byggd mot de nya Debianpaketen och använder vår verktygskedja. Nu kan det verkliga arbetet börja.

Dagens fångst

Under de kommande månaderna börjar utvecklaren att arbeta med de funktioner och mål som överenskommits vid Ubuntu Developer Summit. Framsteg görs varje dag: utvecklare triage och prioritera buggar, fixa dem och ladda upp korrigeringar till arkivet. Nya funktioner utvecklas, packas och laddas upp.

Varje dag när en Ubuntu-utvecklare vaknar kommer han eller hon att uppdatera sitt system för att dra in de senaste paketen och sedan börja arbeta med sina funktioner och buggar. Vanligtvis innebär det här arbetsflödet att du tittar på den aktuella bugglistan och vid de högsta prioriterade buggarna och löser dem, samtidigt som du arbetar med funktionens mål för cykeln. Funktionsarbetet innebär ofta att körsbärspekning innehåller specifika funktioner från uppströmmar som är av intresse eller skapar koden för dessa nya funktioner och bygger dem in i släppan.

En viktig del av detta är det nya utvecklingsarbetet som går in i Ayatana-projektet med Unity, indikatorerna och annan innovativ stationär funktionalitet. Detta arbete är uppdelat i två primära lag: Designteamet designar funktionaliteten baserat på användarnas behov, och skrivbordsteamet använder dessa mönster för att skriva koden för att genomföra dem.

Regelbundna utgåvor

När Desktop Experience-teamet släpper ut skickar de koden till Ubuntu Desktop Engineering-teamet, som sedan paketerar det och laddar det upp i arkivet, där alla kan springa och testa den nya koden.

I varje release strävar vi efter att ha en ny version av Desktop Experience Team minst en gång i veckan (oftast torsdag). Denna veckovisa tidsfrist har varit användbar för regelbundna framsteg. Under hela den här perioden släpper vi ut utvecklingsversioner av Ubuntu som vi uppmuntrar samhället att testa, filma buggar på och hjälpa till att förbättra.

Alpha 1 är kort efter att den nya utgåvan öppnats och inkluderar de nya Debianpaketen med sammanslagningar inkluderade. Alpha 2 är när du vanligtvis börjar se viktiga nya funktioner. Alpha 3 släpps vanligtvis några månader före den sista Alpha och precis före Feature Freeze.

Vid Feature Freeze låser vi nedlåsningen så att inga stora nya funktioner är tillåtna och all utvecklartid är inriktad istället på att förädla det som redan finns där. Denna milstolpe växlar omväxlande växling från kramning i nya och otestade egenskaper för att bygga kvalitet i vad vi redan har.