Karya yang dihasilkan proyek Debian merupakan hasil simultan dari kerja infrastruktur yang dilakukan oleh para pengembang Debian berpengalaman, individu, atau pekerjaan kolektif dari para pengembang paket Debian, dan umpan balik pengguna.
1.3.1. The Debian Developers (Pengembang Debian)
Debian developers have various responsibilities, and as official project members, they have great influence on the direction the project takes. A Debian developer is traditionally generally responsible for at least one package, but according to their available time and desire, they are free to become involved in numerous teams and projects, thus acquiring more responsibilities within the project.
Package maintenance is a relatively regimented activity, very documented, or even regulated. It must, in effect, comply with all the standards established by the
Debian Policy. Fortunately, there are many tools that facilitate the maintainer's work. The developer can, thus, focus on the specifics of their package and on more complex tasks, such as “squashing“ bugs.
Kebijakan, elemen penting dari Proyek Debian, menyediakan aturan yang memastikan kualitas paket dan interoperabilitas sempurna dari distribusi. Terima kasih pada Kebijakan ini, Debian tetap konsisten terlepas dari ukurannya yang begitu besar. Kebijakan ini tidak mati, namun secara terus-menerus berevolusi, terima kasih atas proposal yang diformulasikan dalam milis
debian-policy@lists.debian.org
. Amandemen yang disetujui oleh semua pihak diterima dan diterapkan ke dalam dokumen oleh kelompok kecil pengelola yang tidak memiliki tanggung jawab editorial (mereka hanya menyertakan modifikasi yang telah disetujui oleh pengembang Debian yang merupakan anggota dari milis debian-policy). Anda dapat membaca amandemen saat ini pada sistem pelacakan bug:
Kebijakan ini memberikan cakupan yang cukup luas dari aspek teknis pengemasan. Ukuran proyek juga menimbulkan masalah organisasi; hal ini ditangani oleh Konstitusi Debian, yang menetapkan struktur dan sarana untuk pengambilan keputusan. Dengan kata lain, sistem tata kelola formal.
Konstitusi ini mendefinisikan beberapa peran dan posisi, berikut dengan tanggung jawab dan kewenangannya. Secara khusus perlu diperhatikan bahwa pengembang Debian selalu memiliki kewenangan dalam membuat keputusan terakhir di sidang umum, di mana diperlukan tiga-per-empat (75%) suara diperlukan untuk membuat perubahan (misalnya yang memiliki efek pada Dokumen Yayasan). Biar bagaimanapun, setiap tahunnya pengembang memilih seorang "pemimpin" untuk merepresentasikan mereka dalam pertemuan, dan memastikan koordinasi internal antara beragam tim. Pemilihan ini selalu penuh dengan diskusi intensif. Peran Debian Project leader (
DPL) tidak didefinisikan secara formal dalam dokumen mana pun: kandidat untuk posisi ini umumnya mengajukan pemahaman mereka sendiri akan posisi pemimpin. Pada praktiknya, peran pemimpin termasuk sebagai perwakilan ke media, koordinasi antara tim "internal", dan menyediakan panduan umum ke proyek, di mana pengembang dapat menghubungkan: pandangan DPL secara implisit disetujui oleh mayoritas anggota proyek.
Secara khusus, seorang pemimpin memiliki otoritas; hak suaranya memecahkan pemungutan suara seri; ia dapat membuat keputusan apapun yang sebelumnya tak seorang pun memiliki wewenang dan dapat mendelegasikan sebagian tanggung jawabnya.
Since its inception, the project has been successively led by Ian Murdock, Bruce Perens, Ian Jackson, Wichert Akkerman, Ben Collins, Bdale Garbee, Martin Michlmayr, Branden Robinson, Anthony Towns, Sam Hocevar, Steve McIntyre, Stefano Zacchiroli, Lucas Nussbaum, Neill McGovern, Mehdi Dogguy, Chris Lamb, Sam Hartman, Jonathan Carter, and Andreas Tille.
Konstitusi telah mendefinisikan sebuah "komite teknis". Peran dasar komite ini adalah memutuskan hal-hal teknis saat para pengembang yang terlibat belum mencapai kesepakatan di antara mereka sendiri. Selain itu, komite ini berperan sebagai penasihat bagi pengembang mana pun yang tidak bisa membuat keputusan yang mereka bertanggung jawab atasnya. Penting untuk dicatat bahwa mereka hanya terlibat saat diundang oleh salah satu pihak yang membutuhkan.
Akhirnya, di dalam konstitusi didefinisikan posisi "sekretaris proyek" yang bertanggung jawab atas proses pemungutan suara dari beragam pemilihan dan sidang umum.
Prosedur "resolusi umum" ("general resolution"/
GR) sepenuhnya dirinci dalam konstitusi, dari periode diskusi awal hingga penghitungan akhir suara. Aspek yang paling menarik dari proses itu adalah bahwa ketika sampai ke pemberian suara yang sebenarnya, pengembang harus menentukan peringkat pilihan pemungutan suara yang berbeda antara mereka dan pemenang dipilih dengan metode Condorcet
https://en.wikipedia.org/wiki/Condorcet_method (lebih khusus lagi, metode Schulze). Untuk lebih jelasnya lihat:
Even if this constitution establishes a semblance of democracy, the daily reality is quite different: Debian naturally follows the free software rules of the do-ocracy: the one who does things gets to decide how to do them. A lot of time can be wasted debating the respective merits of various ways to approach a problem; the chosen solution will be the first one that is both functional and satisfying… which will come out of the time that a competent person puts into it.
Hanya inilah cara untuk mendapatkan kredit: lakukan sesuatu yang berguna dan tunjukkan telah bekerja dengan baik. Banyak tim "administratif" Debian bekerja berdasarkan perjanjian, lebih suka relawan yang telah berkontribusi secara efektif dan membuktikan kompetensinya. Metode ini praktis, karena mayoritas pekerjaan tim ini bersifat publik, sehingga dapat diakses oleh pengembang manapun yang tertarik. Oleh karena inilah Debian sering digambarkan sebagai "meritokrasi".
This effective operational method guarantees the quality of contributors in the “key” Debian teams. This method is by no means perfect, and occasionally there are those who do not accept this way of operating. The selection of developers accepted in the teams may appear a bit arbitrary, or even unfair. Furthermore, not everybody has the same definition of the service expected from these teams. For some, it is unacceptable to have to wait eight days for inclusion of a new Debian package, while others will wait patiently for three weeks without a problem. As such, there are regular complaints from the disgruntled about the “quality of service” from some teams.
1.3.2. Peran Aktif dari Pengguna
Apakah relevan untuk menyebut pengguna di antara mereka yang bekerja dalam proyek Debian? Ya: mereka memiliki peran penting dalam proyek. Jauh dari sekadar "pasif", beberapa pengguna menjalakan Debian versi pengembangan dan secara rutin melaporkan bug untuk mengindikasikan masalah. Lainnya bahkan pergi jauh lebih dalam dengan memberikan ide perbaikan, dengan mengisi laporan kutu dengan tingkat severity "wishlist", atau bahkan memberikan koreksi pada kode sumber, yang dinamakan sebagai "patches" (lihat
Bagian 1.3.2.3, “Mengirim perbaikan”).
Alat fundamental untuk melaporkan bug dalam Debian adalah Debian Bug Tracking System/Sistem Pelacakan Kutu (Debian BTS), yang dipakai oleh banyak bagian dari proyek. Bagian publik (antarmuka web) memungkinkan pengguna melihat semua kutu yang dilaporkan, dengan pilihan untuk menampilkan kutu berdasarkan beragam kriteria, seperti: paket yang terdampak, severity, status, alamat dari pelapor, alamat dari pengelola, tag, dll. Juga memungkinkan untuk menjelajahi daftar historikal lengkap semua diskusi dari setiap kutu.
Di bawah permukaan, Debian BTS berbasis surel: semua informasi yang disimpan berasal dari pesan yang dikirim oleh beragam orang yang terlibat. Setiap surel yang dikirim ke
12345@bugs.debian.org
akan ditugaskan ke rekam jejak untuk kutu no. 12345. Orang yang berhak dapat "menutup" dengan menulis pesan yang menjelaskan alasan dari keputusan untuk menutup ke
12345-done@bugs.debian.org
(sebuah kutu diungkapkan saat masalah indikasi dipecahkan atau tidak lagi relevan). Kutu baru dilaporkan dengan mengirimkan surel ke
submit@bugs.debian.org
berdasarkan format tertentu yang mengidentifikasi paket yang dipertanyakan. Alamat
control@bugs.debian.org
memungkinkan penyuntingan semua "informasi-meta" yang terkait dengan kutu.
Debian BTS memiliki fungsi lain, seperti penggunaan label untuk menandakan kutu. Untuk informasi lebih lanjut, silakan lihat
Users can also use the command line to send bug reports on a Debian package with the reportbug
tool. It helps making sure the bug in question hasn't already been filed, thus preventing redundancy in the system. It reminds the user of the definitions of the severity levels, for the report to be as accurate as possible (the developer can always fine-tune these parameters later, if needed, e.g. using the bts
command). It helps writing a complete bug report, without the user needing to know the precise syntax, by writing it and allowing the user to edit it. This report will then be sent via an e-mail server (by default, a remote one run by Debian, but reportbug
can also use a local server).
Perkakas ini awalnya hanya ditujukan untuk versi pengembangan, yang hanya perhatian dengan penanganan kutu. Akibatnya versi stabil Debianbagaikan tertulis di batu, hanya dengan pengecualian pemutakhiran keamanan atau pemutakhiran lainnya (jika, sebagai contoh, sebuah paket tidak bekerja sama sekali). Koreksi minor dari kutu dalam paket Debian harus menunggu versi stabil berikutnya.
1.3.2.2. Terjemahan dan dokumentasi
Sebagai tambahan, banyak pengguna yang yang puas dengan layanan yang ditawarkan Debian suka memberikan kontribusi pada proyek mereka sendiri. Tidak semua orang memiliki tingkat kemahiran yang cukup dalam pemrograman, mereka memilih untuk untuk membantu penerjemahan dan meninjau dokumentasi. Terdapat milis spesifik bahasa tertentu untuk mengkoordinasikan pekerjaan ini.
1.3.2.3. Mengirim perbaikan
Pengguna yang lebih mahir mungkin dapat memberikan perbaikan pada program dengan mengirimkan patch.
Sebuah patch adalah berkas yang menggambarkan perubahan yang perlu dibuat pada satu atau lebih berkas. Secara khusus, akan berisi daftar baris yang perlu dihapus atau ditambahkan pada kode, begitupun dengan baris yang perlu diambil dari teks referensi, mengganti modifikasi dalam konteks (mereka memungkinkan identifikasi dari penempatan perubahan jika nomor baris telah berubah).
Perkakas yang digunakan untuk menerapkan modifikasi dalam berkas dinamakan patch
. Perkakas yang membuatnya disebut diff
, dan berikut ini cara menggunakannya:
$
diff -u file.old file.new >file.patch
Berkas file.patch
berisi instruksi untuk mengganti isi dari file.old
ke file.new
. Kita dapat mengirimkannya pada seseorang, yang dapat menggunakannya untuk membuat ulang file.new
dari dua lainnya dengan cara seperti ini:
$
patch -p0 file.old <file.patch
Berkas file.old
sekarang identik dengan file.new
.
Dalam praktiknya, sebagian besar perangkat lunak saat ini dipelihara dalam repositori Git dan kontributor dengan demikian lebih mungkin menggunakan git
untuk mengambil kode sumber dan mengusulkan perubahan. git diff
akan menghasilkan berkas dalam format yang sama dengan apa yang diff -u
lakukan dan git apply
dapat melakukan hal yang sama seperti patch
.
Sementara keluaran git diff
adalah berkas yang dapat dibagikan dengan pengembang lain, biasanya ada cara yang lebih baik untuk mengirimkan perubahan. Jika pengembang lebih suka mendapatkan patch melalui surel, mereka biasanya menginginkan patch yang dihasilkan dengan git format-patch
sehingga mereka dapat langsung diintegrasikan dalam repositori dengan git am
. Ini mempertahankan meta-informasi commit dan memungkinkan untuk berbagi beberapa commit sekaligus.
This email-based workflow is still popular, but it tends to be replaced by the usage of merge requests (or pull requests) whenever the software is hosted in a platform like GitHub or GitLab — and Debian is using GitLab on its salsa.debian.org
server. On those systems, once you have created an account, you fork the repository, effectively creating a copy of the repository in your own account, and you can then clone that repository and push your own changes in it. From there, the web interface will suggest you to submit a merge request, notifying the developers of your changes, making it easy for them to review and accept your changes with a single click.
1.3.2.4. Cara lain untuk berkontribusi
Tidak hanya pengguna membantu mereka (dan lainnya) dalam isu teknis yang berakibat langsung pada mereka, mereka juga mendiskusikan cara terbaik berkontribusi pada proyek Debian, dan membantu meneruskannya — diskusi yang seringkali menghasilkan saran untuk perbaikan.
Karena Debian tidak mengeluarkan dana untuk kampanye promosi, pengguna memiliki peran penting dalam hal difusi, memastikan kehebatan Debian melalui mulut-ke-mulut.
Metode ini berfungsi dengan baik, karena penggemar Debian ada pada setiap tingkatan komunitas pengembang perangkat lunak bebas: dari pesta instalasi (workshop di mana para pengguna yang lebih berpengalaman membantu para pendatang baru untuk menginstall sistem) yang diorganisir oleh
LUG atau "Linux User Groups" lokal, hingga stand asosiasi pada konvensi teknologi besar yang berurusan dengan Linux, dsb.
Relawan membuat poster, brosur, dan materi promosi lain yang bermanfaat untuk proyek. Ini semua tersedia untuk publik dan Debian menyediakannya secara bebas dalam situs web dan wiki:
1.3.3. Tim, Blend, dan Sub-Proyek
Sejak awal, Debian telah diorganisasikan dengan konsep sumber paket, masing-masing dengan pengelolanya atau kelompok pengelola. Banyak tim kerja yang lambat laun bermunculan, memastikan administrasi dari infrastruktur, pengelolaan pekerjaan yang tidak spesifik pada paket tertentu (penjaminan kualitas, Debian Policy, installer, dll.), dengan tim terbaru tumbuh di sekitar sub-proyek dan blend.
1.3.3.1. Sub-Proyek dan Blend Debian yang Ada
Menuju Debian milik mereka masing-masing! Sebuah sub-proyek adalah kelompok relawan yang tertarik mengadaptasi Debian untuk kebutuhan tertentu. Selain memilih suatu sub grup program yang diperuntukkan untuk domain tertentu (pendidikan, kesehatan, pembuatan multimedia, dll.), sub proyek juga terlibat dalam meningkatkan paket-paket yang ada saat ini, pemaketan perangkat lunak yang kurang, adaptasi installer, membuat dokumentasi spesifik, dan masih banyak lagi. Meskipun "blend" mungkin tidak persis sama, cara kerjanya cukup mirip dan juga mencoba memberikan solusi bagi kelompok orang yang ingin menggunakan Debian untuk domain tertentu. Bisa dikatakan bahwa "Debian Pure Blends" adalah penerus dari sub-proyek.
Berikut ini adalah pilihan kecil dari Debian Pure Blend yang saat ini dirilis:
Debian Junior, offering an appealing and easy to use Debian system for children;
Debian Edu, focused on the creation of a specialized distribution for the academic and educational world;
Debian Med, dedicated to the medical field;
Debian Multimedia, yang menangani pekerjaan multimedia dan audio;
Debian GIS, yang mengurus aplikasi-aplikasi dan para pengguna Sistem Informasi Geografis;
Debian Astro, untuk para astronom profesional dan hobi;
Debian Science, berupaya memberikan pengalaman yang lebih baik kepada para peneliti dan ilmuwan yang menggunakan Debian;
Freedombox, dibuat untuk mengembangkan, merancang, dan mempromosikan server pribadi yang menjalankan perangkat lunak bebas untuk komunikasi personal dan privat;
Debian Games, menyediakan permainan di Debian mulai dari arcade dan petualangan hingga simulasi dan strategi;
DebiChem, yang ditargetkan pada Kimia, menyediakan keluarga dan program kimia.
Banyaknya proyek ini akan terus berkembang seiring berjalannya waktu dan persepsi yang membaik atas keuntungan dari sub-proyek Debian. Dengan dukungan penuh dari infrastruktur Debian, mereka dapat fokus pada pekerjaan dengan penambahan nilai nyata tanpa harus khawatir tentang sinkronisasi dengan Debian, karena mereka dikembangkan di dalam proyek.
1.3.3.2. Tim Administratif
Mayoritas tim administratif relatif dekat dan perekrutan hanya dilakukan dengan cara kooptasi. Cara terbaik untuk bergabung adalah dengan membantu secara cerdas anggota saat ini, menunjukkan bahwa Anda telah mengerti objektif dan metoda operasi.
ftpmasters bertanggung jawab atas arsip ofisial paket Debian. Mereka mengelola program yang menerima paket dikirim oleh pengembang dan secara otomatis menyimpannya, setelah beberapa pemeriksaan pada server acuan (ftp-master.debian.org
).
Mereka juga harus memverifikasi lisensi dari semua paket baru untuk memastikan bahwa Debian dapat mendistribusikan mereka, sebelum memasukkan mereka dalam korpus paket saat ini. Saat seorang pengembang ingin menghapus sebuah paket, mereka mengungkapkan masalah ini pada tim melalui sistem pelacakan kutu dan "pseudo-package" di ftp.debian.org.
Tim
Administrator Sistem Debian (
DSA) (
debian-admin@lists.debian.org
), seperti yang diharapkan, bertanggung jawab untuk administrasi sistem dari banyak server digunakan oleh proyek. Mereka memastikan fungsi optimal dari semua layanan dasar (DNS, Web, e-mail, shell, dll), memasang perangkat lunak yang diminta oleh para pengembang Debian, dan mengambil semua tindakan pencegahan dalam hal keamanan.
listmasters mengelola server milis. Mereka membuat milis baru, mengelola bounces (email yang gagal terkirim), dan mengelola filter spam (email yang tak diinginkan dalam jumlah banyak).
Setiap layanan spesifik memiliki tim administrasi sistem masing-masing, biasanya terdiri dari relawan yang memasangnya (dan juga sering kali memrogram sendiri perkakas terkait). Ini yang terjadi pada bug tracking system (BTS), pelacak paket,
salsa.debian.org
(server GitLab, lihat kotak sisi
ALAT GitLab, hosting repositori Git dan lebih banyak lagi), layanan yang tersedia di
qa.debian.org
,
lintian.debian.org
,
buildd.debian.org
,
cdimage.debian.org
, dll.
1.3.3.3. Tim Pengembang, Tim Transversal
Tidak seperti tim administratif, tim pengembang relatif lebih terbuka, bahkan pada kontributor luar. Bahkan jika Debian tidak memiliki lokasi untuk membuat perangkat lunak, proyek Debian membutuhkan program spesifik untuk memenuhi tujuannya. Tentu, dikembangkan di bawah lisensi perangkat lunak bebas, perkakas ini menggunakan metode yang sudah terbukti di dalam dunia perangkat lunak bebas.
Debian telah mengembangkan perangkat lunak serderhana dengan versinya sendiri, namun beberapa program telah mendapat peran penting, dan kemasyhurannya telah melampaui batasan proyek. Contoh yang baik adalah dpkg
, program pengelola paket Debian (pada praktiknya, dpkg merupakan kependekan dari Debian PacKaGe, dan biasanya diucapkan sebagai "dee-package"), dan apt
, perkakas untuk memasang secara otomatis paket Debian berikut dengan kebergantungannya, yang menjamin konsistensi sistem setelah pemutakhiran (apt merupakan kependekan dari Advanced Package Tool). Namun timnya jauh lebih kecil, karena kemampuan pemrograman tingkat tinggi yang dibutuhkan untuk memahami secara keseluruhan operasi-operasi dari program jenis ini.
Tim yang paling penting mungkin adalah tim program instalasi Debian,
debian-installer
, yang telah menyelesaikan begitu banyak pekerjaan monumental dari awal konsepnya di tahun 2001. Begitu banyak kontributor dibutuhkan, karena sulitnya menulis satu program untuk memasang Debian pada lusinan arsitektur yang berbeda. Setiap arsitektur memiliki mekanisme boot dan bootloadernya sendiri-sendiri. Semua pekerjaan ini dikoordinasikan dalam milis
debian-boot@lists.debian.org
, di bawah arahan Cyril Brulebois.
Tim program debian-cd
(yang sangat kecil) memiliki obyektif yang lebih sederhana. Banyak kontributor "kecil" bertanggung jawab pada aristekturnya masing-masing, karena pengembang utama tidak bisa mengetahui semua hingga detailnya, atau cara persisnya bagaimana memulai pemasang dari CD-ROM.
Banyak tim harus berkolaborasi dengan yang lainnya dalam melakukan pemaketan:
debian-qa@lists.debian.org
mencoba, sebagai contoh, memastikan kualitas pada semua tingkatan dari proyek Debian.
debian-policy@lists.debian.org
milis mengembangkan Debian Policy berdasarkan proposal dari berbagai tempat. Tim ini bertanggung jawab untuk setiap arsitektur (
debian-architecture@lists.debian.org
) meng-compile semua paket, mengadaptasi mereka pada arsitektur tertentu, jika dibutuhkan.