Product SiteDocumentation Site

1.6. Cicle de vida d'una versió

El projecte tindrà simultàniament entre tres o sis versions diferents de cada programa, que són: Experimental, Unstable, Testing, Stable, Oldstable, i fins i tot Oldoldstable. Cada una correspon a una fase diferent de desenvolupament. Per a una bona comprensió, veiem el camí d'un programa, des del seu empaquetat inicial fins a la inclusió en una versió estable de Debian.

1.6.1. L'estat Experimental

En primer lloc, examinem el cas concret de la distribució Experimental: aquest és un grup de paquets de Debian corresponents al programari actualment en desenvolupament, i no necessàriament enllestit, com indica el seu nom. No tot passa a través d'aquest pas; alguns desenvolupadors afegeixen paquets aquí per tal d'obtenir comentaris dels usuaris més experimentats (o més valents).
En cas contrari, aquesta distribució sovint conté modificacions importants als paquets base, la integració dels quals a la distribució Unstable amb errors seriosos tindria repercussions crítiques. És, per tant, una distribució completament aïllada, els seus paquets mai migren a una altra versió (excepte per intervenció directa i expressa del mantenidor o dels ftpmasters). Tampoc és autocontinguda: només un subconjunt dels paquets existents es troben a Experimental, i generalment no inclou el sistema base. Aquesta distribució és, per tant, molt útil en combinació amb una altra distribució autònoma, com ara Unstable.

1.6.2. L'estat Unstable

Tornem al cas d'un paquet típic. El mantenidor crea un paquet inicial, que compilarà per a la versió Unstable i el deixarà al servidor ftp-master.debian.org. Aquest primer esdeveniment implica la inspecció i validació dels ftpmasters. El programari estarà llavors disponible a la distribució Unstable, que és la distribució «a la cresta de l'onada» triada pels usuaris que estan més preocupats per tenir paquets a la darrera versió que per problemes greus. Descobreixen el programa i després el proven.
Si troben errors, els informen al mantenidor del paquet. El mantenidor llavors prepara regularment versions corregides, que tornarà a enviar al servidor.
Cada paquet actualitzat s'actualitza en tots els miralls de Debian del món en sis hores. Els usuaris després proven les correccions i cerquen altres problemes resultants de les modificacions. Es poden produir diverses actualitzacions ràpidament. Durant aquests temps, els robots de compilació automàtica («autobuilders») entren en acció. El mantenidor envia les fonts del paquet (sense cap paquet precompilat). Els «autobuilders» se'n fan càrrec i compilen versions automàticament per a totes les arquitectures suportades. Algunes compilacions poden fallar: el mantenidor rebrà un informe d'error indicant el problema, que després es corregirà en versions posteriors. Quan l'error és descobert per un especialista de l'arquitectura en qüestió, l'informe d'error pot venir amb un pedaç preparat per utilitzar-lo.
Compilació d'un paquet pels «autobuilders»

Figura 1.2. Compilació d'un paquet pels «autobuilders»

1.6.3. Migració a Testing

Una mica més tard, el paquet haurà madurat: compilat sobre totes les arquitectures, i no haurà sofert modificacions recents. És llavors un candidat per a la seva inclusió a la distribució Testing — un grup de paquets de Unstable triats segons uns criteris quantificables. Cada dia un programa automàticament selecciona els paquets per ser inclosos a Testing, d'acord amb uns elements que garanteixin un cert nivell de qualitat:
  1. compilació amb èxit en totes les arquitectures amb suport oficial;
  2. absència d'errors crítics o, com a mínim, menys que a la versió que s'inclou actualment a Testing;
  3. haver estat com a mínim cinc dies a Unstable, que sol ser temps suficient per trobar i informar de qualsevol problema seriós (el passar amb èxit el conjunt de proves del propi paquet , si n'hi ha, redueix aquest temps);
  4. dependències que poden ser satisfetes a Testing, o que com a mínim puguin migrar-se al mateix temps que el paquet en qüestió;
  5. els controls de qualitat automàtics del propi paquet (autopkgtest) — si n'hi ha — no mostren cap regressió.
Aquest sistema clarament no és infal·lible; els errors crítics es troben regularment en els paquets inclosos a Testing. Tot i així, és generalment efectiu i Testing té molts menys problemes que Unstable, essent per a molts un bon compromís entre estabilitat i novetat.

1.6.4. La promoció des de Testing a Stable

Suposem ara que el nostre paquet està inclòs a Testing. Mentre hi hagi espai per a la millora, el seu mantenidor ha de continuar millorant-lo i reiniciar el procés des de Unstable (però la seva posterior inclusió a Testing és generalment més ràpida: llevat que canviï significativament, totes les seves dependències ja estan disponibles). Quan arriba a la perfecció, el mantenidor ha completat el seu treball. El següent pas és la inclusió a la distribució Stable, és, en realitat, una simple còpia de Testing en un moment triat pel gestor de versions. Idealment, aquesta decisió es pren quan l'instal·lador està llest, i quan cap programa de Testing té errors crítics coneguts.
Atès que aquest moment mai arriba realment, a la pràctica, Debian ha de prendre un compromís: eliminar paquets el mantenidor dels quals no ha pogut corregir errors a temps, o acceptar alliberar una distribució amb alguns errors en els milers de programes. El gestor de versions haurà anunciat prèviament un període de congelació, durant el qual cada actualització a Testing ha de ser aprovada. L'objectiu aquí és evitar qualsevol nova versió (i els seus nous errors) i només aprovar actualitzacions que solucionin errors.
El camí d'un paquet a través de les diverses versions de Debian

Figura 1.3. El camí d'un paquet a través de les diverses versions de Debian

Després del llançament d'una nova versió estable, els gestors de versions de «Stable» gestionen tot el desenvolupament posterior (s'anomenen "revisions", ex: 10.1, 10.2, 10.3 per a la versió 10). Aquestes actualitzacions inclouen sistemàticament tots els pedaços de seguretat. També inclouran les correccions més importants (el mantenidor d'un paquet ha de demostrar la gravetat del problema que desitja corregir per tal d'incloure les seves actualitzacions).
Al final del viatge, el nostre hipotètic paquet està ara inclòs a la distribució estable. Aquest viatge, no sense dificultats, explica els retards significatius que separen les versions de Debian Stable. Això contribueix, sobretot, a la seva reputació de qualitat. A més, la majoria dels usuaris estan satisfets utilitzant una de les tres distribucions disponibles simultàniament. Els administradors del sistema, preocupats sobretot per l'estabilitat dels seus servidors, no necessiten l'última i més gran versió de GNOME: poden triar Debian Stable, i es veuran satisfets. Els usuaris finals, més interessats en les últimes versions del GNOME o del Plasma del KDE que en una estabilitat sòlida, trobaran en Debian Testing un bon compromís entre la falta de problemes greus i un programari relativament actualitzat. Finalment, els desenvolupadors i usuaris més experimentats poden obrir camí, provant totes les últimes versions a Debian Unstable acabades de sortir del forn, amb el risc de patir els mals de cap i els errors inherents a qualsevol nova versió d'un programa. Una versió de Debian per a cadascú!
Camí cronològic d'un programa empaquetat per Debian

Figura 1.4. Camí cronològic d'un programa empaquetat per Debian

1.6.5. L'estat de Oldstable i Oldoldstable

Cada versió estable (Stable) té una esperança de vida d'uns 5 anys i atès que les versions tendeixen a passar cada 2 anys, pot haver-hi fins a 3 llançaments compatibles en un moment donat. Quan es produeix una nova versió estable, l'alliberament anterior esdevé Oldstable (antic estable) i l'anterior a aquest esdevé Oldoldstable (antic antic estable).
Aquest suport a llarg termini (LTS) dels llançaments de Debian és una iniciativa recent: col·laboradors individuals i empreses es van unir per crear l'equip Debian LTS. Les versions antigues que ja no estan suportades per l'equip de seguretat de Debian són responsabilitat d'aquest nou equip.
L'equip de seguretat de Debian gestiona el suport de seguretat per a la distribució vigent Stable i també per a l'anterior Oldstable (però només durant el temps necessari per assegurar un any de solapament amb l'actual versió estable). Això equival aproximadament a tres anys de suport per a cada versió. L'equip de Debian LTS s'encarrega dels últims (dos) anys de suport de seguretat de manera que cada llançament es beneficiï d'un mínim de cinc anys de suport de manera que els usuaris puguin actualitzar de la versió N a la N+2, per exemple, de Debian 9 Strectch a Debian 11 Bullseye.