Harun Reşit Zafer

bâki kalan bu kubbede bir hoş sadâ imiş

Yazılım Versiyon Numaraları

Bu yazıda geliştirdiğimiz yazılımların versiyonlarını numaralandırma  konusunda bir iki satır kelam etmek istiyorum. Amatör bir heyecan ile geliştirmeye çalıştığım ve bundan büyük zevk aldığım küçük, açık kaynak bir Java kütüphanesi var. Kütüphane küçük de olsa onu yayınlarken yazılım paketleme, lisanslama, versiyonlama ve versiyon numaralandırma (ikisi farklı şeyler) gibi konularda bayağı tecrübem oldu. Bu yazıyı da bu vesile ile yazıyorum. Konu ile ilgili yaptığım araştırmada bir şöyle bir makale buldum ki, İngilizce biliyorsanız muhakkak okuyun. Oradan da bazı alıntılar yapacağım.  Öncelikle yazılımcılar kendi içerisinde kullandıkları numaralandırma yöntemleri bir miktar karışık. Mesela aşağıdaki tip sıkça kullanılır:

(Major version).(Minor version).(Revision number).(Build number)

Aşağıdaki gibi versiyon numaralarını sıkça görmüşsünüzdür.

7.0.6000.16386
8.1.0178.00
11.11
2.7.0.0
2.5.10 / build 6903
2.0 build 0930
0122.1848.2579.33475
2.0.50727.312
2.0.0.1
1.8.20061.20418

Ancak bahsettiğim yazıda da ifade edildiği gibi bunlar son kullanıcı için hiçbir şey ifade etmiyor. Hatta kafa karıştırıcı oluyor. Bu nedenle artık çoğu yazılım sadece ana versiyon numarasını kullanıyor. Firefox 2, Firefox 3 gibi. Yine aynı yazıda bahsedildiği üzere son kullanıcıya yönelik en mantıklı yöntem ise yazılımın geliştirildiği yılı versiyon numarası olarak kullanmak. Office 2003, Office 2007, Visual Studio 2010 gibi. Zira bu insanlar için çok daha manalı. Sonuç olarak söylemek istediğim son kullanıcıya hitap edecekseniz daha anlaşılır, kullanıcı dostu bir yöntem bulmanız gerekiyor.

Gelelim biz yazılımcıların kendimiz için versiyon numaralama işini nasıl yapacağına. Bence aşağıdaki yöntem sade ve yeterli.

Ana versiyon.Ara versiyon.Düzeltme

Süreci örneklemek gerekirse; Sıfırdan bir projeye başladınız. Hedef ilk kararlı sürüm olacak olan 1.0.0 versiyonuna ulaşmak. Burada alfa, beta süreçlerine hiç girmiyorum.Öncelikle 1.0.0 versiyonu için gereksinimler yani yazılımın hangi özellikleri ihtiva etmesi gerektiği belirlenir. Amiyane tabirle “yazılımın ilk sürümü şunları ve şunları yapabilmeli” gibi bir karar almanız gerekiyor. Daha sonra eklenen her özellik için ortadaki numara, her düzeltme için sondaki numara artırılır. Bir numara artırıldığında sağında kalan numaralar sıfırlanır. Örnek süreç:

0.1.0 ilk özelliği ekledik.

0.1.1 bir iki düzeltme yaptık

0.1.2 bir düzeltme daha (bug fix mesela)

0.2.0 yeni bir özellik ekledik.
..
0.3.3
..
..
1.0.0 Hedeflenen ilk sürüme ulaştık.

Bu aşamadan sonra 2.0 için neler istediğimizi belirleyeceğiz. Aynı süreç baştan devam edecek. Burada önemli bir ticari nokta şu ki, 2.0’da görmek istediğiniz her özelliği 1.1, 1.2 diye ilk versiyona eklemek yerine bunları doğrudan 2.0 sürümü ile birlikte sunabilirsiniz. Bu da işin ticari strateji tarafı ki ayrı bir makale konusu, hatta yazılım mühendisliğinin konusu değil. Yine de mühendislerin ve mühendis adaylarının işin bu boyutunu da bilmelerinde yarar var.

Umarım faydalı olmuştur.

Herkese kolay gelsin

 

Share on FacebookShare on Google+Tweet about this on TwitterShare on LinkedInPrint this pageEmail this to someone

7 Yorum

  1. tam aradığım yazı Teşekkürler.

  2. yukarıdaki örnekte hata mı var? 0.3.3 satırındaki sondaki ‘3’ değilde ‘0’ olabilir mİ?

    • admin

      16 Temmuz 2013 at 04:10

      Hata yok 0.3.3 satırından önce bir yerlerde 0.3.0 versiyon numarasının da mevcut olduğunu farzedin.

  3. Bilgi paylaşımınız için öncelikle çok teşekkür ederim. Basit ve faydalı bir yazı olmuş, merak ettiğim konu örneğin ;
    versiyon numaram 1.1.0 ben hem yeni özellik ekledim hemde 3,4 adet bug düzelttim şimdi yeni özellik eklediğim için versiyon numaram 1.2.0 olacak düzelttiğim bugları versiyona yansıtmayacak mıyız ? Yani bir özellik eklendiği zaman otomatik olarak ortadaki sayı bir arttırılıyor ve sağ taraf sıfırlanıyor ama düzeltmelerin olduğu yere dokunmuyor muyum?

    • Versiyonlama biraz da size kalmış bir mesele. Bir sürümde hem bug fix hem de yeni özellik ekleme olabilir. Bu durumda doğrusu 1.2.0’dır 1.2.1 değil. Ancak günümüze Firefox, Chrome gibi yazılımların sürümleri 23,25 diye gidiyor. Hatta Office 2003, 2007 gibi çıkış yılını kullanıyor. Zira bu kullanıcı açısından daha anlamlı. Yine de arka planda böyle bir versiyonlama (hatta 4 haneli) kullanılıyor.

      • Teşekkür ederim Harun bey bizim yazılımda sürekli bir ekleme düzenleme oluyor onun için düzgün bir versiyon mantığı arıyordum. Sizin bu öneriniz 3 haneli kullanım gayet uygun işimizi görecek şekilde, tekrardan teşekkür ederim.

  4. Elinize sağlık çok faydalı oldu

Bir Cevap Yazın

E-posta adresiniz yayınlanmayacak

*

© 2017 Harun Reşit Zafer

Temayı tasarlayanAnders NorenYukarı ↑