İlk sürüm olarak ne kullanılmalı? [kapalı]


122

Projelerime genellikle 1.0.0 sürümüyle başlıyorum. Bir şeyler bir araya gelir gelmez, onu 1.0.0 olarak yayınlayıp 1.1.0 ile devam ediyorum.

Bununla birlikte, bu kullanışlı olmasına yol açar, ancak yazdığım çoğu şeyin tam 1.0.0 sürümünü tam olarak içermemesine neden olur. Daha sonra özellikler ekliyorum ve 1.6.0 civarında iyi bir sürüme ulaşıyorum. Çoğu proje, 1.0.0.1 sürümüm kadar kullanılabilir olacak olan 0.1.0 sürümüyle başlar.

Ne yapmayı önerirsin? 1.0.0 mı yoksa 0.1.0 mı?

Son numara sadece bu arada hata düzeltme sürümleri içindir. 1.0.0'ı 1.0 olarak ve 0.1.0'ı 0.1 olarak düşünebilirsiniz, bu sizin için daha kolay.


1
"Anlamsal versiyonlama" ( semver.org ) hakkında yeni öğrendim , hemen hemen yapmak istediğim şey bu. Ancak, API'ler oluşturmuyorum ve bu API'lerden bahsediyor, bu nedenle 1.0.0 tavsiyesi gerçekten geçerli değil.
Noarth


Yanıtlar:


-24

Sürüm belirlemem kurulum tarafından yönlendirilir. Eski sürümlerin yerini almasını istiyorum, bu yüzden bana anlamlı gelen sıçramalarla artırmaya devam ediyorum.

Ancak bazen, özellikle kodu herkese açık bir şekilde yayınlıyorsanız, sürüm oluşturma müşteri tarafından yönlendirilir.

Sizin kararınızsa, sizin için en iyi olanı yapın. 1.0'dan önceki sürümlerle ilgili bazı sorunlar yaşadım, bu yüzden bununla başlıyorum.


1
Cevabında gerçekten hiçbir şey açıklamıyorsun. Ne tür sorunlar yaşadığından bahsetmiyorsun, bu yüzden bunu tartışabiliriz. Versiyonların ne zaman ve neden müşteri tarafından çalıştırıldığını açıklamazsınız, ki bu zaten OP için geçerli değildir. Ve sürümlemenin nasıl ve neden kurulum tarafından yönlendirildiğini açıklamıyorsunuz. Bununla ne demek istiyorsun, cevap için önemli bir şekilde? İyi tanımlanmış bir cevap, her kararın eksilerini ve artılarını içermelidir, sadece belirsiz gerekçeler dahil ettiniz :)
Eksapsy

225

Semantik Sürüm 2.0.0 standart diyor ki:

Yapılması gereken en basit şey, ilk geliştirme sürümünüzü 0.1.0'da başlatmak ve ardından sonraki her sürüm için küçük sürümü yükseltmektir.

0.3.0'dan doğrudan 1.0.0'a gitmekte sorun yok. 0.23.0'da olmak da tamamen normaldir. 0.4.0'dan başlamak, daha önce yayınlanmış sürümlerin olduğunu öne sürdüğü için biraz tavsiye edilmez.

Ek olarak, 0.y.zhızlı yineleme için bir kenara bırakıldığına dikkat edin , böylece ilk geliştirme (ve dolayısıyla birçok kırılma değişikliği) sizi 142.6.0 gibi aptalca bir şeyde bırakmaz. Ana sürümü çarpmak yerine, 1.0.0'ı yayınlayana kadar her son değişiklikte küçük sürümü çarpın:

Ana sürüm sıfır (0.yz), ilk geliştirme içindir. Her şey her an değişebilir. Genel API kararlı kabul edilmemelidir.


Bu, kabul edilen cevap OLMALIDIR. Kabul edilen cevap olarak 16 olumsuz oyla bir cevap görmedim
Nader

Eğer npm kullanıyorsanız bir tuzak vardır. 0 ile başlarsanız, package.json içindeki düzeltme işareti "^" farklı davranacaktır. docs.npmjs.com/misc/semver#caret-ranges-123-025-004 ^ 0 yerine 0.x kullanabilirsiniz. Bu senaryo için json paketinde. Bu nedenle, 1.x'i başlatmak ve kullanmak biraz daha kolaydır.
Sam

9

Sürüm numarası tamamen size bağlıdır. Size mantıklı gelen şeyi yapın ve tutarlı olun. Hiç kimse 0 veya 0.0 veya 1.0 veya 1.1'den başlamanız gerektiğini söylemiyor.

Büyük programcılar sürüm numaralandırma sistemini yerel şakalar olarak kullandılar. Örnekler (Wikipedia):

TeX, sürüm 3'ten bu yana, sürüm numarasının asimptotik olarak π'ye yaklaşması için, güncellemelerin ondalık basamağın sonuna fazladan bir rakam eklenerek gösterildiği kendine özgü bir sürüm numaralandırma sistemi kullanmaktadır. Bu, TeX'in artık çok kararlı olduğu ve yalnızca küçük güncellemelerin beklendiği gerçeğinin bir yansımasıdır. TeX'in güncel sürümü 3.1415926'dır; en son Mart 2008'de güncellendi

METAFONT için:

Metafont, sayının her revizyonda asimptotik olarak e'ye yaklaştığı, TeX'e benzer bir versiyonlama sistemine sahiptir.

Son olarak, tam olarak bir sürüm numarası değil, ancak aynı derecede ilginç olan, Google'ın ilk halka arzının (IPO) 2.718.281.828 $ 'lık artış için SEC'e başvurmasıdır (e ~ 2.718 281828'e dikkat edin).

Demek istediğim: kalabalığı takip etmeniz gerektiğini düşünmeyin. Yaratıcı ve tutarlı olun.


6

Sanırım burada farklı faktörler devreye giriyor. Sürüm numarasının psikolojik / pazarlama etkisi (sürüm numarası sıklıkla arttı => $$$, insanlar 0.99 beta sürümünü satın almak istemiyor, vb.) Dikkate alınmalıdır. "Mantık" sürüm numaraları, büyük bir ekipte çalışırken yardımcı olabilir.

Kararsız sürümler için tek sayılara ve kararlı sürümler için çift sayılara sahip olmanın linux yöntemini seviyorum.


1

İlk kullanılabilir hazır versiyonumu aldığımda, ancak tam özellikli versiyonumu elde etmediğimde, normalde tam özellikli bir versiyona doğru ne kadar ilerlediğine karar vermeye çalışırım, bu nedenle örneğin ilk kullanılabilir özellik% 33 tamamlandığında versiyon numarası 0.3.0 veya benzer. Daha sonra özelliğe doğru ilerlediğimde, tam karşılık gelen sürümlere benzer şekilde sayılar verilir.

Ancak, geçmiş özelliğe geçtiğinizde, tam sürüm oluşturmanın değişmesi gerekir


3
Bu bir şekilde yalnızca 0.9.0'a kadar gidebileceğinizi ima ediyor, ancak 0.25.0 gibi devam eden birçok proje biliyorum.
Noarth

Son basamak kümesini küçük artımlı değişiklikler ve hata düzeltmeleri için kullanma eğilimindeyim ve orta basamak kümesini oldukça büyük değişiklikler için tutmaya eğilimliyim, bu nedenle ortadaki sayılar için hiçbir zaman çift basamaklı sayılara gitme ihtiyacım olmadı
Tristan

1

Bir npmpaket için sürüm numaralarını seçerken , package.json dönem aralıklarında listelenen bağımlılıklar için v1.0.0'ın altında çalışmayacağını unutmayın. Yani,

"dependencies": {
    "my-package": "^0.5"
}

eşdeğerdir

"dependencies": {
    "my-package": "0.5"
}

Semver aralıklarını kullanabilmek istiyorsanız veya başkalarının kullanmasına izin vermek istiyorsanız, 1.0.0 ile başlamak isteyebilirsiniz.


İlginç. Semver aralıklarının neden (veya nerede) 1.0.0'ın altında çalışmadığı konusunda daha fazla bilginiz var mı? Npm kayıt defterinde kullanılan bazı paketler 0.0.xolduğu için .
Remi

Npm milletinin neden bu kararı verdiğini veya npm sisteminde nerede yapıldığını / 1'den küçük sürümler için dönem aralıklarını desteklemek için neyin değiştirilmesi gerektiğini bilmiyorum. Ben de bilmek isterim!
henry

3
Bu kararı ^, "versiyonla uyumlu" anlamına geldiği için verdiler . Daha fazla ayrıntı burada . Semverde, 0.y.zilk geliştirme içindir ve herhangi bir değişiklik yveya zgeriye dönük uyumsuz olabilir. Örneğinizde ^0.5 := 0.5 := 0.5.x, bu nedenle bir aralıktır. Düzeltme işareti aralığı aralık içinde sizin için çalışmazsa 0.y.z, düzeltme aralıklarına ek olarak karşılaştırıcı, tire, x ve yaklaşık aralıklarını kullanabilirsiniz.
dosentmatter

0

Tipik olarak, sürümlemenin programcı için bir anlamı vardır. Büyük sayının artırılması, geriye dönük uyumluluğu engelleyen büyük değişiklikleri gösterebilir. Sürüm numarasındaki diğer sayılar, daha küçük özellik geliştirmelerini veya hata düzeltmelerini gösterebilir.

0.6.5 sürümünün eksik bir yüzüğü olduğundan endişeleniyorsanız, 1.0 sürümü altında pazarlamak isteyebilirsiniz. Pazarlama sürüm numaranızın dahili sürüm numaranızla aynı olması gerekmez. Örneğin Windows 7'nin sürüm numarası 6.1'dir.

Kişisel tercihim 0.1.0'dan başlamak ve oradan devam etmek.


0

Projeye bağlıdır. Basit komut satırı araçları için genellikle 0,9 [.0] civarında başlarım, çünkü onları yalnızca tamamlanmak üzereyken (veya beta testi için hazır olduklarında) yayınlamayı veya paketlemeyi düşünürüm. Daha karmaşık projeler 0.1 [.0] civarında başlar ve bazıları 1.0'ı bile görmez. 1.0'ı bir yayın sürümü (veya en azından yerel olarak test edilmiş bir beta veya sürüm adayı) olarak görüyorum ve buna göre plan yapıyorum.

Ekip projelerinde, ilk sürüm etiketini kim koyarsa karar verir :).


0

0.1.0 ile başlayıp oradan yukarı çıkıyorum. Bu, Xploration Yazan Adrian'dan uyarladığım şeydi, ancak ilk yıllarımda çok seyrek ve 1.0.0, 0.0.1 ve birkaç tane daha kullandım. Ancak 0.1.0'dan başlayıp oradan gitmenizi tavsiye ederim.

Per Semver, A için abc'de a ve c ayırın. İlk resmi sürümünüz ve C. Hata düzeltmeleri ve yamalar. Bunun nedeni, ana sürümün genellikle eski kodu kırmasıdır. Ve yamalar basitçe hataları düzeltir. Bu tamamen kişisel tercih, 0.99.0, 1.0.0'a gitmeniz gerektiği anlamına gelmez, vb. Bazılarının 0.218.42'ye kadar gittiğini gördüm.


-1

Arrieta'nın daha önce doğru bir şekilde yorumladığı gibi sürüm numaraları sizin için anlamlı olmalıdır .

Belki aşağıdaki gibi bir şey izlenebilir: İlk # belediye başkanı sürümüdür, İkinci # bazı özellikler eklenmiş aynı belediye başkanı sürümüdür ve Üçüncü # aynı özelliklere sahip ancak sabit hatalar veya küçük (ancak yeterince önemli) değişiklikler eklenmiş aynı belediye başkanı sürümüdür.

1.3.2 => 1. Sürüm, daha fazla özellik ve bazı hatalar giderildi.

Ancak, son kullanıcılar için bazıları son sürümler için büyük sayılara alışkındır.

Örneğin: Corel 8, 8.0.0, 8.0.1, 8.2.2, vb. İçin Corel 9, 9.0.0 için ... vb.

Ve daha çok pazarlama stratejileri hakkında daha fazlası: Örneğin Corel 15.0.2 yerine Corel X5.

Versiyon numarasının sizin için mi yoksa müşteri için mi olduğuna bağlı olduğunu söyleyebilirim.


-4

0.0.0 ile başlayın ve oradan devam edin.


4
Bu, gerçekten bir 0.0.0 sürümü yapacağınız anlamına mı geliyor? Yayınlayacağım ilk sayıyla başlıyorum.
Noarth

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.