Acesta este primul articol dintr-o serie care explică elementele de bază ale dezvoltării Ubuntu într-un mod care nu explică necesită cantități imense de fundal și trece prin concepte, instrumente, procese și infrastructură pas cu pas Etapa. Dacă vă place articolul sau aveți întrebări sau ați găsit erori, vă rugăm să lăsați un comentariu.
Ubuntu este alcătuit din mii de componente diferite, scrise în multe limbaje de programare diferite. Fiecare componentă - fie că este o bibliotecă software, un instrument sau o aplicație grafică - este disponibilă ca pachet sursă. Pachetele sursă constau în cele mai multe cazuri din două părți: codul sursă real și metadatele. Metadatele includ dependențele pachetului, informațiile privind drepturile de autor și licențierea și instrucțiunile despre cum să construiți pachetul. Odată ce acest pachet sursă este compilat, procesul de compilare oferă pachete binare, care sunt fișierele .deb pe care utilizatorii le pot instala.
De fiecare dată când este lansată o nouă versiune a aplicației sau când cineva modifică sursa cod care intră în Ubuntu, pachetul sursă trebuie încărcat pe mașinile de construcție Launchpad pentru a fi compilat. Pachetele binare rezultate sunt apoi distribuite în arhivă și oglinzile sale în diferite țări. Adresele URL din
/etc/apt/sources.list indicați spre o arhivă sau o oglindă. În fiecare zi, imaginile CD sunt construite pentru o selecție de arome Ubuntu diferite. Ubuntu Desktop, Ubuntu Server, Kubuntu și altele specifică o listă a pachetelor necesare care intră pe CD. Aceste imagini CD sunt apoi utilizate pentru testele de instalare și oferă feedback pentru planificarea ulterioară a lansării.Dezvoltarea Ubuntu depinde foarte mult de stadiul actual al ciclului de lansare. Lansăm o nouă versiune a Ubuntu la fiecare șase luni, ceea ce este posibil doar pentru că am stabilit date de înghețare stricte. Cu fiecare dată de îngheț atinsă, se așteaptă ca dezvoltatorii să facă mai puține modificări mai puțin intruzive. Feature Freeze este prima mare dată de congelare după ce a trecut prima jumătate a ciclului. În această etapă, caracteristicile trebuie implementate în mare măsură. Restul ciclului ar trebui să fie axat pe remedierea erorilor. După aceea, interfața cu utilizatorul, apoi documentația, nucleul etc. sunt înghețate, apoi se lansează versiunea beta care primește multe teste. Începând cu versiunea beta, numai bug-urile critice se remediază și se face o versiune candidată la versiune și, dacă nu conține probleme grave, devine versiunea finală.
Mii de pachete sursă, miliarde de linii de cod, sute de colaboratori necesită multă comunicare și planificare pentru a menține standarde ridicate de calitate. La începutul fiecărui ciclu de lansare avem Ubuntu Developer Summit, unde dezvoltatorii și colaboratorii se reunesc pentru a planifica caracteristicile următoarelor versiuni. Fiecare caracteristică este discutată de părțile interesate și se scrie o specificație care conține detalii informații despre ipotezele sale, implementarea, schimbările necesare în alte locuri, modul de testare și curând. Toate acestea se fac într-un mod deschis și transparent, astfel încât, chiar dacă nu puteți participa la eveniment personal, puteți participa de la distanță și ascultați un streamcast, discutați cu însoțitorii și abonați-vă la modificări ale specificațiilor, astfel încât să fiți mereu la curent Data.
Totuși, nu fiecare schimbare poate fi discutată într-o ședință, mai ales că Ubuntu se bazează pe modificările care se fac în alte proiecte. De aceea, colaboratorii la Ubuntu rămân în permanență în legătură. Cele mai multe echipe sau proiecte folosesc liste de discuții dedicate pentru a evita prea mult zgomot fără legătură. Pentru o coordonare mai imediată, dezvoltatorii și colaboratorii folosesc Internet Relay Chat (IRC). Toate discuțiile sunt deschise și publice.
Un alt instrument important în ceea ce privește comunicarea sunt rapoartele de erori. Ori de câte ori se constată un defect într-un pachet sau într-o bucată de infrastructură, un raport de erori este depus în Launchpad. Toate informațiile sunt colectate în acel raport și importanța, starea și destinatarul acestuia sunt actualizate atunci când este necesar. Acest lucru îl face un instrument eficient pentru a rămâne la curent cu erorile dintr-un pachet sau proiect și pentru a organiza volumul de lucru.
Majoritatea software-ului disponibil prin Ubuntu nu este scris de dezvoltatorii Ubuntu înșiși. Cea mai mare parte este scrisă de dezvoltatorii altor proiecte Open Source și apoi integrată în Ubuntu. Aceste proiecte se numesc „Upstreams”, deoarece codul lor sursă curge în Ubuntu, unde „doar” îl integrăm. Relația cu Upstreams este extrem de importantă pentru Ubuntu. Ubuntu nu primește doar cod de la Upstreams, ci este, de asemenea, că Upstreams primește utilizatori, rapoarte de erori și patch-uri de la Ubuntu (și alte distribuții).
Cel mai important Upstream pentru Ubuntu este Debian. Debian este distribuția pe care se bazează Ubuntu și multe dintre deciziile de proiectare cu privire la infrastructura de ambalare sunt luate acolo. În mod tradițional, Debian a avut întotdeauna întreținători dedicați pentru fiecare pachet sau echipe de întreținere dedicate. În Ubuntu există și echipe care au interes pentru un subset de pachete și, în mod firesc, fiecare dezvoltator are un produs special domeniu de expertiză, dar participarea (și drepturile de încărcare) este, în general, deschisă tuturor celor care demonstrează abilități și disponibilitate.
Obținerea unei schimbări în Ubuntu ca nou colaborator nu este atât de descurajant pe cât pare și poate fi o experiență foarte plină de satisfacții. Nu este vorba doar despre învățarea a ceva nou și interesant, ci și despre partajarea soluției și rezolvarea unei probleme pentru milioane de utilizatori.
Dezvoltarea surselor deschise se întâmplă într-o lume distribuită cu diferite obiective și diferite zone de concentrare. De exemplu, ar putea fi cazul ca un anumit Upstream să fie interesat să lucreze la o nouă caracteristică mare în timp ce Ubuntu, din cauza programului de lansare restrâns, ar putea fi interesat să livreze o versiune solidă cu doar o eroare suplimentară repara. De aceea, folosim „Dezvoltarea distribuită”, unde se lucrează la cod în diferite ramuri care sunt fuzionate între ele după revizuirea codului și discuții suficiente.
În exemplul menționat mai sus, ar avea sens să livrăm Ubuntu cu versiunea existentă a proiectului, adăugați remedierea bug-ului, introduceți-l în Upstream pentru următoarea lor versiune și expediați-l (dacă este adecvat) în următorul Ubuntu eliberare. Ar fi cel mai bun compromis posibil și o situație în care toată lumea câștigă.
Pentru a remedia o eroare în Ubuntu, veți obține mai întâi codul sursă pentru pachet, apoi veți lucra la soluție, documentați-l astfel încât să fie ușor de înțeles pentru alți dezvoltatori și utilizatori, apoi creați pachetul pentru testare aceasta. După ce ați testat-o, puteți propune cu ușurință modificarea pentru a fi inclusă în versiunea curentă de dezvoltare Ubuntu. Un dezvoltator cu drepturi de încărcare îl va examina și apoi îl va integra în Ubuntu.
Când încercați să găsiți o soluție, este de obicei o idee bună să verificați cu Upstream și să vedeți dacă problema (sau o posibilă soluție) este deja cunoscută și, dacă nu, faceți tot posibilul pentru ca soluția să fie concertată efort.
Pași suplimentari ar putea presupune retragerea modificării la o versiune mai veche, încă acceptată de Ubuntu și redirecționarea acesteia către Upstream.
Cele mai importante cerințe pentru succes în dezvoltarea Ubuntu sunt: a avea un talent pentru „a face lucrurile să funcționeze din nou ”, fără să-mi fie frică să citească documentația și să pună întrebări, să fiu jucător de echipă și să mă bucur de un detectiv muncă.
Locuri bune pentru a vă pune întrebările sunt [email protected] și # ubuntu-motu pe irc.freenode.net. Veți găsi cu ușurință o mulțime de noi prieteni și oameni cu aceeași pasiune pe care o aveți: transformarea lumii într-un loc mai bun prin crearea unui software Open Source mai bun.
Actualizați: Iată Partea 2 din Introducere în dezvoltarea Ubuntu.
Totul Ubuntu, zilnic. Din 2009.