Pardus:Depo İşleyişi
PardusWiki, özgür ansiklopedi
Konu başlıkları |
[değiştir] Giriş
Bu belge, Pardus kaynak ve ikili depolarının işleyişini açıklamayı amaçlamaktadır. Depo işleyişi tüm yeni paketlerin depoya eklenmesi, var olan paketlerin güncellemelerinin yapılması - test edilmesi - kullanıcılara ulaşması, güvenlik güncellemelerinin depoya alınması ve duyurulması gibi süreçleri içerir.
Depo üzerinde yapılacak tüm geliştirme işlemleri için Pardus Depo Politikası belgesi temel alınır.
[değiştir] Paketler ve Paket Geliştiricileri
Paketler, Pardus dağıtımını oluşturan yazılımların sorunlarından arındırılmış, dağıtım entegrasyonu ve yerelleştirmesi yapılmış, PiSi tarafından kurulabilir hale getirilmiş halleridir. Her paketin bir geliştiricisi vardır : bu geliştirici paketi hazırlayan ilk geliştirici olabileceği gibi paketi daha sonradan devralarak güncellemeleri ve sorunları ile ilgilenen başka bir geliştirici de olabilir.
Paket geliştiricisi olmak, ilk anda yazılımın PiSi kaynak paketini hazırlamak ve bir ikili paket deposuna sokmaktan ibaret gibi görünse de aslında devamlı birbirini takip eden bir güncelleme - sorun çözme - takip etme sürecini işletmek olarak tanımlanabilir.
Bir paket geliştiricisi genel olarak :
- yazılımın gelişimini takip etmek,
- paketin hatalarını çözmek ve bu çözümleri yazılımın orijinal geliştiricisi ile paylaşmak,
- yazılımın dağıtım içindeki entegrasyon ve yerelleştirmesinin sorunsuz olmasını sağlamak,
- Pardus depolarında paketin inşasını ve çalışmasını etkileyecek değişlikleri takip etmek ve paket üzerinde gereken değişiklikleri yapmak
işleri ile uğraşır.
Pardus paket yöneticisi PiSi, hem kaynak hem de ikili depolarla çalışabildiğinden, paketin kaynak depolara ilk girişinden ikili paket olarak son kullanıcıya ulaşmasına kadar tüm aşamalarda PiSi kullanılır. Dağıtımın paketlerini inşa edip ikili depolara dağıtan derleme çiftliği de özelleşmiş / otomatikleştirilmiş bir PiSi arayüzüdür.
[değiştir] Ön hazırlık
Paket geliştiricileri, yeni bir paket hazırlamak veya var olan bir pakette denemeler yapmak için Pardus kaynak deposundaki playground alanını kullanırlar. Her geliştirici playground altında kendi klasörünü oluşturur ve bu klasör altında çalışır.
Playground alanı, tam anlamıyla bir depo değildir - aynı yazılımın birden fazla sürümü, eksik ve/ya derlenmeyen paketler gibi depo politikasının izin vermediği paketler de playground alanında bulunabilir, bir yazılımın paketi aynı anda farklı geliştiricilerin playground alanlarında bulunabilir.
Bir zorunluluk olmamakla birlikte geliştiricilerin kendi klasörlerinde Pardus kaynak depo bileşen hiyerarşisini kullanmaları tercih edilir. Depo hiyerarşisi ve bileşen bilgileri hem paketin geliştiricisi hem de paketleri incelemek ve inşa etmek isteyen diğer geliştiriciler açısından kolaylık sağlar.
Pardus kaynak depolarına yazma hakkı bulunmayan katkıcılar ise Pardus hata takip sistemine yeni paket isteği ekleyip hazırladıkları paket kaynak dosyalarını bu hataya ekleyerek paket geliştirme sürecine dahil olabilirler. Fakat yukarıda bahsedildiği gibi paketin devamlı olarak bakıma ihtiyacı olacağından bu geliştiricilerin en kısa zamanda geliştirici başvurusu yaparak kaynak depo yazma hakkı alması, paketlerin bakımını yapması tercih edilen yöntemdir.
[değiştir] Gözden geçirme (Review) süreci
Geliştiricisi tarafından yeterli olgunluğa geldiği düşünülen paketlerin pardus-devel veya contrib-devel kaynak depolarına alınabilmesi için diğer geliştiricilerin gözden geçirmesi gerekmektedir. Bir paket gözden geçirmeye hazır hale geldiğinde geliştiricisi paketi playground alanında kendi klasöründen review klasörü altına taşır. Bu sırada deponun bileşen hiyerarşisine uyulması önemlidir. Paket review alanına taşındıktan sonra geliştirici paketler listesine atacağı [review] başlıklı bir e-posta ile paketin gözden geçirilmesini ister. Bu e-posta temel olarak şu bilgileri içermelidir :
- paketin adı ve review klasöründeki tam yolu,
- paketin kullanım amacı,
- paketle ilgili diğer geliştiricilerin ilgilenebilecekleri teknik detaylar,
- varsa bağımlılıkları ve hata takip sistemindeki ilgili hataları
- Paketin girmesi düşünülen depo (pardus-devel / contrib-devel)
Gözden geçirme sürecindeki paketler diğer geliştiriciler tarafından paket sorunları, depo politikasına uygunluğu, yazılımın beklendiği gibi çalışması, bağımlılıkları gibi yönlerden gözden geçirilir, bulunan hata ve eksikler yine paketler e-posta listesinde tartışılır. Bu tartışmalar sonunda gerekli düzeltmeler yapılır, paketin son hali için iki ayrı geliştiriciden onay alan paket Pardus kaynak paket depolarına alınmaya hazır hale gelir.
[değiştir] Yeni paketlerin kaynak ve ikili depolara alınması
Sorunsuz inşa edilebilir / çalışır hale gelerek gözden geçirme sürecini tamamlayan paketler geliştiricisi tarafından ilgili kaynak depoya taşınır. Bu aşamada paket kaynak depoya eklenmiş ve kaynak depo indeksine girmiş olacağından paket bakım süreci de başlamış olur: Pardus hata takip sisteminde hata raporları kabul edilir, geliştiricisi tarafından hataları çözülür, eksikleri tamamlanır. Depo sorumlusu ve güvelik takımı tarafından güvenlik bakımları yapılır.
pardus-devel ve contrib-devel depolarındaki kaynak paketler derleme çiftliği tarafından inşa edilerek ikili paket oluşturulmamaktadır, sadece kararlı kaynak depolarındaki paketler inşa edilerek ikili paket oluşturulmaktadır.* Paketin kararlı kaynak depolara alınıp, derlenerek ikili paketlerinin oluşturulması için ise paketin bulunduğu kaynak depoya göre iki faklı yöntem izlenir :
[değiştir] pardus-devel kaynak deposundaki paketler
Bu depo Pardus dağıtımın bir sonraki kararlı sürümüne ilerleyen ana geliştirme deposudur. Her kararlı Pardus sürümü çıktığında pardus-devel deposu dallandırılır ve bu kararlı kaynak depo dalı kararlı sürüm bakım takımı dışıdaki geliştiricilerin gönderimlerine kapatılır. Bu nedenle pardus-devel kaynak deposuna yeni giren paketler için paket geliştiricisi tarafından stable e-posta listesine bir e-posta atılarak paketin kararlı depoya alınması [merge] istenir. Bu e-posta aşağıdaki bilgileri içermelidir :
- paketin adı, kaynak depo içindeki tam yolu,
- paketin kullanım amacı,
- paketle ilgili diğer geliştiricilerin ilgilenebilecekleri teknik detaylar,
- varsa bağımlılıkları ve hata takip sistemindeki ilgili hataları
- Paketin girmesi düşünülen kararlı depo (pardus-2008 / pardus-2007 ...)
- paket farklı kararlı depolara farklı şekillerde eklenecekse, ilgili depolara uygun değişiklikler.
Bu e-posta sonrasında paket kararlı sürüm bakım takımları tarafından kararlı depo politikası ve ilgili depolara uygunlukları açısından gözden geçirilirler ve gerekli değişikliklerle kararlı kaynak depolara alınır.
[değiştir] contrib-devel kaynak deposundaki paketler
Bu depo pardus dağıtımının bir sonraki kararlı sürümüne ilerleyen katkı geliştirme deposudur. Aynen pardus-devel deposunda olduğu gibi bu depo da kararlı Pardus sürümlerini temel alan kararlı dallara sahiptir. contrib deposunda her geliştirici kendi sorumluğundaki paketleri kararlı kaynak depolara kendisi almaktadır. Yeni paketler de review alanında contrib-devel deposuyla birlikte kararlı dallara da kopyalanarak kararlı depoya alınmış olur.
[değiştir] Var olan paketlerin güncellemeleri
pardus-devel ve contrib-devel depoları ana geliştirme depoları olduğundan tüm geliştirme ve güncelleme bu depolarda yapılmalıdır. Paket üzerinde büyük bir değişiklik veya faklı denemeler yapılacaksa playground alanı da kullanılabilir - bu durumda paketin son hali tek bir gönderim ile güncellenir. Depo politikası uyarınca devel depolarında da inşa edilemeyen, çalıştırılamayan, eksik paket bulunmamalıdır.
pardus-devel ve contrib-devel depolarında yapılan paket güncellemelerinin kararlı depolara alınması için de yeni paketler için izlenen yöntemin bir benzeri izlenmektedir :
[değiştir] pardus-devel kaynak deposundaki paketler
Paket geliştiricisi tarafından stable e-posta listesine bir e-posta atılarak paket güncellemelerinin kararlı depoya alınması [merge] istenir. Bu e-posta aşağıdaki bilgileri içermelidir :
- paketin adı, kaynak depo içindeki tam yolu,
- güncellemenin nedeni, paketteki değişikliklerin ve varsa çözülen hatanın özeti,
- güncelleme ilgili diğer geliştiricilerin ilgilenebilecekleri teknik detaylar,
- varsa hata takip sistemindeki ilgili hataları, güvenlik güncellemesi referansları
- Paketin alınacağı kararlı depo (pardus-2008 / pardus-2007 ...)
- paket farklı kararlı depolara farklı şekillerde alınacaksa, ilgili depolara uygun değişiklikler (ilgili depoya uygun yama dosyası şeklinde).
Bu e-posta sonrasında güncellemeler kararlı sürüm bakım takımları tarafından kararlı depo politikası ve ilgili depolara uygunlukları açısından gözden geçirilirler ve gerekli değişikliklerle kararlı kaynak depolara alınır.
[değiştir] contrib-devel kaynak deposundaki paketler
contrib deposunda her geliştirici kendi sorumluğundaki paketlerin güncellemelerini kararlı kaynak depolara kendisi almaktadır. Bu güncellemelerin ilgili kararlı depoya teknik gereklilikler ve depo politikasına uygun şekilde alınmaları paket geliştiricisinin sorumluluğundadır.
[değiştir] İkili paket oluşturma ve ikili paket depoları
Kararlı sürüm bakım takımları tarafından kararlı kaynak depolara alınan yeni paketler ve güncellemeler derleme çiftlikleri tarafından inşa edilerek ikili paketler oluşturulur. Derleme çiftliğinin başladığı / tamamladığı işler ve çıkabilecek sorunlar paketler-commits e-posta listesinde duyurulur - sorunlu paketler ayrıca geliştiricisine de e-posta ile bildirilir.
Derleme çiftliği tarafından oluşturulan bu ikili paketler yine iki ayrı süreç ile kullanıcı ve geliştiricilere ulaştırılır :
[değiştir] contrib-* kararlı depolarındaki paketler
bu paketler derleme çiftliği tarafından inşa edildiklerinde doğrudan ilgili contrib-* (contrib-2008, contrib-2007) ikili deposuna girerler.
[değiştir] pardus-* kararlı depolarındaki paketler
bu paketler derleme çiftliği tarafından inşa edildiklerinde öncelikle ilgili kararlı deponun test ikili deposuna alınırlar (pardus-2008-test, pardus-2007-test)
[değiştir] İkili test depoları ve test süreci
Pardus test depoları geliştiricilerin ve test ekibinin paket güncellemelerini test etmesi için oluşturulmuş ikili depolardır. Herhangi bir kararlı sürümün test deposunda o sürümün o an için en güncel paketleri bulunur ve geliştiriciler ile test ekibi tarafından devamlı test edilir. Depo sorumlusu veya test ekibi sorumlusu belirli aralıklarla bu güncellemelerin listesini yayınlar ve geliştiricilerin bu güncellemelerin doğru çalıştığını / sorunsuz olduğunu onaylamalarını ister [ACK/NACK süreci]. Bu süreçte önemli nokta tüm geliştirici ve test ekibinin fark ettiği sorunları bildirerek ilgili paketlerin onay almasını engelleyebilmesidir. Paket geliştiricisinin fark edemediği sorunlara sahip paketlerin kararlı depoya girmesinin engellenmesi için bu süreç kritiktir. Bu aşamada onay alan paketler son bir depo kararlığı testinden sonra kararlı depoya alınır.
Güvenlik güncellemeleri - özel olarak test edilmesi gereken ve/ya görece önemsiz güvenlik güncellemeleri dışında - bu sürecin dışında tutulur, inşa edilir edilmez kararlı depoya alınır. Yine kritik hata çözen bazı güncellemelerin test süreci beklenemeden depoya alınması gerekebilir - böyle durumlarda paket geliştiricisi güncellemenin depoya alınması sırasında güncellemenin bu özelliğini belirten bir notu da merge isteğine ekler.
[değiştir] İkili kararlı depolar
Tüm bu sürecin sonunda kararlı depoya alınan yeni paketler ve güncellemeler kullanıcılar tarafından kurulabilir hale gelir. Kararlı depoya giren güvenlik güncellemeleri için güvenlik ekibi tarafından güvenlik bildirileri [PLSA **] hazırlanır ve yayınlanır.
* : Yakında pardus-devel deposunda da bir derleme çiftliği çalıştırması planlanmaktadır.
** : PLSA – Pardus Linux Security Advisory. Güvenlik bildirileri http://security.pardus.org.tr/ adresinden standart WEB araçları ile, http://security.pardus.org.tr/en/rss/ adresinden RSS ile, pardus-security@pardus.org.tr e-posta listesinden e-posta ile izlenebilir.
Pardus Depo İşleyişi --- Ekin Meroğlu 15:10, 19 Temmuz 2008 (EEST)

