Bir sürümdeki sayılar tipik olarak neyi temsil eder (yani v1.9.0.1)?


135

Belki bu aptalca bir sorudur, ama her zaman her bir sayının yazılımın tek bir bileşenini temsil ettiği varsayılır. Bu doğruysa, hiç farklı bir şeyi temsil ediyorlar mı? Yazılımımın farklı sürümlerine sürüm atamaya başlamak istiyorum, ancak bunun nasıl yapılandırılması gerektiğinden emin değilim. Yazılımımın beş ayrı bileşeni var.


Rakamlar, genellikle tek tek bileşenlerle değil, sürümünüzdeki büyük ve küçük ve bakım değişiklikleriyle ilişkili olsa da, istediğiniz herhangi bir şey anlamına gelebilir. Bu kaynaklara göz atın: netbeans.org/community/guidelines/process.html en.wikipedia.org/wiki/Release_engineering freebsd.org/releases/6.0R/schedule.html Şerefe
Alvaro Rodriguez

Yanıtlar:


198

1.9.0.1 sürümünde :

  • 1 : Büyük revizyon (yeni kullanıcı arayüzü, birçok yeni özellik, kavramsal değişim vb.)

  • 9 : Küçük düzeltme (belki bir arama kutusunda değişiklik, 1 özellik eklendi, hata düzeltmelerinin toplanması)

  • 0 : Hata düzeltme sürümü

  • 1 : Derleme numarası (kullanılıyorsa) - bu nedenle .NET çerçevesini 2.0.4.2709 gibi bir şey kullanarak görüyorsunuz

Dört seviyeye kadar çok fazla uygulama bulamazsınız, 3 genellikle yeterlidir.


3
Ben tam olarak bunu kullanıyorum, ama özellikle Build numarası Subversion Veritabanı veri havuzu sürümü
Xetius

Ben kullanıyorum, ama major.minor.build gibi üçüncü basamak olmadan. Yapı numarası olmasının nedeni her halükarda artacaktır, böylece kendi içinde küçük hata düzeltmeleri vb.
Mark Embling

9
major.minor.revision (hata düzeltmeleri) .build benim için en anlamlı. Ne yazık ki, .NET Sürüm türü major.minor.build.revision olarak tanımlanır (muhtemelen Microsoft'un yalnızca 3 sürüm yeri kullanması nedeniyle?).
Kevin Kibler

2
Bu sistemi anlamaya çalışıyorum. İşte bir soru: Yeni bir sürümde bir özellik ve hata düzeltmesi varsa, neyi artırmalıyım?
iTurki

6
@iturki Genellikle "büyük" sürüm numarası öncelik taşır. Uygulamanızı 1.4.23 sürümünden güncelliyorsanız, 1.5.0 sürümüne güncelleyip işiniz bitti. Sürüm notlarınızda hangi hataların düzeltildiğini belirtebilirsiniz. Benzer şekilde 1.4.23'ten 2.0.0'a güncelleme yapabilirsiniz.
Dillie-O

33

Orada Semantik Sürüm şartname

Bu, 2.0.0 sürümünün özetidir:

MAJOR.MINOR.PATCH sürüm numarası verildiğinde:

  1. Uyumsuz API değişiklikleri yaptığınızda önemli sürüm,
  2. İşlevleri geriye dönük uyumlu bir şekilde eklediğinizde MINOR sürümü ve
  3. PATCH sürümü geriye dönük uyumlu hata düzeltmeleri yaptığınızda.

Sürüm öncesi ve derleme meta verileri için ek etiketler MAJOR.MINOR.PATCH biçiminin uzantıları olarak mevcuttur.


15

Çok keyfi olabilir ve üründen ürüne farklılık gösterir. Örneğin, Ubuntu dağılımı ile 8.04, 2008'e atıfta bulunur.

Genellikle en soldaki (büyük) sayılar büyük bir sürümü gösterir ve sağa ne kadar ilerlerseniz, ilgili değişiklik o kadar küçük olur.



8

Daha fazla puan, sürüm daha küçük. Bunun ötesinde gerçek bir katı standart yoktur - proje yöneticilerinin karar verdiklerine bağlı olarak farklı şeyler ifade edebilir.

Örneğin, WordPress şu satırlar boyunca gider:

1.6 -> 2.0 -> 2.0.1 -> 2.0.2 -> 2.1 -> 2.1.1 -> 2.2 ...

1.6 ila 2.0 büyük bir sürüm olacaktır - özellikler, arayüz değişiklikleri, API'larda büyük değişiklikler, bazı 1.6 şablonların ve eklentilerin kırılması vb. 2.0 ila 2.0.1 küçük bir sürüm olacaktır - belki de bir güvenlik hatasını düzeltir. 2.0.2 ila 2.1 önemli bir sürüm olacaktır - genellikle yeni özellikler.


8

Sayılar diğer cevaplarda açıklandığı gibi yararlı olabilir, ancak bunların nasıl anlamsız olabileceğini de düşünün ... Güneş, SUN, java: 1.2, 1.3, 1.4 1.5 veya 5'ten sonra 6. İyi eski Apple II sürüm numaralarında şey. Günümüzde insanlar sürüm numaralarından vazgeçiyor ve "Feisty fig" (ya da bunun gibi bir şey) ve "hardy heron" ve "europa" ve "ganymede" gibi saçma isimlerle gidiyorlar. Tabii ki bu çok daha az kullanışlıdır, çünkü programı değiştirmeyi bırakmadan önce jüpiter aylarından tükeneceksiniz ve açık bir sipariş olmadığından hangisinin daha yeni olduğunu söyleyemezsiniz.


4

Sürüm v1.9.0.1'de: Bu, ön sürümler için ad kullanmak veya -alpha, -beta gibi oluşturmak istemediğinizde kullanılan açık sürüm oluşturma şemasıdır .

1: Geriye dönük uyumluluğu bozabilecek ana sürüm

9: Uygulamanızı desteklemek için önceki sürümle geriye dönük uyumluluk ile birlikte yeni özellikler ekleme.

0: Bazı küçük hata düzeltmeleri

1: Derleme numarası (Ön sürüm numarası)

ancak günümüzde böyle bir sürüm oluşturma düzeni bulamazsınız. Anlamsal Sürüm Oluşturma [semver2.0] https://semver.org/


3

Sürüm numaraları genellikle ayrı bileşenleri temsil etmez. Bazı insanlar / yazılımlar için sayılar oldukça keyfidir. Diğerleri için, sürüm numarası dizesinin farklı bölümleri farklı şeyleri temsil eder. Örneğin, bazı sistemler dosya biçimi değiştiğinde sürüm numarasının bölümlerini artırır. Dolayısıyla V 1.2.1, diğer tüm V 1.2 sürümleriyle (1.2.2, 1.2.3, vb.) Uyumlu olan ancak V 1.3 ile uyumlu olmayan dosya biçimidir. Sonunda hangi şemayı kullanmak istediğiniz size kalmış.



2

Bu değişir, ancak tipik temsil major.minor.release.build'in temsilidir .

Nerede:

  • majör yazılımınızın en büyük yayın sürümüdür, bence .NET 3.x
  • minör yazılımınızın minör versiyonudur, .NET x.5'i düşünün
  • sürümü bu sürümün sürümüdür, genellikle hata düzeltmeleri bunu artırır
  • build , gerçekleştirdiğiniz build sayısını gösteren bir sayıdır.

Örneğin, 1.9.0.1, yazılımınızın 1.9 ve 1.8 ve 1.7'yi izleyen sürümleri anlamına gelir; burada 1.7, 1.8 ve 1.9, bir şekilde tipik olarak hata düzeltmelerinin yanında küçük miktarlarda yeni özellikler ekler. Xx0.x olduğundan, 1.9'un ilk sürümü ve bu sürümün ilk derlemesi.

Ayrıca konuyla ilgili Wikipedia makalesinde iyi bilgiler bulabilirsiniz .


2

Major.Minor.Bugs

(Ya da bununla ilgili bazı değişiklikler)

Bugs genellikle yeni bir işlevsellik içermeyen hata düzeltmeleridir.

Küçük, yeni işlevler ekleyen ancak programı önemli bir şekilde değiştirmeyen bir değişikliktir.

Binbaşı, programdaki ya eski işlevselliği bozan ya da o kadar büyük ki, bir şekilde kullanıcıların programı nasıl kullanması gerektiğini değiştiren bir değişikliktir.


2

Herkes bu sayılarla ne yapmak istediğini seçer. Zaten aptalca olduğu için abc sürümlerini çağırmaya cazip geldim. Bununla birlikte, son 25 yıldan fazla bir süredir gelişimde gördüğüm şey bu şekilde çalışma eğilimindedir. Diyelim ki sürüm numaranız 1.2.3.

"1", "büyük" bir düzeltmeyi belirtir. Genellikle bu bir ilk sürüm, büyük bir özellik kümesi değişikliği veya kodun önemli bölümlerinin yeniden yazılmasıdır. Özellik seti belirlendikten ve en azından kısmen uygulandıktan sonra bir sonraki numaraya gidersiniz.

"2", bir seri içindeki bir sürümü belirtir. Genellikle bu konumu, son büyük sürümde bulunmayan özelliklere yetişmek için kullanırız. Bu konum (2) neredeyse her zaman, genellikle hata düzeltmeleri olan bir özellik eklemesini gösterir.

Çoğu mağazadaki "3", bir düzeltme eki / hata düzeltmesini belirtir. Neredeyse hiç, en azından ticari tarafta, bu önemli bir özellik eklendiğini göstermez. Özellikler konum 3'te görünüyorsa, muhtemelen bir hata düzeltmesi yapmak zorunda olduğumuzu bilmeden önce birisi bir şey kontrol etti.

"3" konumunun ötesinde mi? İnsanların neden bu tür şeyleri yaptıkları hakkında hiçbir fikrim yok, sadece kafa karıştırıcı oluyor.

Özellikle de OSS'nin bir kısmı tüm bunları çılgınca atmaktadır. Örneğin, Trac sürüm 10 aslında 0.10.XX Bence OSS dünyasında bir çok insan ya güven eksikliği ya da sadece büyük bir sürüm yaptıklarını duyurmak istemiyorum.


2

C # AssemblyInfo.cs dosyasından aşağıdakileri görebilirsiniz:

// Version information for an assembly consists of the following four values:
//
//      Major Version
//      Minor Version 
//      Build Number
//      Revision
//
/ You can specify all the values or you can default the Build and Revision Numbers 
// by using the '*' as shown below:
// [assembly: AssemblyVersion("1.0.*")]

2

release.major.minor.revision benim tahminim olurdu.
Ancak ürünler arasında büyük farklılıklar gösterebilir.


1

Major.minor.point.build genellikle. Majör ve minör kendi kendini açıklar, nokta birkaç küçük hata düzeltmesi için bir sürümdür ve derleme sadece bir derleme tanımlayıcısıdır.


Derleme tanımlayıcısı nedir?
Darshan L

1

Evet. Büyük sürümler büyük, yeni özellikler ekler, uyumluluğu bozabilir veya önemli ölçüde farklı bağımlılıklara vb. Sahip olabilir.

Küçük sürümler de özellikler ekler, ancak bunlar beta ana sürümden daha küçük, bazen soyulmuş ported sürümlerdir.

Üçüncü bir sürüm numarası bileşeni varsa, bu genellikle önemli hata düzeltmeleri ve güvenlik düzeltmeleri içindir. Daha fazlası varsa, ürüne çok fazla bağlıdır, genel cevap vermek zordur.


1

Ben büyük release.minor release.bug düzeltme paradigması oldukça yaygın olduğunu düşünüyorum.

Bazı kurumsal destek sözleşmelerinde, belirli bir sürümün nasıl belirlendiğiyle ilişkili $$$ (veya sözleşme yükümlülüğünün ihlali) vardır. Örneğin bir sözleşme, bir müşteriye belirli bir süre içinde bazı büyük sürümlerin yayınlanmasına izin verebilir veya bir dönemde x'den az sayıda küçük sürümün olacağına söz verebilir veya bu desteğin pek çok kişi için mevcut olmaya devam edeceğine söz verebilir. Salıverme. Elbette, büyük bir sürümün küçük bir sürüme karşı ne olduğunu açıklamak için sözleşmeye kaç kelime konursa getirilsin, her zaman özneldir ve her zaman gri alanlar olacaktır - yazılım satıcısının sistemi oyun oynayabilme olasılığına yol açar bu tür sözleşme hükümlerini yenmek.


1

İnsanlar 2.1, 2.0.1 veya 2.10 gibi sürüm numaraları arasındaki ince farkı her zaman tanımazlar - bir teknik destek personeline bununla kaç kez sorun yaşadıklarını sorun. Geliştiriciler detay odaklı ve hiyerarşik yapılara aşinadır, bu yüzden bu bizim için kör bir noktadır.

Mümkünse, müşterilerinize daha basit bir sürüm numarası gösterin.


1

Bir kütüphane söz konusu olduğunda, sürüm numarası size iki sürüm arasındaki uyumluluk düzeyini ve dolayısıyla yükseltmenin ne kadar zor olacağını anlatır .

Hata düzeltme sürümünün ikili, kaynak ve serileştirme uyumluluğunu koruması gerekir.

Küçük sürümler farklı projeler için farklı şeyler ifade eder, ancak genellikle kaynak uyumluluğunu korumaları gerekmez.

Ana sürüm numaraları her üç formu da kırabilir.

Burada mantık hakkında daha fazla yazdım .


0

Binbaşı, minör, yama, yapı, güvenlik yaması vb.

İlk ikisi büyük ve küçük - geri kalanı projeye, şirkete ve bazen topluluğa bağlı olacaktır. İşletim sistemlerinde FreeBSD gibi, bir güvenlik yamasını temsil etmek için 1.9.0.1_number'a sahip olacaksınız.


0

Dile biraz bağlı, örneğin Delphi ve C # farklı anlamları var.

Genellikle, ilk iki sayı büyük ve küçük bir sürümü, yani ilk gerçek sürüm için 1.0, bazı önemli hata düzeltmeleri ve küçük yeni özellikler için 1.1, büyük bir yeni özellik sürümü için 2.0'ı temsil eder.

Üçüncü sayı "gerçekten küçük" bir versiyona veya revizyona işaret edebilir. 1.0.1, örneğin 1.0.0 için çok küçük bir hata düzeltmesidir. Ancak, Revizyon numarasını Kaynak Kontrol Sisteminizden veya her derlemede artan artan bir sayı da taşıyabilir. Veya bir Tarih Damgası.

Burada biraz daha ayrıntı . "resmi", .net içinde, 4 sayı "Major.Minor.Build.Revision", Delphi ise "Major.Minor.Release.Build" vardır. Sürümüm için "Major.Minor.ReallyMinor.SubversionRev" kullanıyorum.


0

Genellikle sayı, bağımsız dahili bileşenler değil, version.major.minor.hotfix biçimindedir. Dolayısıyla v1.9.0.1, sürüm 1, büyük sürüm 9 (v1'in), küçük sürüm (v1.9'un) 0, sıcak düzeltme 1'in (v1.9.0) olacaktır.


0

İlk sayı tipik olarak ana sürüm numarası olarak adlandırılır. Temel olarak, yapılar arasındaki önemli değişiklikleri belirtmek için kullanılır (yani birçok yeni özellik eklediğinizde, ana sürümü artırırsınız). Aynı üründen farklı ana sürümleri olan bileşenler muhtemelen uyumlu değildir.

Sonraki sayı, küçük sürüm numarasıdır. Bazı yeni özellikleri veya bazı hata düzeltmelerini veya küçük mimari değişikliklerini temsil edebilir. Aynı üründen küçük sürüm numarasına göre farklılık gösteren bileşenler birlikte çalışabilir veya çalışmayabilir ve muhtemelen çalışmamalıdır.

Sonrakine genellikle derleme numarası denir. Bu, günlük olarak veya her "serbest bırakılan" derlemede veya her derlemede artırılabilir. İki yapı arasında sadece yapı numarası ile farklılık gösteren ve tipik olarak birlikte iyi çalışabilen küçük farklılıklar olabilir.

Son sayı genellikle revizyon numarasıdır. Çoğu zaman bu, otomatik bir oluşturma işlemi tarafından veya test için "bir kerelik" fırlatma yapıları oluştururken kullanılır.

Artırdığınızda sürüm numaralarınız size bağlıdır, ancak her zaman artar veya aynı kalmalıdır . Tüm bileşenlerin aynı sürüm numarasını paylaşmasını sağlayabilir veya yalnızca değiştirilen bileşenlerdeki sürüm numarasını artırabilirsiniz.


0

Karmaşık bir yazılım parçasının sürüm numarası tüm paketi temsil eder ve parçaların sürüm numaralarından bağımsızdır. Gizmo sürüm 3.2.5, Foo sürüm 1.2.0 ve Bar sürüm 9.5.4 içerebilir.

Sürüm numaraları oluştururken bunları aşağıdaki gibi kullanın:

  1. İlk sayı ana sürümdür. Kullanıcı arayüzünde önemli değişiklikler yaparsanız veya mevcut arayüzleri kırmanız gerekirse (kullanıcılarınızın arayüz kodlarını değiştirmek zorunda kalacakları), yeni ana sürüme geçmelisiniz.

  2. İkinci sayı, yeni özelliklerin eklendiğini veya bir şeyin dahili olarak farklı çalıştığını göstermelidir. (Örneğin Oracle veritabanı, veri almak, çoğu şeyi daha hızlı ve bazı şeyleri yavaşlatmak için farklı bir strateji kullanmaya karar verebilir.) Mevcut arayüzler çalışmaya devam etmeli ve kullanıcı arayüzü tanınabilir olmalıdır.

  3. Sürüm numaralandırma yazılımı yazan kişiye bağlıdır - Oracle beş (!) Grup kullanır. Oracle sürümü 10.1.3.0.5 gibidir. Üçüncü gruptan itibaren, yalnızca hata düzeltmeleri veya işlevlerde küçük değişiklikler yapmalısınız.


0

daha az değişken olanlar major.minor için ilk ikisi olacaktır, bundan sonra derleme, revizyon, sürüm, herhangi bir özel algoritmaya (bazı MS ürünlerinde olduğu gibi)


0

Her kuruluşun / grubun kendi standardı vardır. Önemli olan, seçtiğiniz notasyona bağlı kalmanızdır, aksi takdirde müşterileriniz karışacaktır. Normalde 3 sayı kullandığımı söyledikten sonra:

x.yz.bbbbb. Burada: x: ana sürümdür (büyük yeni özellikler) y: küçük sürüm numarasıdır (küçük yeni özellikler, UI değişiklikleri olmadan küçük iyileştirmeler) z: hizmet paketidir (temel olarak xy ile aynıdır ancak bazı hata düzeltmeleri ile bbbb: yapı numarasıdır ve sadece "about box" dan müşteri desteği için diğer ayrıntılarla gerçekten görülebilir. bbbb ücretsiz biçimdir ve her ürün kendi kullanabilir.


0

İşte kullandığımız şey:

  1. İlk sayı = Genel sistem dönemi. Her iki yılda bir değişir ve tipik olarak teknoloji, müşteri özellikleri veya her ikisinde de temel bir değişikliği temsil eder.
  2. İkinci sayı = veritabanı şeması revizyonu. Bu sayıdaki bir artış bir veritabanı geçişi gerektirir ve bu nedenle önemli bir değişiklik (veya sistemler çoğalır ve bu nedenle veritabanı yapısının değiştirilmesi dikkatli bir yükseltme işlemi gerektirir). İlk sayı değişirse 0 olarak sıfırlanır.
  3. Üçüncü sayı = sadece yazılım değişikliği. Veritabanı şeması değişmediği için, bu genellikle bir istemci tarafından istemci bazında uygulanabilir. İkinci sayı değişirse sıfırlanır.
  4. Subversion sürüm numarası. TortoiseSVN aracını kullanarak bunu otomatik olarak derleme üzerine yerleştiriyoruz. Bu sayı asla sıfırlanmaz, sürekli artar. Bunu kullanarak her zaman herhangi bir sürümü yeniden oluşturabiliriz.

Bu sistem bize iyi hizmet ediyor çünkü her sayının net ve önemli bir işlevi var. Diğer takımların büyük sayı / küçük sayı sorusu (bir değişikliğin ne kadar büyük olduğu) ile boğuştuğunu gördüm ve bunun faydasını görmüyorum. Veritabanı revizyonlarını izlemeniz gerekmiyorsa, sadece 3 veya 2 haneli bir sürüm numarasına gidin ve hayatı kolaylaştırın!


0

sürüm: v1.9.0.1

nerede-

. v, sürümün kısaltmasıdır. Kuruluşunda benimsenen terminolojiye bağlı olarak şirkete göre değişir. 1.9.0.1 gibi bazı organizasyonlarda sessiz kalabilir

. 1, ana sürümü gösterir, uygulama yığınları, altyapı (platform) veya açıkta kalan ağlar arayüzündeki mimari modifikasyonda güncellenecektir

. 9 inceler minör, ui, api, veritabanı vb. Gibi yeni bileşenler ekleme gibi etkinliklerde güncellenecektir; belirli bir mimari altında

. 0 özelliği gösterir, mevcut bileşenlerde (ui, api, veritabanı vb.) Yapılacak geliştirmelerde güncellenir

. 1, tüm faz majör, minör ve özellik boyunca inşa sayacını gösterir. Ayrıca üretim sonrası sürüm düzeltmeleri içerir.

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.