[Gelistirici] kararli depoya paket gecis sureci

Doruk Fisek dfisek at fisek.com.tr
4 Ara 2008 Per 18:05:33 EET


Merhaba,

Tue, 2 Dec 2008 15:34:51 +0200, Erkan Tekman <tekman at pardus.org.tr> :

> Başta mevcut ve gelecek sürüm yöneticileri, depo sorumlusu ve tüm
> geliştiricilerden katkılarını rica ediyorum. Bu tartışma bir ortak
> karara varana kadar açık kalsın lütfen...
Henuz cit cikaran olmadi, ben biraz beyin jimnastigi ile "tatil"
hediyesi olarak soyle bir taslak duzenek hazirladim (bende oneri
bol :)). Belki guncel bisi uzerinde tartismak, curutmek daha kolay
olur :

On hazirlik :
1) Bakıcısız tüm paketler işaretlenir.
2) Her bilesen icin birer bilesen sorumlusu secilir.
3) Sadece güvenlik güncellemelerinin yapılacağı bir kaynak depo
olusturulur. Guvenlik depo sorumlusunun, guvenlik takımından biri
olması mantıklı olur sanırım.
4) Tercihen ayri bir guvenlik deposu derleme ciftligi olur. Burada
yapilan tum degisiklikler guvenlik deposundaki paketlere gore
derlenerek sisteme kurulur. "Kırılma" riski en aza indirilir.

Sürekli düzenek :
1) Tüm geliştiriciler surum (2007, 2008, vb) kaynak svn depolarına
erişip değişiklik yapabilir. Surum-guvenlik kaynak depolarına sadece
güvenlik takımı insanları yazabilir.

2) Her bileşenin sorumlusu, kendi bileşeninde yer alan paketlerde
yapılan değişiklikleri takip eder. Gerekiyorsa müdahale eder, ilgili
geliştiriciyi uyarır.

3) Her bileşenin sorumlusu, derleme çiftliğinde kendi bileşeninin
paketlerini derletir[1] (ve test deposuna aktarılmasını sağlamış olur).

4) Güvenlik deposunun paketlerinin derlenmesi ve depoya aktarılması
güvenlik depo sorumlusu tarafından yapılır.

4) Güvenlik güncellemeleri test takımı tarafından hemen ve öncelikli
olarak teste alınırlar. Hem surum-guvenlik hem de surum depolarına göre
ayrı ayrı test edilirler.

5) system.base bileşenindeki paketlerin testi yapılırken, "emniyet
mandalı" nedeniyle sadece system.base guncellenmesi durumu da farkli
guncelleme safhalarindaki Pardus sistem kombinasyonları ile test
edilmelidir [2].

6) CD içinde gelen paketler [3], ozel olarak gelistiricisi o paketle
ilgili kendisinden onay alinmasini istemiyorsa, test deposuna girdikten
7 gun sonra test takimi araciligiyla test surecine alinir [4]. Bu
surecten gecen paketler ilk toplu güncellemede kararli depoya aktarilir.

7) Test sürecinde yakalanan hatalar için Uluzilla'da bir hata raporu
açılır ve paketi güncelleyen geliştiriciye atanır. Hata çözüldükten
sonra süreç yeni paketle tekrar başlar (don't pass go, don't collect
200 gayme).

8) CD içinde gelmeyen paketler test deposunda haklarında bir hata
raporu açılmadan 7 gün zaman geçirirlerse [5] ilk toplu güncellemede
kararlı depoya aktarılırlar.

9) Rüştünü ispatlanmış paketlerin test deposundan kararlı depoya toplu
güncelleme işlemini ilgili depo sorumlusu her haftanın başında yapar.
Güncellemeler girdikten sonra Turkce ve Ingilizce olarak depoya yeni
giren paketleri ve niye yapıldıklarını e-posta ile yayinlar.

10) Pardus deposu için bu süreç oturtulduktan *sonra*, donanım ve insan
gücü olanakları dahilinde contrib deposu için de uygulanabilir (bir test
deposu oluşturmak, bileşen sorumluları belirlemek, vb). CD'de gelen,
system.base ve benzeri paketler olmadığı için, Contrib deposunun test
süreci sadece 8. maddeden ibaret oluyor elbette.


Biraz hizli hazirladim, atladigim bisiler olabilir. Hatalar, yanlislar,
eksikler, eklemeler icin atis serbest :). Temeller uzerinde anlasirsak,
ballandirip dokuman haline getirmesini ayrica yapilir elbette.

                   Doruk

--
FISEK ENSTITUSU - http://www.fisek.com.tr



[1] Bunun kolay yapılabilmesi icin derleme çiftliğinde bazı
değişiklikler gerekebilir elbette. Ama çok masraf ettirmeyeceğini
umuyorum.

[2] Guncelleme yapmak icin degil, sadece bir paket kurmaya kalkan bir
kullanici zorunlu olarak (istegi disinda) sadece system.base
guncellemelerini yapiyor. Tum sistemi yukseltmediginden dolayi
bagimliliklardan dolayi problem yasiyor. Bu tur guncellemeyi "zorla"
yaptirdigimizdan, hic problem yasanmamasi gerekir bu durumda.

[3] Ilgili urun icin olan tum paketler. Yani 2007 icin 2007.0-1-2-3
CD'lerinde yer alan tum paketler bu kapsama giriyor. Bazi paketler
girip/cikabiliyor minor surumlerde de CD'ye. Ilgili paket listeleri :
http://svn.pardus.org.tr/uludag/trunk/pardusman/projects/release/

[4] CD'de gelen paketler kullanicinin sistemine zorunlu olarak
kuruldugundan ve ozellikle kaldirilmadiklari surece tum kullanicilarda
guncelleneceginden ozel olarak dikkat edilmesi gerekiyor.

[5] Güvenlik, system.base ve CD icinde gelen paketlerin testinden sonra
elde yeterli test gucu kalirsa, onlar da test deposuna giren diger
paketleri test edip hata raporlamak icin kullanilabilir. Bunun icin her
durumda 7 gunluk bir sureleri olacak.



Gelistirici mesaj listesiyle ilgili daha fazla bilgi