Artikel top billede

(Foto: Computerworld)

Sådan er Ubuntu konstrueret

Jono Bacon, der er community manager hos Ubuntu, tager os med om bag kulisserne.

Af Rasmus Elm Rasmussen, Alt om Data

Denne artikel er oprindeligt bragt på Alt om Data. Computerworld overtog i november 2022 Alt om Data. Du kan læse mere om overtagelsen her.

Hvert halve år frigiver Ubuntu-folkene en ny version af operativ- systemet. Hver ny version samler hundreder af udviklere, oversættere, testere og dokumentationsmedarbejdere, der skal integrere de nyeste og bedste applikationer og levere nye og innovative Ubuntu-teknologier.

Det er en hektisk proces at opbygge og frigive et nyt operativsystem hver sjette måned. Meget hektisk. Men siden vi grundlagde projektet i 2004, har vi arbejdet for at få det bedste ud af alle, der er med til at lave Ubuntu. Formålet er, at hver ny version er så god, som den kan blive. Alt indgår i en streng lanceringscyklus, der består af en række vigtige milepæle. De er altid offentligt tilgængelige (den aktuelle kan du finde på https://wiki.ubuntu.com/OneiricReleaseSchedule). Lad os begynde med at se på begyndelsen af en ny cyklus.

Nettet sættes ud

Før vi overhovedet går i gang med den nye version, og mens vi stadig foretager den sidste afpudsning af den forrige udgave, begynder vi med at indsamle krav til sys-temet. Folkene hos Canonical rækker ud mod forskellige interesseorganisationer og mod miljøet for at se, hvad den næste version bør fokusere på.

Hvilke nye funktioner skal Ubuntu have? Hvilke problemer skal løses? Hvilke brugsmønstre bør vi understøtte? Denne proces fører til en huskeseddel med behov, som vi begynder at sortere op i prioriterede fokusområder. Samtidig koordinerer vi strukturen for det nye Ubuntu Developer Summit. Denne begivenhed finder sted nogle få uger efter begyndelsen på en ny lanceringscyklus.

Vi sender næsten alle Canonicals Ubuntu-ingeniører af sted, og vi sponsorerer en række nøglefigurer i miljøet, som slutter sig til os. Mødet er åbent for alle, og mange repræsentanter for branchen deltager også.

På Ubuntu Developer Summit har vi 14 spor, der dækker forskellige temaer, og vi afholder åbne diskussionsmøder inden for de forskellige fokusområder. Målet med hvert møde er at diskutere emnet og træffe og dokumentere beslutninger og uddele offentligt tilgængelige opgaver. Vi bruger websider til at spore arbejdet med emnerne åbent og transparent. Man kan se grænsefladen for den næste Ubuntu-lancering på http://status.ubuntu.com.

Vores første opgave i en ny cyklus består i at beslutte os for en toolchain. Denne toolchain er det centrale sæt af udviklingsværktøjer, der bliver brugt til at opbygge software til lanceringen. Dette arbejde på dybt niveau bliver først udført, og derefter synkroniserer vi Debian Unstable-arkivet med denne toolchain, således at vi har Debian Unstable i vores Ubuntu-udviklingslager.

Når denne synkronisering er gennemført, begynder Ubuntu-udviklerne at tilføje hundreder af Ubuntu-patches til disse pakker. Det er i denne proces, at Debian Unstable bliver til Ubuntu. I denne fase har vi en udviklerversion af Ubuntu, der ligner og føles som vores seneste udgave, men den er opbygget over for de nye Debian-pakker ved hjælp af vores toolchain. Nu kan det egentlige arbejde begynde.

Dagens fangst

I løbet af de følgende måneder begynder udviklermiljøet at arbejde med de funktioner og mål, som vi blev enige om ved Ubuntu Developer Summit. Der bliver gjort fremskridt hver dag: Udviklerne sorterer og prioriterer bugs, ordner dem og uploader løsningerne til arkivet. Der bliver udviklet nye funktioner, og de bliver også pakket og uploadet.

Når en Ubuntu-udvikler vågner, opdaterer han eller hun hver dag sit system, så det inddrager de seneste pakker, og begynder derefter at arbejde på deres funktioner og bugs. Denne arbejdsproces indebærer typisk, at man ser på den aktuelle bugliste og på bugs med højeste prioritet. Man løser problemerne og arbejder videre på målene for denne cyklus.

Dette arbejde omfatter tit, at man udvælger specifikke funktioner, eller at man laver kode til de nye funktioner og bygger dem ind i den nye version. En vigtig del af denne proces er det nye udviklingsarbejde, der indgår i Ayatana-projektet med Unity, indikatorerne og anden innovativ desktopfunktionalitet. Dette arbejde er delt op i to primære hold: Designteamet designer funktionaliteten på baggrund af brugernes behov, og Desktopteamet bruger disse design til at skrive den kode, der implementerer dem.

Regelmæssige lanceringer

Når Desktop Experience-teamet laver en lancering, sender det koden til Ubuntu Desktop Engineering-teamet, der pakker den og uploader den til arkivet, hvor alle kan køre og afprøve den nye kode. I hver lancering stræber vi efter at have en ny lancering fra Desktop Experience-teamet mindst en gang om ugen (som regel torsdag). Denne ugentlige deadline har været gavnlig for de regelmæssige fremskridt.

I løbet af denne periode frigiver vi udviklingsversioner af Ubuntu, som vi opfordrer miljøet til at afprøve. Vi beder folk om at rapportere bugs og forbedre versionerne. Alpha 1 kommer, kort efter at den nye lanceringscyklus bliver åbnet, og den omfatter de nye Debian-pakker inklusive merges. Alpha 2 er der, hvor man typisk begynder at se markante nye funktioner. Alpha 3 bliver som regel frigivet få måneder før den endelige Alpha og umiddelbart før Feature Freeze.

Ved Feature Freeze låser vi versionen ned, således at der ikke kan komme nogen store nye funktioner ind. Al udviklingstid bliver i stedet fokuseret på at finpudse det, der allerede er der.

Ned i fryseren

Kort efter kommer User Interface Freeze, der er beregnet til at låse de visuelle ændringer. Det omfatter typisk temaændringer, Unity-ændringer og andre visuelle komponenter.

Det er en freeze, som vi stræber efter at beholde, men vi har ofte døjet med at få det hele færdigt til tiden, og sommetider smutter det. Ikke desto mindre gør User Interface Freeze-teamet endnu mere fokuseret på kvalitet, og de, der interesserer sig for brugerfladen, går nu i gang med at ordne bugs.

På dette stade i cyklussen er vi klar til at udsende en første betaversion. Og alle er med til at afprøve, vurdere og prioritere de bugs, der er blevet rapporteret, og ordne dem. I denne fase fokuserer alle ledende ingeniører og førende folk i miljøet på at indsamle prioriterede bug-lister. Vi kan aldrig ordne alle bugs, og vi fokuserer derfor på de mest kritiske områder for at være sikre på, at vi leverer den bedst mulige brugeroplevelse.

Kort efter den første betafrigivelse leverer vi en kerne-freeze for at reducere risikoen for hardware-tilbageskridt, og vi har også en String Freeze, når vi ikke accepterer flere ændringer af de dele af systemet, som kan oversættes. Efter at disse freezes er gennemført, frigiver vi vores anden og endelige beta. Vi slår på tromme for den og opfordrer folk til at afprøve den. Vi beder brugerne om at meddele os de problemer, de finder. Vi fortsætter med at vurdere disse meldinger og prioritere dem. Nu er målet at ordne så mange, vi kan, før Final Freeze.

Efter lidt afpudsning sender vi den nye version ud, hvorefter alle i Ubuntu-miljøet sover en hel weekend. Få dage efter er vi klar til at begynde forfra ...

U-teamet

Indtil nu har vi fokuseret på udviklingen af Ubuntu, men der er mange andre team, der arbejder i døgndrift, mens alt dette står på. Vores Information Services-team kører de forskellige servere og opbygger farme og så videre, mens de ledende ingeniører tager sig af governance og håndterer løbende beslutninger i miljøet (se boksen Ubuntu-governance). Samtidig forbereder webteamet www.ubuntu.com på den nye frigivelse, laver produktfremvisninger, lægger op til betaen og fører det professionelle skær over på vores webressourcer.

Kommunikationsteamet laver markedsføringsmateriale, forbereder pressen på betaen og de endelige lanceringer og organiserer pressemøder og samarbejde med forskellige medier om artikler og interviews. Designteamet arbejder på selve Ubuntu, forbereder visuelt materiale til webteamene og så videre. Et administrationsteam koordinerer møder, rejser og ressourcer til de forskellige begivenheder, vi afholder, og til Ubuntu Developer Summit.

Endelig organiserer mit team, miljøteamet, kursusuger i løbet af cyklussen (herunder Ubuntu Open Week, Ubuntu Developer Week, Ubuntu Community Week, Ubuntu Cloud Days og Ubuntu App Developer Week). Vi arrangerer også begivenheder verden over såsom Ubuntu Global Jam, Release Parties med mere.

Det er umagen værd

Selvom vi vrider enormt meget ind i hver lanceringscyklus, har det organiserede kaos, som folkene har styret, resulteret i regelmæssige frigivelser af distributionen. Siden oprettelsen af Ubuntu-projektet i 2004 har vi faktisk kun været forsinket med en lancering én gang – og det var en planlagt forsinkelse, der skulle passe med den første langsigtede support-frigivelse (LTS) af distroen.

Det er en hektisk proces, men den er også utroligt tilfredsstillende, og det skyldes de fænomenale folk, der lægger hele deres sjæl i hver eneste lancering. Lanceringsplaner, freezes, milepæle og andre vigtige elementer ville ikke betyde noget, hvis det ikke var for disse utrolige mennesker. Nogle af jer elsker Ubuntu, og nogle elsker en anden distro, men uanset jeres anskuelser er der ikke mange, som ikke bliver inspireret af så mange bevægelige dele, der arbejder sammen om noget, de tror på.

Ubuntu-projektet er meget åbent og transparent, og det har altid været vigtigt for os at give ledere mulighed for at være med til at påvirke projektets fokus og retning og måden, det bliver styret på. Sådan virker vores governance-system: Øverst oppe finder vi Community Council og Technical Board. Community Council træffer beslutninger og afgør uenigheder, når det gælder miljøets processer og politiske spørgsmål. Det kan for eksempel dreje sig om, hvordan folk bliver Ubuntu-medlemmer, hvordan de andre organisationer fungerer og behandling af klager.

Technical Board står for ledelse i forbindelse med teknikpolitikker i projektet, men bestemmer ikke, hvilken software og hvilke funktioner vi vælger at inddrage i lanceringen (de beslutninger træffer Ubuntu-udviklerne). Som et eksempel på den form for ledelse, Technical Board står for, kan vi nævne behandlingen af kontroversielle teknologier såsom Mono, toolchain-ændringer og andre lavpraktiske beslutninger.

Mark Shuttleworth sidder øverst oppe, for han har en vetoret, der er beregnet til at klare fastlåste situationer. Han bruger den dog kun sjældent, fordi rådenes medlemmer som regel kan nå til enighed.

Under disse to ledende organer finder vi domænespecifikke råd, der fokuserer på fora, IRC og Ubuntu LoCo Teams (lokale Ubuntu-brugergrupper). Der er også organer, som tager stilling til ansøgninger om Ubuntu-medlemskab (de befinder sig i Europa, Nord- og Sydamerika og Asien), og der er et organ, som vurderer nye udvikleransøgninger.

Det er vigtigt, at alle og enhver kan søge om at komme med i disse organer, og deltagelse er på ingen måde begrænset til Canonicals ansatte. Faktisk har alle disse råd flest medlemmer, der ikke er fra Canonical. Vi mener, at det er afgørende vigtigt, når man skal styre et åbent og transparent miljø.

Hvis du vil være ajour med, hvad der sker i Ubuntu-verdenen, kan du opsøge nogle få vigtige websites:

http://planet.ubuntu.com En konstant opdateret samling af blogtekster fra Ubuntu-bidragsydere.

http://cloud.ubuntu.comDaglige nyhedsopdateringer om Ubuntu om den offentlige, private og personlige cloud.

www.ubuntu-news.org Her finder du nyheder og opdateringer fra hele Ubuntu-projektet.

www.omgubuntu.co.uk Det er ikke en officiel Ubuntu-website, men den giver friske opdateringer fra Ubuntu-universet.

Hvis du vil grave dybere og finde ud af, hvilke fremskridt der gøres inden for specielle områder, og hvilke mål der er for den næste lancering, kan du besøge http://status.ubuntu.com.

IRC

Ubuntu-miljøet bruger Internet Relay Chat (IRC) på Freenode-netværket. Her er nogle af de vigtigste kanaler:

#ubuntu-devel Dette er den primære udviklerkanal.

#ubuntu-locoteams
Ubuntu-brugergrupper.

#ubuntu-classroom
Ugentlige undervisningssessioner.

#ubuntu-community-team
Diskussion om miljøets vækst.

#ubuntu-server
Serverrelateret diskussion.

#ubuntu-ensemble
Ensemble-relateret cloud-udviklings- og managementteknologi.

#ubuntu-doc
Dokumentationsteamet.

#ubuntu-women
Gør Ubuntu sikker og indbydende.

#ubuntu-news
Det, der sker i miljøet.

Mailinglister

E-mail-diskussionslister er en vigtig del af miljøets diskussioner om ideer og funktioner. Her er blandt andet:

ubuntu-devel
Den primære udviklerliste.

ubuntu-devel-discuss
En udvikler-diskussionsliste, der er åben for alle.

loco-contacts Local
Ubuntu-brugergruppe-udvekslinger.

ubuntu-desktop
Desktoprelateret diskussion.

ubuntu-server
Helliget server- og cloud-relateret diskussion.

Der findes en komplet liste over mailinglister på https://lists.ubuntu.com.