git - 如果 Git Workflow 具有增量版本控制的功能,为什么我们需要语义版本控制?
问题描述
我目前正在学习如何在 Jenkins/Maven/Git 中为我的项目实现语义版本控制,我今天读了这篇文章,似乎我们可以使用 Gitflow 自动获得递增版本控制,那么使用语义版本控制有什么意义呢?
我对所有这些都是新手,仍在试图弄清楚它们之间的关系,并且我在网上搜索了几天,没有关于如何实现SV的示例或教程,我也阅读了这篇文章,我了解什么是SV但仍然不知道如何将它链接到 Jenkins/Maven/Git。我找到了一个名为 semantic-versioning-plugin 的 Jenkins 插件,但找不到与如何实现它相关的任何内容。
我还尝试更改 Jenkinsfile 中的配置,但它只会在每次推送到 Git 后更改 build_number,但这不是我想要的,我希望版本遵循 SV 中的规则。
如果有人可以解释或给我一个例子,那就太好了,这样我就可以看看。非常感谢。
解决方案
SemVer 用于通知您的客户有关更新的上下文。因此,如果您的软件当前具有该版本1.0.0
并且您想要发布更新,您可以使用以下选项来增加版本:
- 如果您刚刚修复了一些错误,请增加PATCH ( )。
1.0.1
- 如果您添加了一些新功能,请增加MINOR ( )。
1.1.0
- 如果您删除了某些功能或引入了重大更改,请增加MAJOR ( )
2.0.0
这样,您的客户就可以确切地知道会发生什么,他们甚至可以自动化更新过程。
要在您的工作流程中实施此模式,您只需在每次发布更新时手动增加版本。但是您也可以(并且可能应该)使用自动为您执行此操作的工具。大多数工具使用git 标签和提交消息或手动触发器的组合来实现这一点。
也许这对您来说可能很有趣:https ://blog.armesto.net/automatically-versioning-your-application-on-jenkins-x/
如果您想了解有关 SemVer 的更多信息,我也可以推荐Stephan Bönnemann的演讲:https ://www.youtube.com/watch?v=tc2UgG5L7WM
推荐阅读
- ios - 当应用程序打开时应用程序不在内存中时如何调用 openURLContexts?
- excel - VBA:如何等到excel下载完成?
- python - 打印列表中的元素块
- html - 如何修复此 WCAG 错误“此表单控件具有空白标签或标题。”
- oracle - Oracle sql developer 触发器错误 ORA-04088: 执行触发器 'SYSTEM.LRES_PROTOKOLL' 期间出错
- c# - 从特定节点构建树
- ffmpeg - 使用 puppeteer 对页面进行截图,并使用 ffmpeg 从截图图像中生成视频。如何制作流畅的视频?
- postgresql - 如何使用卷从 docker 中的转储或 sql 文件中恢复数据库?
- xamarin - Xamarin Forms Navigation.PushAsync 仅工作一次
- trim - 删除第一个前导零