[Gelistirici] kararli depoya paket gecis sureci
Ekin Meroğlu
ekin at pardus.org.tr
4 Ara 2008 Per 23:13:33 EET
Merhaba;
Tuesday 02 December 2008 tarihinde, Doruk Fisek şunları yazmıştı:
> Merhaba,
> Seni kiracagima kafami arsiv fareligi yaparim :). Icinde sadece "test"
> kelimesi gecenleri taradim yazdiklarimdan, baska aradan kacanlar olmus
> olabilir.
Eline sağlık ama kırma bi tarafını, gerek yok :-)
> 22 Ekim'de yazdigim e-postada [1] iki farkli oneri yer aliyor.
Serbülent yazmış - buna uzunca bir cevap vermiştim üzerinde konuşulur diye,
ama benim uzun postalarım da senin uzun postalarından geri kalmıyor "mark as
read" işaretlenme konusunda. Aşağıda özetleyeceğim, bunu dışındaki önerilere
de fikirlerimi yazacağım - bazılarını yazdım daha önce, bazıları yeni.
> [1] http://liste.pardus.org.tr/gelistirici/2008-October/013904.html
http://liste.pardus.org.tr/gelistirici/2008-October/013908.html
> "Bastan beri soyledigim gibi, test sureci ile kurunun yaninda cok fazla
> yas yakmaya calisiliyor gibime geliyor. Sorun cikarip ortaligin
> karismasina yol acan belli paketler var. Onlari belirleyip, onlarin
> guncellenmesinde testlere ekstra ilgi gosterip, kalanlara sadece temel
> testleri (paket menuye yerlesiyor mu, aciliyor mu) uygulamak daha
> fizibl olur.
Bunun yararı ortada, ama bu listeyi güncel tutmanın pek kolay olmayacağını
düşünüyorum hala. Üzerimde anlaşılmış ve güncel tutmacıbaşıcısı seçilmiş bir
liste oluşursa ne güzel - Gönüllü var mı ?
> Daha da fizibl oldugunu dusundugum soyle bir radikal onerim var :
Bu öneri için ön teknik gereklilikleri özetlemek lazım önce - bunlar karşı
çıktığım ya da önerdiğim noktalar değil, depo - paket - çiftlik konusunda ön
bilgi :
- Birbirinden ikili paket alıp veremeyen her türlü depo eşittir yeni bir
kaynak depo + yeni bir buildfarm. Şu anki test deposundaki paketler
bildiğiniz cp komutu ile stable depoya alınıyorlar, çünkü aynı kaynak depodan
çıkıyorlar. ABI/API yönünden araları açılabilecek iki ayrı ikili paket deposu
oluşturduğumuz anda bu yöntem işlemiyor, örn. 2008-stable adlı yeni bir
kaynak depo ve bu depoyu derleyen bir buildfarm gerekecek. Temel olarak bu
aynı toolchain'i paylaşan iki dağıtım demek.
- Bu birbirinden ayrı depoların da ayrı birer test ikili deposu olacak :
stable dal için bu depoya girecek paketlerin test sürecinde bekleyeceği bir
ara depo, unstable dal için de paketlerin (örn 2 hafta) bekleme ve
geliştiriciler tarafından test edilme sürecinde bekleyeceği bir ara depo.
> 1) Sadece guvenlik guncellemelerinin yapildigi bir 2008 deposu olsun.
> Bu depoya giren her guncellemede tirnagina kadar tum yazilimlar testten
> gecsin. Bu depoya "kararli" olacak densin. Bir paket patlarsa test
> takimini dovelim :)
> 2) Normal depoda test sureci islemesin ya da sadece kritik paketlerde
> islesin. x hafta test deposunda durup hata raporu almayan paketler
> normal depoya sorgusuz sualsiz girsin.
Bir önceki cevabımın anafikrini oluşturan itirazım işgücü ve seçim yapma
zorunluluğu üzerineydi, ilk adımda tarif ettiğin stable dala kesinlikle
ihtiyacımız olduğunu düşünerek o fikrimi daha geniş açıklayayım :
(1 deposuna stable, 2 deposuna da unstable diyorum)
* X paketinin 4.1 sürümündeyken bu dallanmayı yaptık diyelim. Paketin 4.2,
4.3, 4.4 sürümleri çıktı, bizim dağıtım için minör olsa da upstream açısından
hatalar çözüldü, hatta yeni özellikler eklendi - biz de bu paketleri şimdiki
sistemde de olsa yapacağımız gibi unstable dala aldık, 2'şer hafta test
deposunda beklettik, olası sorunlarını çözdük. Fakat bu güncellemelerin
hiçbiri stable dalı için kritik veya güvenlik güncellemesi değildi,
çıkabilecek regressionlar için getir/götür hesabı yaptık, sonunda stable dala
almadık : stable 4.1, unstable 4.4'de şu anda.
İşler burada karışıyor : upstream 4.5 sürümünü iki CVE çözen güvenlik
güncellemesi olarak yayınladı - sık sık karşımıza gelen senaryo.
- unstable dal için çok sorun değil , olabiliyorsa 4.4'e backport edilir, ya
da ters bağımlılık vs sorunu yok ve geçiş güvenlik dışında sadece minor
değişiklikler içeriyorsa 4.4 -> 4.5 geçişi yapılır, doğrudan depoya alınır
[şu anda bu süreci uyguluyoruz zaten.]
- stable dalda ise 4.5 -> 4.1 backportuna ihtiyacımız var : şanslıysak CVE
yaması işimizi görür, değişikliğin büyüklüğüne ve tipine göre ya test ile ya
da doğrudan stable depoya hızla alırız. Ama iki deponun arası açıldıkça bu
süreç daha zorlu olmaya başlar, security ekibininin iki depoyu ayrı ayrı
gözden geçirmesi gerekir, backport işi her seferinde daha fazla kaynağa
ihtiyaç duyar, paketlerin daha fazla test edilmesi gerekir. Zorunlu
kalabileceğimiz sürüm atlamalarında bağımlılıkların da eski sürümde olması
nedeniyle giderek daha zorlanırız. Security fixlerin gecikmesi bizim camiada
neredeyse en büyük ayıp sayıldığından, dağıtım eskidikçe security ekibinin
işi artar, bu sıkışık zamanlar da tahminen bir sonraki sürümün en civcivli
zamanları olacağından zaman sorunları ortaya çıkar.
* Unstable deponun giren paket bazında takip edilip zorunlu nezarethane
sürecini tamamlayan paketlerin hata durumlarının takibi hem bu takibi yapacak
adama, hem de geliştiriciye daha büyük sorumluluk yüklüyor.
İlk bölümünü daha yakından tanıyorum : 2007'nin ilk zamanlarında 2 hafta test
deposunda kalmayan pakete NACK demek benim işimdi, pratikte gerektirdiği
işgücü ve zamanı ayıramadığım(ız) için uygulayamadığımız bir kural olarak
tarihe yazıldı. Öbür yanı (geliştirici yanı) ise önyargılı olmak istemememe
rağmen beni korkutuyor - son bir kaç ayda bugzillada açık hatası olan,
geliştirici ve kullanıcı listesinde sorunları konuşulmuş paketler bile
geliştiricilerden / paket sahiplerinden ACK aldı - bunun sebebi önceki
tartışmalarda genellikle ACK/NACK ve merge süreci olarak ifade edildiyse de
bence büyük oranda da geliştiricilerin ilgisizliği, zaman zaman yeterli
bilgi / tecrübeye sahip olmamaları, hatta nadiren bariz inatlaşmaları neden
oldu bu duruma. Bu cümleler bunu yapamayız demek değil, ama ideal dünyada da
değiliz - kendi aramızda daha iyi bir test / iletişim / geri dönüş
mekanizması oturtmalıyız, geliştiricilerin alacağı insiyatif ve
sorumluluklarının sınırlarını daha iyi belirlemeliyiz demek.
Bunlar yapılamayacak / yetişelemeyecek şeyler mi ? Hayır değil, ama bu
önerinin sadece bir yeni depo açmak olmadığını söylemeye çalışıyorum -
tartışırken attığımız adımların neler getireceğini bilerek konuşalım. Bu iki
depolu yapı gerçekten doğru yol, ama ben şapkayı önüme koyup düşününce ilk
anda tahmin edilenden çok çok daha fazla kaynak gerektireceğini düşünüyorum.
Şu anki durumdan sen de ben de memnun değiliz, ama yenisini kurup iki depoya
da hakettiği ilgiyi gösteremezsek şu anki durumu mumla ararız.
> Kullanicilar "sistemim bozuldu,
> guncellemeler test edilmiyor mu" dediginde de, "test deposunda x hafta
> hata belirtilmemis. eger surecin daha iyi olmasini istiyorsaniz, siz de
> testlere daha cok katilin.
Bunu diyebilirsek ne güzel - biz deriz de kim ne kadar anlar emin olamadım :-P
> Ben sistemim kararli kalsin istiyorum
> diyorsaniz, sadece guvenlik guncellemeleri yapilan depoyu kullanin."
> densin.
> Boylece hedef belirlenmis olur, dagitim depolarinin bir kimligi olur.
> Su anda bence herkes farkli beklentiler icinde dagitimdan ve kimse
> mutlu olamiyor. Hem ultra kararli olayim, hem gelismelerden geri
> kalmayayim, hem o da olsun, hem bu da olsun diye hareket edince hicbiri
> elde edilemiyor.
Burada haklısın, kurumsal kullanıcı için gereken depo kriterleri ile günlük
kullanıcı - hatta dağıtım fanatiği geliştirici için uyulması gereken
kriterler farklı, ama şu anda herkes aynı depoyu kullanıyor.
> Bu ilk defa yapilan bisi degil, Debian stable ve testing var. Pardus'un
> surum cikarma dongusunun Debian kadar uzun olmadigi dusunulurse,
> Debian'daki zararli yan etkiler de Pardus'ta cok az olacaktir diye
> dusunuyorum."
Ama bu hamle ile kurumsal kullanıcı / kararlılık arayan kullanıcıyı da anlamlı
bir şekilde hedeflediğimiz anda onların bir başka önemli isteği olan "uzun
solukluluk" da bonus olarak geliyor - herhangi bir sürüm için stable dal
unstable dal'dan daha uzun maintain edilmek durumda kalacaktır doğal olarak.
Debian olmayız tabii ama ortalamayı ve aynı anda sürdürülen dağıtım saysını
arttıracaktır bu hamle.
> =======
Geri kalanı ayrı mail.
--
İyi Çalışmalar;
Ekin Meroglu <ekin_at_pardus.org.tr>
... did i listen to pop music because i was miserable, or was i miserable
because i listened to pop music?... - rob [nick hornby / hi fi]
Gelistirici mesaj listesiyle ilgili
daha fazla bilgi