1.6. Siklus hidup dari sebuah Rilis
Proyek secara simultan akan memiliki tiga sampai enam versi berbeda untuk setiap program, dinamakan Experimental, Unstable, Testing, Stable, Oldstable, dan bahkan Oldoldstable. Masing-masing mewakili fase yang berbeda dalam pengembangan. Untuk pemahaman yang baik, mari kita lihat perjalanan sebuah program, dari pemaketan awal hingga pemuatan dalam versi stabil Debian.
1.6.1. Status Experimental
Mari pertama-tama kita lihat kasus khusus dari distribusi Experimental: ini merupakan grup dari paket Debian yang berkaitan dengan perangkat lunak yang sedang dalam pengembangan, dan sesuai dengan namanya yang berarti belum tentu komplit. Tidak semuanya melalui langkah ini; beberapa pengembang menambah paket di sini untuk mendapatkan umpan balik dari pengguna yang lebih berpengalaman (atau lebih berani).
Selain itu, distribusi ini seringkali menampung modifikasi-modifikasi penting atas paket-paket dasar, yang integrasinya ke dalam Unstable dengan bug serius akan memiliki dampak kritikal. Inilah yang membuat distribusi ini benar-benar terisolasi, paketnya tidak pernah bermigrasi ke versi lain (kecuali dengan campur tangan langsung dari pengelola atau dari ftpmaster). Ini juga tidak mandiri: hanya suatu subset dari paket-paket yang ada yang hadir dalam Experimental, dan umumnya itu tidak termasuk sistem basis. Maka distribusi ini paling berguna dalam kombinasi dengan distribusi lain yang mandiri seperti Unstable.
Let us turn back to the case of a typical package. The maintainer creates an initial package, which they compile for the Unstable version and place on the ftp-master.debian.org
server. This first event involves inspection and validation from the ftpmasters. The software is then available in the Unstable distribution, which is the “cutting edge” distribution chosen by users who are more concerned with having up-to-date packages than worried about serious bugs. They discover the program and then test it.
Jika mereka menemukan bug, mereka melapor pada pengelola paket. Pengelola paket selanjutnya secara berkala menyiapkan versi yang telah diperbaiki, untuk diunggah ke server.
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. Most frequently, the maintainer has only one traditional PC and has compiled their package on the amd64 (or i386) architecture (or they opted for a source-only upload, thus without any precompiled package); the autobuilders take over and automatically compile versions for all the other 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.
1.6.3. Migrasi ke Testing
Tak lama setelah ini, paket akan matang; ter-compile pada semua arsitektur, tidak akan mengalami modifikasi belakangan. Hal ini menjadi kandidat untuk dimuat dalam distribusi Testing — sebuah grup paket Unstable dipilih berdasarkan kriteria terukur. Setiap hari sebuah program secara otomatis memilih paket untuk dimasukkan dalam Testing, berdasarkan elemen menjamin suatu tingkat tertentu kualitas:
kurang bug kritis, atau paling tidak lebih sedikit dari versi yang dimasukkan dalam Testing;
at least 5 days spent in Unstable, which is usually sufficient time to find and report any serious problems (successfully passing the package's own test suite, if it has one, reduces that time);
sukses compile pada semua arsitektur yang resmi didukung;
dependensi dapat dipenuhi dalam Testing, atau paling tidak dapat dipindahkan bersama dengan paket dalam pertanyaan.
Sistem ini jelas tidak sempurna; bug kritis ditemukan berkala dalam paket yang dimuat dalam Testing. Secara umum masih efeketif, dan Testing mengalami masalah yang lebih sedikit dari Unstable, yang bagi kebanyakan, menjadi kompromi yang baik antara kestabilan dan kebaruan.
1.6.4. Promosi dari Testing ke Stable
Let us suppose that our package is now included in Testing. As long as it has room for improvement, its maintainer must continue to improve it and restart the process from Unstable (but its later inclusion in Testing is generally faster: unless it changed significantly, all of its dependencies are already available). When it reaches perfection, the maintainer has completed their work. The next step is the inclusion in the Stable distribution, which is, in reality, a simple copy of Testing at a moment chosen by the Release Manager. Ideally, this decision is made when the installer is ready, and when no program in Testing has any known critical bugs.
Karena momen ini sesungguhnya tidak pernah terjadi, pada praktiknya, Debian harus berkompromi: menghapus paket yang pengelolanya telah gagal mengoreksi bug tepat waktu atau setuju merilis distribusi dengan beberapa bug dalam ribuan program. Manajer Rilis sebelumnya akan mengumumkan masa freeze, saat setiap update ke Testing harus disetujui. Tujuan di sini adalah untuk mencegah setiap versi baru (dan bug baru), dan hanya menyetujui bug kritis.
After the release of a new stable version, the Stable Release Managers manage all further development (called “revisions”, ex: 7.1, 7.2, 7.3 for version 7). 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).
At the end of the journey, our hypothetical package is now included in the stable distribution. This journey, not without its difficulties, explains the significant delays separating the Debian Stable releases. This contributes, over all, to its reputation for quality. Furthermore, the majority of users are satisfied using one of the three distributions simultaneously available. The system administrators, concerned above all about the stability of their servers, don't need the latest and greatest version of GNOME; they can choose Debian Stable, and they will be satisfied. End users, more interested in the latest versions of GNOME or KDE Plasma than in rock-solid stability, will find Debian Testing to be a good compromise between a lack of serious problems and relatively up-to-date software. Finally, developers and more experienced users may blaze the trail, testing all the latest developments in Debian Unstable right out of the gate, at the risk of suffering the headaches and bugs inherent in any new version of a program. To each their own Debian!
1.6.5. Status Oldstable dan Oldoldstable
Setiap rilis Stable memiliki harapan umur hidup sekitar 5 tahun dan mengingat bahwa rilis cenderung terjadi setiap 2 tahun, ada sampai dengan 3 rilis yang didukung pada setiap saat. Ketika rilis stabil versi terbaru dilaksanakan, rilis sebelumnya menjadi Oldstable dan yang sebelumnya menjadi Oldoldstable.
Long Term Support (LTS, Dukungan Jangka Panjang) dari rilis Debian ini adalah inisiatif baru: para kontributor individual dan perusahaan bergabung untuk membuat tim Debian LTS. Rilis yang lebih tua yang tidak lagi didukung oleh tim keamanan Debian jatuh di bawah tanggung jawab ini tim baru.
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 releases benefits from at least 5 years of support and so that users can upgrade from version N to N+2, for example from Debian 8 "Jessie" to Debian 10 "Buster".