Calendar Versioning - 日历化版本
文章目录
介绍
Versioning gets better with time.版本随着时间的推移会变得更好。
CalVer 不是基于任意数字,而是基于项目发布日期的版本控制约定,与 语义化版本 2.0.0 | Semantic Versioning 类似。
主干开发
主干开发就是指开发人员将所有改动提交到主要的分支上的活动。
主干开发有如下三个好处。
- 确保所有的代码被持续集成。
- 确保开发人员及时获得他人的修改。
- 避免项目后期的“合并地狱”和“集成地狱”。
——《持续交付》
主干开发实际上存在着一条主线,所有人都围绕着主线进行工作。目的就是为了持续地交付。
心智模型
主干开发的心智模型非常简单,所有人只关注改动提交后与主线是否能成功集成在一起,功能是否正确。
现实世界中,其实也存在着一条所有人都熟悉的主线:时间。因此通过使用时间作为版本号,可以说是一个自然而然的事情。
实际开发中的项目会使用的许多不同领域的组件,如果通过日历化版本进行管理,可以非常清楚地了解哪些组件过期了。
特点
并不像语义化版本提供了一个严格的版本控制方案,日历化版本让你自己根据需要制定符合自己要求的版本控制方案。
其他的特点官网用一些软件的实际例子介绍了一下,建议自行阅读。
例子
以下产品使用了日历化版本:
- Unity
- Ubuntu
- JetBrains 公司的一系列产品
产品使用日历化版本的好处真是太明显了:它可以不断地提示用户使用的版本要过期了,极大地促进了订阅制的发展。
翻译
日历化版本有这么多的优点,因此我决定将其翻译为中文,让更多的人了解它:
有兴趣的人可以帮忙审校一下。