2016-11-29 107 views
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这样的自由文本版本字段)。 –