[Gelistirici] kararli depoya paket gecis sureci

Ekin Meroğlu ekin at pardus.org.tr
5 Ara 2008 Cum 14:19:38 EET


Merhaba;

Thursday 04 December 2008 tarihinde, Furkan Duman şunları yazmıştı: 
> 02 Aralık 2008 Salı 14:03 tarihinde Doruk Fisek <dfisek at fisek.com.tr> yazdı:
> > Daha da fizibl oldugunu dusundugum soyle bir radikal onerim var :
> >
> > 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 :)
>
> Bence radikal değil gerekli bir depo bu. Benim de benzer bir önerim
> olmuştu. Güncel olmak adına zırt pırt sürüm atlatmayalım. Önemli
> hataları ve güvenlik açıklarını çözelim demiştim.

Bu "kararlı depo" için olması gereken durum zaten - ama bu kararlı deponun 
güncel olan karşılığı şu anki test deposu ol(a)mıyor. Güncel bir depo ile 
sıkı kuralları olan kararlı bir depoyu birlikte götürmek için bu ikisinin 
ayrı kaynak depoları olması gerekiyor -  detaylı yazmaya çalıştım daha önceki 
postalarda.
 
> Ancak bu depoya yeni paket girdiğinde bütün depo paketlerinin testi
> bana çok yapılabilir gelmedi. Sonraki başlıkta bahsettiğin gibi,
> sorunlu paketlerin işaretlenip, bunların testinin yapılması yeterli
> sanki. Sadece güncellenen pakete bağımlı paketler de test edilse olur
> gibi.
>
> > 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. 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. Ben sistemim kararli kalsin istiyorum
> > diyorsaniz, sadece guvenlik guncellemeleri yapilan depoyu kullanin."
> > densin.
>
> Adı normal depo olunca kullanıcılardan bunu beklemek haksızlık bence.
> Depo adı "Kararsız depo" olsa söylediğine hak verirdim.
> Depoları çoğaltmaya gerek yok bence. Şu an bir de test depomuz var.
> Bunun yerine bir kararlı bir kararsız depo olsa yeterli sanırım.
> Kararsız depoda bahsettiğin gibi istediğimiz commit i yaparız. Sistem
> bozulursa da "bu kararsız depo idi" deriz. :)

Güncel depo = kararsız depo, bir yere kadar - ama kararsız depo demek önümüze 
geleni kırarız, fena kırılırsa da iki güne düzeltiriz demek olmamalı. 
Ortalama olarak şu anki kararlı depodan biraz daha esnek olabilir bence ama 
daha fazlası kullanıcıları rahatsız etmeye başlayacaktır diye düşünüyorum.
 
> Çoğu kullanıcının, güncellemelerden dolayı kararsız depoyu
> kullanacağını zannediyorum. Dolayısıyla istemeden de olsa test yapmış
> olacaklardır.

Ama test, sonuçları ile ilgili geri dönüş alabildiğimiz sürece anlamlı - 
kullanıcılardan zaman zaman çok değerli geri dönüşler alsak da genel 
ortalamanın pek yüksek olduğunu düşünmüyorum, daha doğrusu geri dönüşlerin 
problemi çözmekte yardımı çok daha az oluyor genellikle.

> > Yanlis anlama, bana uzaktan, merge yapan adam bildigin amelelik yapiyor
> > gibi gozukuyor. Belki sistemin temel bilesenlerinin sik guncellendigi
> > ilk donemlerde, gelistiricileri gemlemek icin iyi bir mekanizmaydi. Su
> > anda anlamsiz bir burokrasiye donusmus durumda. Hem paketini
> > guncelleyen, hem de o paketi merge eden icin."
>
> Katılıyorum. Açıkçası uzun bir süre ayrı kaldıktan sonra geri
> döndüğümde, oluşan bu bürokrasi beni afallatmıştı. Yeni geliştiriciler
> için de korkutucu görünebilir.

Bu merge / farm işinin tabii ki optimize edilebilecek yerleri var, ama  neden 
tek veya sınırlı sayıda geliştirici tarafından işletilmesini tercih ettiğimi 
anlattım sanıyorum.  

> Hem artık bir paket review sürecimiz var. Yeni paketler konusunda
> endişelenmemize gerek olduğunu sanmıyorum.
> Bu review sürecini güncellemelerde de yapmalıyız.  2 onay alan paket
> doğrudan merge edilebilir hale gelebilir. Güncellemeyi yapan de
> kendisi merge eder.

Bu merge'un yapılması sorunu değil, farmı çalıştırıp depoyu oluşturacak 
kişinin bu işleri planlayabilmesi sorunu daha çok.
 
> ACK NACK'i neden yaptığımızı anlamıyorum. Paketimde bir sorun var ise
> zaten depo sorumlusuna haber verip, veya yeni düzenlemede geçersek
> kendim, paketi revert edebilirim. 

İşte senin "haber verme" olarak tanımladığın işi tek yerde - tek seferde 
yapmamın şimdilik bulabildiğimiz yolu bu, niye bu kadar zor geliyor gerçekten 
anlamıyorum. Bu haberleşme tek yerde olmadığı sürece birisi bana 
jabber'dan "şu pakette şu var, almayalım" diyor, bir başkası mail atıyor, bir 
diğeri mail atacaktım unuttum diyor beş gün sonra, beriki "bugzilla'da hatası 
vardı, takip etmiyor musun" diye hesap soruyor. Bunların arşivlenir bir yerde 
tek bir şekilde yapılması gerçekten anlamsız mı ? Diğer türlü test ekibinin 
de , sürüm ekinin de yaptığı teknik işten çok takip ve belgelendirme yapması 
gerekiyor, bunu geliştiricilere yayıyoruz, liste üzerinde herkesin gözü 
önünde takip ediliyor bence. 

Yine söylüyorum, bu en doğrusu değil tabii ki ama bu tip bir işi daha da az 
görünür, daha zor takip edilir bir yola sokmanın neyi düzelteceğini 
anlayamıyorum.    

> Eğer paket test ten geçemediyse ve 
> paketi güncelleyene ulaşılamıyorsa, depo veya bileşen sorumlusu revert
> i yapar. Bunu neden yapıyoruz lütfen birisi söylesin..

- Paketleri ve depoyu takip etmek durumunda olan insanların bunu açık ve 
şeffaf biçimde yapabilmelerini sağlamak,
- açık hatası olup listede hatalı olduğu konuşulmuş bir paketin ACK almasına 
bile rastlanırken "hatalı olan paketi haber versin, hatasını çözene kadar 
revert etsin geliştiricisi" demek bence biraz iyimserlik olduğu için :-)

Derdim yerine koyacağımız yöntem merge/ack hammaliyesini kaldıracak diye 
sevinirken "revert"ler ve "recompile"ler ile daha fazla zaman ve kaynak 
kaybetme ihtimalimiz.
--
İ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