在研发过程中,大家都知道"版本",但是不同的人对"版本"的理解是不同的。大家都知道很重要,但是往往容易被忽视,特别是在持续交付过程中,笔者认为相当重要。因为只要有变更,就会有版本控制,随之而来就是版本号设计,以及不同阶段如何使用版本号。
从产品管理和售卖的角度,这个版本只是对于外部发布有用,比如客户要了解发布版本的特性等等。简单说,这个“版本”是我们研发过程的最终的交付目标,往往和产品规划有关。
但是,达成这个交付目标,肯定是通过很多次代码提交,多次提测才能达成的。 那么过程中,需要一个唯一的ID来标记,研发过程每次构建的产出,并且要保证唯一性。这就是构建制品版本。
一般会用”时间戳“
,"svn/git commid‘,"环境tag"
来标记,这个都没错。
assemblyinfo
中,作为版本升级的兼容性判断在构建脚本中,预留占位符“packagename-${build_id}”, 这样你的部署脚本就可以做到了复用。
比如,在微服务多仓库构建过程中,也会出现版本号的使用场景,比如通过“指针方式”记录代码提交;在多服务协同开发过程中,这个也很重要。
还有在微服务的发布部署过程中,也会用到相关的版本号。
总的来说,版本号就是整个研发流程中的各项指标数据的枢纽。记住一点,通过“版本号”贯穿一起研发活动,不要忽视它。
因为只要代码提交,就会有变更,变更需要被追溯,这样质量才能得到有效监管,通过持续集成的方式,任何的 变化都能快速找到并修复。
另外,版本管理也是配置管理的重要实践之一,特别是对于大型团队或组织,版本的混乱,必然意味协同和管理的混乱和无序,效率也不会太高。