[Gelistirici] Kaynak depolar, yeni sürümler , yeni bileşenler

Ekin Meroğlu ekin at pardus.org.tr
1 Nis 2009 Çar 23:07:33 EEST


Merhaba;

Son geliştirici toplantısında da konuştuğumuz gibi yakın bir gelecekte iki 
ayrı sürümü temel alan iki (hatta birara üç) Pardus ürününü sürdürüyor 
olacağız : Pardus 2009, bir süre için Pardus 2008 ve Pardus Kurumsal 2.

Şimdiye kadar böyle bir ihtiyacımız olmadığından, kaynak depo süreç ve 
yöntemlerimiz aynı anda farklı temelli iki sürümü canlı tutmaya pek elverişli 
değil - tek bir devel kaynak deposu kullanmak, sürümlerden biri için 
geliştirme yapmayı kolaylaştırırken, diğeri için tamamen yamalar üzerinden 
çalışmayı zorunlu kılıyor. Kurumsal 2 için hedeflediğimiz uzun ömür boyunca 
tüm geliştirmeyi mail listesi ve yama dosyaları üzerinden yapmak hem zor, hem 
de hataya açık bir yöntem. 

Şu anki durum ve yöntem şöyle : 

* - Tek bir devel kaynak deposu var, tüm güncelleme bu depoda yapılıyor. Bu 
kaynak depo bir sonraki kararlı sürüme (örn: 2009) doğru gidiyor. 
* - Bir kararlı sürüm için çalışmaya başladığımızda o sürüm için bu devel 
deposunu branch'layıp kararlı kaynak depo oluşturuyoruz (örn: pardus/2008).   
* - Güncel kararlı sürüme (örn: 2008) aktarılması istenen değişiklikler için;
a - değişiklik devel deposundan doğrudan alınabilir durumda ise (henüz devel 
ile kararlı sürüm kaynak paketleri arası açılmadıysa) doğrudan kopyalama 
yolu,
b - devel ile kararlı deponun arası açılmış ise kararlı depoya uygulanabilecek 
bir yama dosyası 
kullanılıyor.
* - Eski kararlı sürümlere (örn: 2007) aktarılacak değişiklikler ise (devel 
ile bu kararlı sürümün depolarının arası çok açılmış olduğundan) neredeyse 
her zaman yama dosyası ile yapılıyor. 

Şimdiye kadar yeni kararlı sürüm çıktıktan sonra bir eski sürüme yapılan 
değişiklikler oldukça az olduğundan yama dosyaları ile çalışmak çok sorun 
çıkarmadı, ama bundan sonra aynı anda iki aktif sürüm için çalışırken birini 
sadece yama dosyaları ile geliştirmek pek kolay olamayacak.

Değişiklik önerimiz ise şöyle :  

- Tek bir devel kaynak deposundan vazgeçelim, her sürümün ayrı devel deposu 
olsun. O sürüm için yapılacak tüm geliştirme ilgili devel deposunda yapılsın, 
tamamlandığında o sürümün stable deposuna alınsın. Derleme çiftliği bu stable 
kaynak depoyu derlesin. Yani şöyle :

pardus
    |
    |- 2008
    |     |- devel
    |     |- stable
    |
    |- 2009
    |     |- devel
    |     |- stable
    |
    |- corporate2
    |     |- devel
    |     |- stable
    |

contrib
    |
    |- 2008
    |     |- devel
    |     |- stable
    |
    |- 2009
    |     |- devel
    |     |- stable
 
(Bir önceki mailde bahsettiğim components.xml pardus deposunun kök dizininde 
durur hatta diye düşündük arada, not olarak bulunsun..) 

- Yeni bir sürüm için çalışmaya başlanması o sürüm için bir devel kaynak 
deposu oluşturulması ile olsun. Sürüm yöneticisi ilk seri paket (tahminen 
system.base/devel) için artık derlenebilir dediği anda hazır paketleri ilgili 
depoya alarak stable kaynak depoyu oluştursun, farmı açsın. Sürüme hazır hale 
gelen paketler peyderpey stable depoya alınsın ve derlensin.

- Sürüm yayınlandıktan sonra geliştirme yine ilgili sürümün devel deposunda 
yapılsın, geliştiricisi paketlerim hazır dediğinde kararlı depoya alınsın - 
tabii burada artık stable mail listesine gerek olmayabilir; yama kullanmamız 
gerekmeyecek, svn commit loguna "MERGE:2009" gibi bir tag ekleyerek de 
çözebiliriz dedik.    

Bu yöntem kabul görürse hareket planımız şu olacak :

- Onur şu anki pardus/devel kaynak deposunu pardus/2009/devel olarak 
taşıyacak, bir süredir konuştuğumuz bileşen ağacı değişikliklerini bu depo 
üzerinde yapacağız. 
Onur o depodan ilk seri paketi alıp pardus/2009/stable deposunu oluşturacak.

- Ben şu anki pardus/2008 kaynak deposunu pardus/2008/devel ve 
pardus/2008/stable olarak kopyalayacağım. Geliştirdiği paketteki 
değişkliklerin 2008 ikili deposuna girmesini amaçlayan geliştirici ilgili 
güncellemeleri pardus/2008/devel deposunda yapacak.
Yakın gelecekte de 2008/devel'in bir alt kümesi pardus/corporate2/devel'i 
oluşturacak. 
 
- 2010 için çalışmaya başlayacağımız zaman ise pardus/2009/devel'i 
pardus/2010/devel olarak kopyalayacağız, zamanı gelince pardus/2010/stable 
oluşacak vs vs...
   
Bunlara ne dersiniz ?
--
İ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