简体   繁体   English

语义版本控制自动化

[英]Semantic versioning automation

After I've read this article and another ones, I figure out versioning is a programmer decision , so I believe CI system isn't able to understand which's version of this package ( CI system isn't able to understand whether the pulled commit is a patch, a new feature ). 在我读完这篇文章和其他文章之后,我发现版本控制是一个程序员的决定 ,所以我相信CI系统无法理解这个软件包的哪个版本( CI系统无法理解拉出的提交是否是补丁,新功能 )。

However, a programmer isn't able to know how to link the patch (bug, feature and so on) to a release built number identification . 但是, 程序员无法知道如何将补丁(错误,功能等)链接到发布版本号识别

According to semantic versioning: 根据语义版本控制:

  • increment the patch version (eg from 2.3.4 to 2.3.5) when you only release bug fixes and the like 当你只发布bug修复等时,增加补丁版本(例如从2.3.4增加到2.3.5)
  • increment the minor version (eg from 1.3.2 to 1.4.0) when you add new features 添加新功能时,将次要版本增加(例如从1.3.2增加到1.4.0)
  • increment the major version (eg from 3.2.9 to 4.0.0) when you introduce breaking changes 当您引入重大更改时,将主要版本(例如从3.2.9增加到4.0.0)递增

My semantic verion is going to follow next pattern: 1.2.3+7489ab44d3 , where 1 is MAJOR version number, 2 is MINOR version number and 3 is patch or bug number. 我的语义版本将遵循下一个模式: 1.2.3+7489ab44d3 ,其中1是MAJOR版本号,2是MINOR版本号,3是补丁或错误号。 then the +7489ab44d3 will be the built job identification on CI system. 然后+7489ab44d3将成为CI系统上的建立工作识别。

So, the first part of this pattern depends of an human brain and the last one is under a CI system. 因此,这种模式的第一部分取决于人类大脑,最后一部分属于CI系统。

I've read also, it would be possible to use an issue tracker system in order to sort out each issue under a some kind of information and provide it to CI system. 我也读过,可以使用问题跟踪系统,以便根据某种信息对每个问题进行整理,并将其提供给CI系统。

Which is the best way for providing an automation in order to achieve that? 哪个是提供自动化以实现这一目标的最佳方式?

We are using plugin to do it. 我们正在使用插件来做到这一点。

https://wiki.jenkins-ci.org/display/JENKINS/Version+Number+Plugin https://wiki.jenkins-ci.org/display/JENKINS/Version+Number+Plugin

We know what is the version based upon the branch name and based upon it we generate the appropriate build number. 我们知道基于分支名称的版本是什么,并基于它我们生成适当的构建号。

Its a separate task in the build procedure and you can achieve it with several systems and plugins. 它是构建过程中的一个单独任务,您可以使用多个系统和插件来实现它。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM