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.
Mari kita kembali ke kasus paket pada umumnya. Pengelola membuat paket awal, yang mereka compile untuk versi Unstable dan menempatkannya pada server ftp-master.debian.org
. Kejadian pertama melibatkan inspeksi dan validasi dari para ftpmaster. Perangkat lunak kemudian tersedia dalam distribusi Unstable, yang merupakan distribusi tedepan yang dipilih oleh para pengguna yang lebih peduli atas paket-paket mutakhir daripada khawatir atas bug-bug serius. Mereka menemukan program tersebut dan mencobanya.
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. 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.
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:
sukses compile pada semua arsitektur yang resmi didukung;
kurang bug kritis, atau paling tidak lebih sedikit dari versi yang dimasukkan dalam Testing;
paling tidak 5 hari dihabiskan dalam Unstable, yang biasanya cukup untuk menemukan dan melaporkan masalah serius (sukses lolos keluarga uji milik paket, bila ada, mengurangi waktu itu);
dependensi dapat dipenuhi dalam Testing, atau paling tidak dapat dipindahkan bersama dengan paket tersebut;
uji kualitas otomatis paket (autopkgtest) — jika didefinisikan — tidak menunjukkan regresi apa pun.
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
Sekarang mari kita beranggapan bahwa paket kita telah dimasukkan dalam Testing. Selama itu masih memiliki ruang untuk perbaikan, pengelolanya harus melanjutkan untuk meningkatkan dan memulai ulang proses dari Unstable (namun dengan inklusi berikutnya dalam Testing umumnya lebih cepat: Jika tidak berubah secara signifikan, semua dependensi sudah tersedia). Saat mencapai keadaan sempurna, pengelola telah menyelesaikan pekerjaannya. Langkah selanjutnya adalah pemuatan dalam distribusi Stable, yang pada kenyataannya merupakan penyalinan dari Testing pada momen yang dipilih oleh Manajer Rilis. Idealnya, keputusan ini dibuat saat installer siap dan saat tidak ada program dalam Testing yang memiliki bug kritis.
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: 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).
Pada akhir perjalanan, paket hipotetis kita sekarang disertakan dalam distribusi stabil. Perjalanan ini, bukan tanpa kesulitan, menjelaskan penundaan signifikan yang memisahkan rilis-rilis Debian Stable. Ini memberikan kontribusi, secara keseluruhan, ke reputasinya untuk kualitas. Selain itu, sebagian besar pengguna puas menggunakan salah satu dari tiga distribusi yang serentak tersedia. Administrator sistem, yang lebih mengutamakan stabilitas server mereka, tidak perlu versi terbaru dan terbesar dari GNOME; mereka dapat memilih Debian Stable, dan mereka akan puas. Pengguna akhir, lebih tertarik pada versi terbaru dari GNOME atau KDE Plasma daripada stabilitas yang kokoh, akan menemukan Debian Testing sebagai kompromi yang baik antara kurangnya masalah serius dan perangkat lunak yang relatif mutakhir. Akhirnya, pengembang dan pengguna yang lebih berpengalaman mungkin menjadi pionir, menguji semua perkembangan terbaru di Debian Unstable tepat di luar pintu gerbang, dengan risiko menderita sakit kepala dan bug yang melekat dalam setiap versi baru program. Untuk masing-masing Debian mereka sendiri!
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 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.