1

我們結合了GitHub,TeamCity,CodeReviews,Octopus deploy來管理我們的整個版本管理流程。我們開發網站和幾個內部使用的API。何時增加版本管理週期中的版本號

我們正在尋求更好地實現我們API的更好版本,並將使用Semver。

我的問題是,你在哪個階段給它分配一個版本號?

例子:

  • 在主目前的版本是1.2.1
  • 用戶創建分支(店2)以實現一些新的功能
  • 用戶部署店2到QA審查和註銷
  • 用戶將Branch2合併到主機中併發布到生產。

該版本應該在什麼階段增加到1.3.0?如果在進入QA的階段進行更新,則可能另一位開發人員同時創建了另一個功能分支,該分支經過測試並準備投入生產,比Branch2快得多 - 後者實際上應該是1.3。 0,而Branch2將在數週後推出到Production中[可能是1.4.0。

所以,我認爲版本號只應在QA簽署後才增加,並且在最終合併回到Master分支之前?

感謝您的時間提前 問候, dotdev

+0

版本號是否以任何方式影響二進制文件? –

+0

是的,版本號將是二進制文件 - 即版本號將被設置在Properites文件中。 – dotdev

回答

0

正如你形容我看到這些版本:

  • 1.2.1在主目前的版本是1.2.1
  • 1.3.0-alpha+branch2用戶創建分支( Branch2)實施一些新功能
  • 1.3.0-beta+branch2用戶將Branch2部署到QA中進行審覈和簽署
  • 1.3.0用戶將Branch2合併到Master並釋放到Production。

增加到下一個版本必須任何官方/生產發佈後立即完成。這是一個可以提供幫助的草圖。

feature       *-(1.3.0-beta+feature1)---*       *-(1.4.0-beta+feature2)-- 
           /       \      /
master -[v1.2.1]-(1.3.0-beta)-*-----------------------------*-[v1.3.0]-(1.4.0-beta)--*----- 
      \              \  
release  *----             *--- 

您手動應用標籤用方括號來表示的官方版本,而版本(正常括號)發生在帳戶標籤的歷史。

我建議看看精彩的GitVersion工具來幫助您管理計算。

+0

這很有趣....我需要檢查TeamCity,Nuget和Octopus是否都支持非數字版本號碼,即1.3.0-beta0009。有什麼想法嗎? – dotdev

+0

確實如果他們這樣做會很好,但唯一重要的是您可以輕鬆關聯數據。例如。工具X生成的標識符如'Rel2016-11-30T12.42',您可以將版本控制信息保存在relnotes.txt文件中,或者命名包或添加與該對象關聯的標籤/標籤(例如發佈管道)在工具中。 而且(我經常這樣做),所以構建標識符被附加到二進制文件中的版本號(我使用像AssemblyInformationalVersionAttribute這樣的自由文本版本字段)。 –