美文网首页
日历化版本 / Calendar Versioning

日历化版本 / Calendar Versioning

作者: hemiao3000 | 来源:发表于2021-09-22 08:11 被阅读0次

    CalVer 不是基于任意数字,而是基于项目发布日期 的版本控制约定

    版本随着时间的推移会变得更好。

    对于维护者,版本使我们在不断扩大的生态系统中 可以指定精确的依赖关系。对于卖家和推广者来说, 项目的版本是一个品牌的活力部分。对我们所有人来说, 版本使我们在升级到将来时可以参考过去。

    不同的项目使用不同的系统命名版本,但是常见的 实践已经浮现出来。例如,以点分隔的数字(例如, 3.1.4)就是全部。另一种常见的版本模式 包含一个基于时间的元素,通常是发布日期的一部分。

    这种基于日期的方法被称为 “日历化版本”(Calendar Versioning), 或者简称 CalVer。

    方案

    有多种日历化版本方案,长期被各种大小项目 使用。与其宣布某个方案为 CalVer,更重要的是 要认识到每个方案的可行性并 设计一个适合项目的方案。首先, 版本的各部分:

    • 主要 - 版本中的第一个数字。2 和 3 是 Python 的著名 主要版本。主要部分是基于日历的最常见组件。
    • 次要 - 版本中的第二个数字。7 是 Python 的最受欢迎的 次要版本。
    • 微小 - 版本中的第三个且通常是最终数字。有时 称为 “补丁” 部分。
    • 修饰符 - 可选的文本标记,例如 “dev”、“alpha”、“beta”、 “rc1”,依此类推。

    绝大多数现代版本标识符是由两个或 三个数字段组成,以及可选的修饰符。通常 建议不要使用四个数字段的版本。

    如下面的 样例学习 所示,项目 发现了不止一种有用的方法在版本中使用 日期。 作为对比,CalVer 并未像 “语义化版本” 那样选择单一方案, 而是引入了开发人员的 标准术语:

    • YYYY - 年份全称 - 2006、2016、2106
    • YY - 年份缩写 - 6、16、106
    • 0Y - 以零填充的年份 - 06、16、106
    • MM - 月份缩写 - 1、2 ... 11、12
    • 0M - 以零填充的月份 - 01、02 ... 11、12
    • WW - 星期(自年初开始)- 1、2、33、52
    • 0W - 以零填充的星期 - 01、02、33、52
    • DD - 日 - 1、2 ... 30、31
    • 0D - 以零填充的日 - 01、02 ... 30、31

    请注意,传统的递增版本号是从 0 开始, 而日期段是从 1 开始的,且年份缩写和以零填充的年份 是相对于 2000 年。还请注意,星期的使用 通常与月/日互斥。

    假定采用格里高利历,UTC的惯例也是如此。从技术上讲可以使用任何日历, 只要提供的项目声明使用哪一个。

    相关文章

      网友评论

          本文标题:日历化版本 / Calendar Versioning

          本文链接:https://www.haomeiwen.com/subject/ogswgltx.html