Debian projesinin ürettiği çok sayıda sonuç eş zamanlı olarak deneyimli Debian geliştiricileri tarafından altyapı üzerinde gerçekleştirilen çalışmalardan, geliştiricilerin Debian paketleri üzerindeki bireysel veya toplu çalışmalarından ve kullanıcı geri bildirimlerinden elde edilir.
1.3.1. Debian Geliştiricileri
Debian developers have various responsibilities, and as official project members, they have great influence on the direction the project takes. A Debian developer is 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.
Paket sağlamak, oldukça düzenli bir faaliyettir, çok belgelendirilir ve hatta düzenlenir. Gerçekte,
Debian Politikası tarafından belirlenen tüm standartlara uymalıdır. Neyse ki, sağlayıcının işini kolaylaştıran birçok araç var. Böylece geliştirici, paketlerinin özelliklerine ve hataları gidermek gibi daha karmaşık görevlere odaklanabilir.
The Policy, an essential element of the Debian Project, establishes the norms ensuring both the quality of the packages and perfect interoperability of the distribution. Thanks to this Policy, Debian remains consistent despite its gigantic size. This Policy is not fixed in stone, but continuously evolves thanks to proposals formulated on the
debian-policy@lists.debian.org
mailing list. Amendments that are agreed upon by all interested parties are accepted and applied to the text by a small group of maintainers who have no editorial responsibility (they only include the modifications agreed upon by the Debian developers that are members of the above-mentioned list). You can read current amendment proposals on the bug tracking system:
The Policy provides considerable coverage of the technical aspects of packaging. The size of the project also raises organizational problems; these are dealt with by the Debian Constitution, which establishes a structure and means for decision making. In other words, a formal governance system.
This constitution defines a certain number of roles and positions, plus responsibilities and authorities for each. It is particularly worth noting that Debian developers always have ultimate decision making authority by a vote of general resolution, wherein a qualified majority of three quarters (75%) of votes is required for significant alterations to be made (such as those with an impact on the Foundation Documents). However, developers annually elect a “leader” to represent them in meetings, and ensure internal coordination between varying teams. This election is always a period of intense discussions. The Debian Project leader's (
DPL) role is not formally defined by any document: candidates for this post usually propose their own definition of the position. In practice, the leader's roles include serving as a representative to the media, coordinating between “internal” teams, and providing overall guidance to the project, within which the developers can relate: the views of the DPL are implicitly approved by the majority of project members.
Özellikle, liderin gerçek yetkisi vardır; onların oyları beraberlik oylarını çözer; halihazırda başka birinin yetkisi altında olmayan herhangi bir kararı verebilir ve sorumluluklarının bir kısmını devredebilirler.
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, and Jonathan Carter.
Anayasa aynı zamanda bir “teknik komite” tanımlar. Bu komitenin temel rolü, ilgili geliştiriciler kendi aralarında bir anlaşmaya varmadığında teknik konularda karar vermektir. Aksi takdirde, bu komite, sorumlu oldukları bir kararı vermeyen herhangi bir geliştirici için bir danışmanlık rolü oynar. Sadece söz konusu taraflardan biri tarafından davet edildiğinde katıldıklarını belirtmek önemlidir.
Son olarak anayasa, çeşitli seçimler ve genel kararlarla ilgili oyların düzenlenmesinden sorumlu olan “proje sekreteri” nin konumunu tanımlamaktadır.
The “general resolution” (
GR) procedure is fully detailed in the constitution, from the initial discussion period to the final counting of votes. The most interesting aspect of that process is that when it comes to an actual vote, developers have to rank the different ballot options between them and the winner is selected with a
Condorcet method (more specifically, the Schulze method). For further details see:
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 put into it.
This is the only way to earn one's stripes: do something useful and show that one has worked well. Many Debian “administrative” teams operate by co-optation, preferring volunteers who have already effectively contributed and proved their competence. The public nature of the work of those teams makes it possible for new contributors to observe and start helping without any special privilege. This is why Debian is often described as a “meritocracy”.
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. Kullanıcıların Etkin Rolü
Debian projesinde çalışanlar arasında kullanıcılardan bahsetmenin uygun olup olmadığı merak edilebilir, ancak cevap kesinlikle evet: projede kritik bir rol oynuyorlar. "Pasif" olmaktan çok uzak, bazı kullanıcılar Debian'ın geliştirme sürümlerini çalıştırır ve sorunları belirtmek için düzenli olarak hata raporları hazırlar. Diğerleri daha da ileri giderek, önem düzeyi "istek listesi" olan bir hata raporu doldurarak veya hatta "yamalar" adı verilen kaynak koduna düzeltmeler göndererek iyileştirmeler için fikirlerini sunarlar (bkz.
Kısım 1.3.2.3, “Düzeltmeler gönderme”).
1.3.2.1. Hataları bildirme
Debian'da hata göndermek için temel araç, projenin büyük bölümlerinde kullanılan Debian Hata İzleme Sistemidir (Debian BTS). Genel bölüm (web arayüzü), kullanıcıların bildirilen tüm hataları görüntülemelerine olanak tanır ve çeşitli kriterlere göre seçilen hataların sıralı bir listesini görüntüleme seçeneği ile birlikte: etkilenen paket, önem derecesi, durum, bildiricinin adresi, sorumlu sağlayıcı adresi, etiket vb. Hataların her biri ile ilgili tüm tartışmaların tam geçmiş listesine göz atmak da mümkündür.
Debian BTS e-posta tabanlıdır: sakladığı tüm bilgiler,ilgili kişiler tarafından gönderilen mesajlardan gelir.
12345@bugs.debian.org
adresine gönderilen herhangi bir e-posta, 12345 numaralı hata için geçmişe atanır. . Yetkili kişiler,
12345-done@bugs.debian.org
(belirtilen sorun çözüldüğünde veya artık ilgili olmadığında bir hata kapatıldı) kapatma kararının nedenlerini açıklayan bir ileti yazarak bir hatayı "kapatabilir". Söz konusu paketi tanımlayan belirli bir biçime göre
submit@bugs.debian.org
adresine bir e-posta gönderilerek yeni bir hata bildirilir.
control@bugs.debian.org
adresi, bir hatayla ilgili tüm "meta bilgilerin" düzenlenmesine izin verir.
Debian BTS, hataları etiketlemek için etiketlerin kullanılması gibi başka işlevsel özelliklere de sahiptir. Daha fazla bilgi için bkz.
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). 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).
Bu araç ilk olarak hataların düzeltileceği geliştirme sürümlerini hedefler. Etkili bir şekilde, güvenlik güncelleştirmeleri veya diğer önemli güncellemeler için çok az istisna dışında (örneğin, bir paket hiç çalışmıyorsa) debian'ın kararlı bir sürümünde değişiklikler hoş karşılanmaz. Bir Debian paketindeki küçük bir hatanın düzeltilmesi, bu nedenle bir sonraki kararlı sürümü beklemelidir.
1.3.2.2. Çeviri ve dokümantasyon
Ayrıca, Debian tarafından sunulan hizmetin çok sayıda memnun kullanıcısı projeye kendi katkılarını yapmayı sever. Herkes programlama konusunda uygun uzmanlık seviyelerine sahip olmadığı için, belgelerin çevirisi ve gözden geçirilmesine yardımcı olmayı seçebilirler. Bu çalışmayı koordine etmek için dile özgü posta listeleri vardır.
1.3.2.3. Düzeltmeler gönderme
Daha ileri düzey kullanıcılar bir düzeltme eki göndererek bir programa düzeltme sağlayabilir.
Yama bir veya daha fazla başvuru dosyasında yapılacak değişiklikleri açıklayan bir dosyadır. Özellikle, kaldırılacak veya koda eklenecek satırların bir listesini ve (bazen) referans metninden alınan satırları içerir, bağlamdaki değişiklikleri değiştirir (satır numaraları değiştiyse değişikliklerin yerleşiminin tanımlanmasına izin verirler).
Böyle bir dosyada verilen değişiklikleri uygulamak için kullanılan araca basitçe yama
denir. Onu oluşturan araca diff
denir ve şu şekilde kullanılır:
$
diff -u dosya.eski dosya.yeni >dosya.yama
dosya.yama
dosyası, dosya.eski
içeriğini dosya.yeni
olarak değiştirme talimatlarını içerir. Bunu daha sonra diğer ikisinden oluşan dosya.yeni
dosyasını yeniden oluşturmak için kullanabilecek birine gönderebiliriz, örneğin:
$
yama -p0 dosya.eski <dosya.yama
dosya.eski
dosyası artık dosya.yeni
ile aynıdır.
In practice, most software is currently maintained in Git repositories and contributors are thus more likely to use git
to retrieve the source code and propose changes. git diff
will generate a file in the same format as what diff -u
would do and git apply
can do the same as patch
.
While the output of git diff
is a file that can be shared with other developers, there are usually better ways to submit changes. If the developers prefer to get patches by email, they usually want patches generated with git format-patch
so that they can be directly integrated in the repository with git am
. This preserves commits meta-information and makes it possible to share multiple commits at once.
Bu e-posta tabanlı iş akışı hala popüler, ancak yazılım GitHub veya GitLab gibi bir platformda her barındırıldığında birleştirme istekleri(merge requests) (veya çekme istekleri (pull requests)) kullanımıyla değiştirilme eğilimindedir - ve Debian, salsa.debian.org
sunucusunda GitLab kullanıyor. Bu sistemlerde, bir hesap oluşturduğunuzda, depoyu çatallayarak(fork) , kendi hesabınızda etkin bir şekilde havuzun bir kopyasını oluşturursunuz ve ardından bu depoyu klonlayabilir ve kendi değişikliklerinizi ona aktarabilirsiniz. Buradan, web arayüzü bir birleştirme isteği göndermenizi önerecek, geliştiricilere değişikliklerinizi bildirerek, değişikliklerinizi tek bir tıklamayla incelemelerini ve kabul etmelerini kolaylaştıracaktır.
1.3.2.4. Katkıda bulunmanın diğer yolları
Tüm bu katkı mekanizmaları kullanıcıların davranışları ile daha verimli hale getirilir. İzole edilmiş kişilerden oluşan bir koleksiyon olmaktan uzak olan kullanıcılar, içinde çok sayıda alışverişin gerçekleştiği gerçek bir topluluktur. Özellikle kullanıcı tartışması posta listesindeki etkileyici etkinliği not ediyoruz,
debian-user@lists.debian.org
(
Bölüm 7, Solving Problems and Finding Relevant Information bunu daha ayrıntılı olarak ele alıyor).
Kullanıcılar sadece kendilerini (ve diğerlerini) doğrudan etkileyen teknik konularda yardımcı olmakla kalmaz, aynı zamanda Debian projesine katkıda bulunmanın ve ilerlemesine yardımcı olmanın en iyi yollarını tartışırlar - genellikle iyileştirme önerileriyle sonuçlanan tartışmalar.
Debian, kendini tanıtan herhangi bir pazarlama kampanyasına para harcamadığı için, kullanıcıları yayılmasında önemli bir rol oynayarak, ününü kulaktan kulağa sağlar.
Bu yöntem oldukça iyi çalışır, çünkü Debian hayranları özgür yazılım topluluğunun tüm seviyelerinde bulunur: yerel
LUG veya "Linux Kullanıcı Grupları" (deneyimli kullanıcıların sistemi kurmaları için yeni gelenlere yardım ettiği atölyeler) ile Linux ile ilgili büyük teknoloji kongrelerindeki dernek standlarına vb. kadar.
Gönüllüler proje için herkese açık hale getirdikleri ve Debian'ın web sitesinde ve vikisinde ücretsiz olarak sağladığı posterler, broşürler, çıkartmalar ve diğer yararlı tanıtım materyallerini hazırlarlar:
1.3.3. Teams, Blends, and Sub-Projects
From the start, Debian has been organized around the concept of source packages, each with its maintainer or group of maintainers. Many work teams have emerged over time, ensuring administration of the infrastructure, management of tasks not specific to any package in particular (quality assurance, Debian Policy, installer, etc.), with the latest series of teams growing up around sub-projects and blends.
1.3.3.1. Existing Debian Sub-Projects and Blends
To each their own Debian! A sub-project is a group of volunteers interested in adapting Debian to specific needs. Beyond the selection of a sub-group of programs intended for a particular domain (education, medicine, multimedia creation, etc.), sub-projects are also involved in improving existing packages, packaging missing software, adapting the installer, creating specific documentation, and more. While a "blend" might not be exactly the same, it works quite similar and also tries to provide a solution for groups of people intending to use Debian for a particular domain. One could say that "Debian Pure Blends" is the successor of sub-projects.
Here is a small selection of current released Debian Pure Blends:
Debian Junior, by Ben Armstrong, offering an appealing and easy to use Debian system for children;
Debian Edu, by Petter Reinholdtsen, focused on the creation of a specialized distribution for the academic and educational world;
Andreas Tille tarafından üretilen Debian Med, tıp alanına adanmıştır;
Debian Multimedia, which deals with audio and multimedia work;
Debian GIS, which takes care of Geographical Information Systems applications and users;
Debian Astro, for both professionals and hobby astronomers;
Debian Science, working on providing researchers and scientists a better experience using Debian;
Freedombox, made to develop, design and promote personal servers running free software for private, personal communications;
Debian Games, providing games in Debian from arcade and adventure to simulation and strategy;
Kimya'yı hedef alan DebiChem, kimyasal süitler ve programlar sağlar.
The number of projects will most likely continue to grow with time and improved perception of the advantages of Debian Pure Blends. Fully supported by the existing Debian infrastructure, they can, in effect, focus on work with real added value, without worrying about remaining synchronized with Debian, since they are developed within the project.
Çoğu idari ekip nispeten kapalıdır ve yalnızca ortaklaşa üye olur. Birinin parçası olmanın en iyi yolu, mevcut üyelere akıllıca yardımcı olmak ve onların hedeflerini ve çalışma yöntemlerini anladığınızı göstermektir.
The ftpmasters are in charge of the official archive of Debian packages. They maintain the program that receives packages sent by developers and automatically stores them, after some checks, on the reference server (ftp-master.debian.org
).
They must also verify the licenses of all new packages, in order to ensure that Debian may distribute them, prior to including them in the corpus of existing packages. When a developer wishes to remove a package, they address this team through the bug tracking system and the ftp.debian.org “pseudo-package”.
Tahmin edilebileceği gibi,
Debian Sistem Yöneticileri (
DSA ) ekibi (
debian-admin@lists.debian.org
), proje tarafından kullanılan birçok sunucudan sistem yöneticisi olarak sorumludur. Tüm temel hizmetlerin (DNS, Web, e-posta, kabuk, vb.) en iyi şekilde çalışmasını sağlarlar, Debian geliştiricileri tarafından talep edilen yazılımları yüklerler ve güvenlikle ilgili tüm önlemleri alırlar.
liste yöneticileri , posta listelerini yöneten e-posta sunucusunu yönetir. Yeni listeler oluştururlar, geri dönüşleri(teslimat hatası bildirimleri) ele alırlar ve istenmeyen posta filtreleri (istenmeyen toplu e-posta) sağlarlar.
Each specific service has its own administration team, generally composed of volunteers who have installed it (and also frequently programmed the corresponding tools themselves). This is the case for the bug tracking system (BTS), the package tracker,
salsa.debian.org
(GitLab server, see sidebar
ARAÇ GitLab, Git depo barındırma ve çok daha fazlası), the services available on
qa.debian.org
,
lintian.debian.org
,
buildd.debian.org
,
cdimage.debian.org
, etc.
1.3.3.3. Geliştirme Takımları, Çapraz Takımlar
Yönetim ekiplerinden farklı olarak, geliştirme ekipleri dışarıdan katkıda bulunanlara bile oldukça açıktır. Debian'ın yazılım oluşturma görevi olmasa bile, projenin hedeflerine ulaşmak için bazı özel programlara ihtiyacı vardır. Elbette, özgür bir yazılım lisansı altında geliştirilen bu araçlar, özgür yazılım dünyasında başka yerlerde kanıtlanmış yöntemleri kullanır.
Debian kendi başına küçük bir yazılım geliştirdi, ancak bazı programlar başrol oynadı ve şöhretleri proje kapsamının ötesine yayıldı. Buna İyi örnekler, dpkg
, Debian paket yönetim programı (aslında, Debian PacKaGe'nin kısaltmasıdır ve genellikle "dee-package" olarak okunur) ve apt
, a herhangi bir Debian paketini ve bağımlılıklarını otomatik olarak yüklemek için araç, yükseltmeden sonra sistemin tutarlılığını garanti eder (adı Advanced Package Tool'un kısaltmasıdır). Bununla birlikte, ekipleri çok daha küçüktür, çünkü bu tür programların işlemlerini genel olarak anlamak için oldukça yüksek düzeyde programlama becerisi gerekir.
Muhtemelen en önemli ekip, 2001 yılındaki tasarımından bu yana önemli oranlarda bir çalışma gerçekleştiren Debian kurulum programı
debian-yükleyicisi
dır. Debian'ı bir düzine farklı mimariye yükleyebilen tek bir program yazmak zor olduğundan, çok sayıda katkıda bulunana ihtiyaç vardı. Her birinin kendi ön yükleme mekanizması ve kendi ön yükleyicisi vardır. Tüm bu çalışmalar Cyril Brulebois'in yönetimindeki
debian-boot@lists.debian.org
posta listesinde koordine edilmektedir.
(Çok küçük) debian-cd
program ekibinin daha da mütevazı bir hedefi vardır. Birçok "küçük" katılımcı kendi mimarilerinden sorumludur, çünkü ana geliştirici tüm incelikleri veya yükleyiciyi CD-ROM'dan başlatmanın tam yolunu bilemez.