Product SiteDocumentation Site

1.6. Cykl życiowy Wydania

Projekt będzie miał jednocześnie od trzech do sześciu różnych wersji każdego programu, o nazwach: Eksperymentalna, Niestabilna, Testowa, Stabilna, Stara-stabilna, a nawet — Stara-stara-stabilna. Każda z tych wersji odpowiada innej fazie rozwoju. Dla lepszego zrozumienia, przyjrzyjmy się programowi ze wstępnego pakietu, który ma być włączony do stabilnej wersji Debiana.

1.6.1. The Eksperymentalna Stan

Po pierwsze, przyjrzyjmy się konkretnemu przypadkowi dystrybucji Eksperymentalnej: jest to grupa pakietów Debiana, odnosząca się do oprogramowania, które jest w fazie rozwojowej, choć niekoniecznie ukończonej, jak na to wskazuje jej nazwa. Nie wszystko przechodzi poprzez ten etap: niektórzy programiści dodają tutaj pakiety, aby otrzymać informacje zwrotne od doświadczonych (lub odważniejszych) użytkowników.
Poza tym, ta dystrybucja zawiera często ważne modyfikacje pakietów podstawowych, których integracja z dystrybucjąNiestabilną, przy jednoczesnym wystąpieniu poważnych błędów, miałaby krytyczne konsekwencje. Jest to zatem całkowicie izolowana dystrybucja, jej pakiety nigdy nie migrują do innej wersji (z wyjątkiem bezpośredniej, wyraźnej interwencji opiekuna lub ftpmasters). Nie jest ona również niezależna: jest to tylko podzbiór istniejących pakietów, obecny w dystrybucji Experymentalnej . Ogólnie mówiąc — nie obejmuje ona systemu podstawowego. Dlatego dystrybucja ta jest szczególnie użyteczna w połączeniu z inną, niezależną dystrybucją, taką jak dystrybucja Niestabilna.

1.6.2. Status Niestabilna

Wróćmy do przypadku typowego pakietu. Opiekun tworzy pakiet początkowy, który kompiluje dla wersji Niestabilnej i umieszcza na serwerze ftp-master.debian.org. To pierwsze zdarzenie obejmuje inspekcję i weryfikację ze strony ftpmasterów. Oprogramowanie jest następnie dostępne w dystrybucji Niestabilnej, która jest „awangardową” dystrybucją wybieraną przez użytkowników, którzy są bardziej zainteresowani posiadaniem aktualnych pakietów niż poważnymi błędami. Odkrywają program, a następnie go testują.
Jeśli napotykają błędy, to informują o nich opiekuna pakietu. Wówczas opiekun regularnie przygotowuje poprawione wersje, które następnie przesyła do serwera.
Every newly updated package is updated on all Debian mirrors around the world within six hours. The users then test the corrections and search for other problems resulting from the modifications. Several updates may then occur rapidly. During these times, autobuilder robots come into action. The maintainer uploads the package sources (without any precompiled package). The autobuilders take over and automatically compile versions for all supported architectures. Some compilations may fail; the maintainer will then receive a bug report indicating the problem, which is then to be corrected in the next versions. When the bug is discovered by a specialist for the architecture in question, the bug report may come with a patch ready to use.
Kompilacja pakietu przez autobuildery

Rysunek 1.2. Kompilacja pakietu przez autobuildery

1.6.3. Migracja do Fazy testów

Nieco póżniej, pakiet zaczyna 'dojrzewać'. Skompilowany dla wszystkich architektur — nie będzie już przechodzić dalszych modyfikacji. Jest więc kandydatem do włączenia w dystrybucję Testową — grupę pakietów dystrybucji Niestabilnej, wybranych zgodnie z pewnymi kryteriami ilościowymi. Każdego dnia program automatycznie wybiera pakiety, aby je włączyć do dystrybucji Testowej, zgodnie z elementami gwarantującymi pewien poziom jakości:
  1. udana kompilacja pakietu na wszystkich oficjalnie wspieranych architekturach;
  2. brak błędów krytycznych lub przynajmniej mniej niż w wersji obecnie znajdującej się w dystrybucji Testowej;
  3. co najmniej 5 dni spędzonych w Niestabilnym, co zwykle wystarcza na znalezienie i zgłoszenie wszelkich poważnych problemów (pomyślne przejście własnego zestawu testów pakietu, jeśli taki posiada, skraca ten czas);
  4. zależności mogą zostać spełnione w Testowaniu, lub które można tam przynajmniej przenieść razem z danym pakietem;
  5. automatyczne testy jakości pakietu (autopkgtest — jeśli zostały zdefiniowane — nie wykazują żadnego regresu.
Ten system oczywiście nie jest niezawodny; błędy krytyczne są często znajdowane w pakietach zawartych w dystrybucji Testowej. Pomimo to, mówiąc ogólnie, jest on skuteczny, a dystrubucja Testowa sprawia mniej problemów niż Niestablina, przez co jest dla wielu dobrym kompromisem między stabilnością a oryginalnością.

1.6.4. Awans z Wersji Testowej do Wersji Stabilnej

Załóżmy, że nasz pakiet jest teraz włączony do Wersji Testowej. Dopóki ma miejsce na ulepszenia, jego opiekun musi nadal go ulepszać i ponownie uruchamiać proces od Wersji Niestabilnej (ale później jego włączenie do Wersji Testowej jest generalnie szybszy: o ile nie zmienił się znacząco, wszystkie jego zależności są już dostępne). Kiedy osiągnie doskonałość, opiekun zakończył swoją pracę. Następnym krokiem jest włączenie do dystrybucji Stabilnej, która w rzeczywistości jest prostą kopią Wersji Testowej w momencie wybranym przez Menedżera Wydań. Idealnie, ta decyzja jest podejmowana, gdy instalator jest gotowy i gdy żaden program w Wersji Testowej nie ma żadnych znanych błędów krytycznych.
Ponieważ ten moment nigdy tak naprawdę nie nadchodzi, w praktyce Debian stawia na kompromis: usuwa pakiety, których opiekunowie nie poprawili błędów na czas lub zgadza się na wydanie dystrybucji z pewnymi błędami w tysiącach programów. Menedżer Wydań powinien wcześniej ogłosić okres wstrzymania, podczas którego wszystkie aktualizacje do Wersji Testowej muszą zostać zaakceptowane. Celem jest zapobiegnięcie jakiejkolwiek nowej wersji (i jej nowym błędom) i zaakceptowanie jedynie aktualizacji, które naprawiają błędy.
Ścieżka pakietu poprzez różne wersje Debiana

Rysunek 1.3. Ścieżka pakietu poprzez różne wersje Debiana

After the release of a new stable version, the Stable Release Managers manage all further development (called “revisions”, ex: 10.1, 10.2, 10.3 for version 10). These updates systematically include all security patches. They will also include the most important corrections (the maintainer of a package must prove the gravity of the problem that they wish to correct in order to have their updates included).
Pod koniec podróży nasz hipotetyczny pakiet jest teraz dołączany do dystrybucji stabilnej. Ta podróż, nie pozbawiona trudności, wyjaśnia znaczne opóźnienia między wydaniami stabilnymi Debiana. To przede wszystkim przyczynia się do jej reputacji w zakresie jakości. Co więcej, większość użytkowników jest zadowolona z używania jednej z trzech jednocześnie dostępnych dystrybucji. Administratorzy systemów, zatroskani przede wszystkim o stabilność swoich serwerów, nie potrzebują najnowszej i najlepszej wersji GNOME; mogą wybrać Wersję Stabilną Debiana i będą usatysfakcjonowani. Użytkownicy końcowi, bardziej zainteresowani najnowszymi wersjami GNOME lub KDE Plasma niż solidną stabilnością, uznają Wersję Testową Debiana za dobry kompromis między brakiem poważnych problemów a stosunkowo aktualnym oprogramowaniem. Wreszcie programiści i bardziej doświadczeni użytkownicy mogą przecierać szlaki, testując wszystkie najnowsze osiągnięcia Debiana w Wersji Niestabilnej od razu, ryzykując ból głowy i błędy nieodłącznie związane z każdą nową wersją programu. Do każdego jego własny Debian!
Ścieżka chronologiczna programu spakowanego przez Debian

Rysunek 1.4. Ścieżka chronologiczna programu spakowanego przez Debian

1.6.5. Status Oldstable i Oldoldstable

Każde Stabilne wydanie ma przewidzianą długość życia na około 5 lat i mając na uwadze, iż wydania zwykle mają miejsce co 2 lata, w danej chwili mogą funkcjonować 3 wspierane wydania na raz. Kiedy nowe wydanie stabilne ma miejsce, poprzednie wydanie staje się wersją Oldstable, a jeszcze wcześniejsze staje się wersją Oldoldstable.
To długoterminowe wsparcie (ang. Long Term Support, LTS) wydań Debiana to niedawna inicjatywa: indywidualni współtwórcy i firmy połączyli siły, aby stworzyć zespół Debiana LTS. Starsze wydania, które nie są już wspierane przez zespół ds. bezpieczeństwa Debiana, podlegają odpowiedzialności tego nowego zespołu.
The Debian security team handles security support in the current Stable release and also in the Oldstable release (but only for as long as is needed to ensure one year of overlap with the current stable release). This amounts roughly to three years of support for each release. The Debian LTS team handles the last (two) years of security support so that each release benefits from at least 5 years of support and so that users can upgrade from version N to N+2, for example, from Debian 9 Stretch to Debian 11 Bullseye.