Gibi bir ürün sürümü, v1.0.0.100
yalnızca yazılımın benzersiz bir üretim sürümünü değil, aynı zamanda söz konusu ürün için özellik kümelerini ve düzeltme aşamalarını tanımlamaya yardımcı olur. Şu anda bir ürünün nihai paketini / derlemesini / ikili sürümünü korumanın iki yolunu görüyorum:
Sürüm Kontrolü Bir yerde bir dosya sürüm numarasını saklar. Sürekli Entegrasyon (CI) derleme sunucusunda, gerekli olan tüm yazılım alanlarına (ikili dosyalar, yükleyici paketleri, yardım sayfaları, belgeler vb.) Uygulamak için bu iade edilmiş sürüm numarasını kullanan yazılımı derleyen bir komut dosyası olacaktır.
Çevre ve / veya yapı parametreleri. Bunlar sürüm kontrolü dışında tutulur (yani, enstantane / etiket / dalla ilişkilendirilmezler). Derleme komut dosyaları, sayıyı aynı şekilde dağıtır ve kullanır, ancak değeri farklı bir şekilde elde ederler ( kodun kaynak ağacına göre nereden alınacağını bilmesi yerine, derleme komut dosyasına sağlanır ).
İlk yaklaşımla ilgili sorun, ana hatları kullanarak birleşmeleri karmaşık hale getirmesidir. Aynı yazılımın 2 paralel yayınını hala koruyorsanız, sürüm son birleşmeden bu yana her ikisi de değiştiyse, iki ana hat arasında birleştiğinde çakışmaları çözeceksiniz.
İkinci yaklaşımla ilgili sorun uzlaşmadır. 1 yıl önce bir yayına geri döndüğünüzde, sürüm numarasını tanımlamak için yalnızca etiket bilgisine güvenirsiniz.
Her iki durumda da, CI derlemesinden önce bilinmeyen sürüm numarasının belirli yönleri olabilir. Örneğin, bir CI derlemesi programlı olarak gerçekten otomatik derleme numarası olan dördüncü bir bileşene yerleştirilebilir (ör. Daldaki 140. derleme). Ayrıca VCS’de bir revizyon numarası olabilir.
Bir yazılımın sürüm numarası ile yetişmenin en iyi yolu nedir? "Bilinen" parçalar daima VCS'de tutulmalı mı? Ve eğer öyleyse, ana hattaki çatışmalar bir sorun mu oluşturuyor?
Şu anda sürüm numaramızı CI yapım planında (Atlassian Bamboo) belirtilen ve sürdürülen parametrelerle koruyoruz. Şubemize katılmadan önce , CI inşaatı başlamadan önce master
sürüm numaralarının doğru şekilde ayarlandığından emin olmalıyız . Gitflow iş akışıyla ilgili olarak, sürüm numarası kaynak denetiminde izlenirse, sürümün release
hazırlanmasında şubemizi oluştururken düzgün şekilde kurulmasını garanti edebileceğimizi hissediyorum . KG, bu dalda nihai entegrasyon / duman / regresyon testini gerçekleştirecek ve imzalandığında, master
serbest bırakma taahhüdünde bulunan bir birleşme gerçekleşecek.
version.txt
bir sürümü tek satır içerir1.0.7
ve diğer1.2.0
kararlılığının o kadar da zor? Bu, birbirinden ayrılan iki şubeyi birleştirmedeki tek çatışmasa, kendimi çok şanslı görürüm. Ne sıklıkla görülür? Oluşursa, birleştirilmiş sürümün hangi sürüm numarasına sahip olması gerektiğini düşünmeniz zorunlu değil mi? (“Version” kelimesinin belirsiz kullanımı için özür dilerim.)