Yeni geliştirmeyi başlatmadan önce veya bir sürümü etiketlerken sürümü çarp, hangisi daha iyi?


9

Bazı projeler yeni bir geliştirmeyi başlatmadan önce sürümü çarparken, diğer projeler bir sürümü etiketlerken sürümü çarpıyor.

Hangi yaklaşım daha iyi?

Yeni aşamanın başlangıcında sürüm numarası değişmezse, geliştiriciler bunu değiştirmeyi ve programı serbest bırakmayı unutabilir.

Etiketleme sürümünden önce sürüm numarası değiştiyse, sürüm numaraları (tag ve Makefile / AssemblyInfo.cs) eşleşmez.

git describe geçerli düzeltme v1.2.3.4'ten sonraysa size v1.2.3.4-15-g1234567 verebilir, ancak dosyaları v1.2.3.5 olacak şekilde değiştirdiyseniz

Yanıtlar:


2

Sürüm numarasının ana nedeni, bir hata bulunduğunda hatanın gerçekte meydana geldiği kaynak kodunun gerçek sürümünü kullanarak hata ayıklayabilmenizdir (böylece hatanın gerçek nedenini keşfedin).

Ürününüzün kullanıcısı, geliştiriciyle, geliştiricinin bu hedefe ulaşabilmesi için yeterli bilgi sağlayabildiği sürece hangi sürümleme şemasını kullandığınız önemli değildir.

Sürüm oluşturmanın diğer nedenleri pazarlama ve yardım (bazen yasal) ekipler içindir.
Bu takımların sürüm için kendi öncelikleri vardır.

  • Yardım
    Uyumluluğu ve özellikleri ve potansiyel olarak kararlılığı belirlemenin kolay bir yolunu ister (bkz. Linux Tek / Çift sayı şeması).
  • Pazarlama
    Her seferinde daha büyük bir sayı ister (tercihen 2'nin üzerinde)
  • Yasal
    Numarayı artırmadan önce tüm özelliklere sahip olduğunuzdan emin olmak istiyor.

Her durumda, kullanılan şema önemsizdir. Tutarlı olduğunuz sürece (veya anlamdaki değişikliklerle ilgili oldukça ayrıntılı belgelere sahip olduğunuz sürece).


1

.NET derlemelerinin sahip olduğu dört bölümlü sürüm numaralarını kullanırken, ilk üç bölümü ayarlamak için bir sürüm denetim etiketi kullanmayı tercih ederim, sonra dördüncü bölüm bu etiketten bu yana taahhütlerin sayısıdır.

Örneğin, bir sürüm "v1.2.3" olarak etiketlenir. Eğer git-describedöner "v1.2.3-4-g1a2b3c4", daha sonra inşa zaman montaj 1.2.3.4 olarak sürüm alır söyledi.

Bir etiket daha sonra bu sürüme uygulanırsa, git-describebunun yerine 1.2.4.0 sürümünü temsil eden "v1.2.4" değerini döndürür. Bir sonraki taahhüt 1.2.4.1 olacaktır.

Bu sistemden bulduğum faydalar:

  • Her işlem otomatik olarak sürüm numarasını artırır.
  • Bir sürüm, yalnızca etiketlenerek ".0" sürümü haline getirilebilir.
  • Mükemmel olmasa da, bu sistem DVCS ile çalışır çünkü en son etiketten bu yana taahhütlerin sayısını sayar.
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.