Product SiteDocumentation Site

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.

1.6.2. Status 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. 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.
Kompilasi sebuat paket oleh autobuilders

Gambar 1.2. Kompilasi sebuat paket oleh autobuilders

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:
  1. kurang bug kritis, atau paling tidak lebih sedikit dari versi yang dimasukkan dalam Testing;
  2. paling tidak 10 hari dihabiskan dalam Unstable, waktu yang cukup untuk menemukan dan melaporkan masalah serius;
  3. sukses compile pada semua arsitektur yang resmi didukung;
  4. 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

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.
Perjalan Sebuah Paket melalui beragam versi Debian

Gambar 1.3. Perjalan Sebuah Paket melalui beragam versi Debian

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!
Path kronologis dari program yang dipaketkan oleh Debian

Gambar 1.4. Path kronologis dari program yang dipaketkan oleh 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.
Tim keamanan Debian menangani dukungan keamanan pada rilis Stable saat ini dan juga di rilis Oldstable (tapi hanya selama diperlukan untuk memastikan satu tahun tumpang tindih dengan rilis stabil saat ini). Ini berarti dukungan sekitar tiga tahun untuk setiap rilis. Tim Debian LTS menangani dukungan keamanan (dua) tahun terakhir sehingga setiap rilis mendapat keuntungan berupa minimal 5 tahun dukungan sehingga pengguna dapat meningkatkan dari versi N ke N+2.