版本说明

未匹配的标注

Yii版本控制

本文总结了Yii的版本控制策略,我们当前的版本控制策略是 语义化版本 的一种变体。

在核心开发团队中,我们已经多次强调了保持 2.0.x 发行包向下兼容的重要性。但是,理想很丰满,现实很骨感。关于BC是什么,请参阅 向下兼容 文档的详细描述。

总之,我们的 Yii 2 版本控制策略如下:

版本号

版本号的格式为 2.x.y.z,对于 z0 的版本,可以跳过z

这里没有讨论未知的 Yii 3,因为我们希望它像 2.0 而不是 1.0。我们预计这种情况每3到5年才会发生一次,这取决于外部技术的进步(比如 PHP 从 5.0 升级到 5.4)。

2.X.0: 主版本

向后兼容性破坏版本,其中包含可能破坏 BC 的主要特性和更改。从早期版本升级可能不是一件小事,但一个完整的升级指南将可用。

  • 主要包含新特性和bug修复
  • 包含从补丁发布中合并的小功能和 bug 修复
  • 可能包含破坏 BC 的更改,这些更改记录在 UPGRADE-2.X.md 的文件中
  • 发布周期约为 12 个月或更长时间
  • 需要预发行版: 2.X.0-alpha, 2.X.0-beta, 2.X.0-rc
  • 需要大量的新闻发布和营销工作

2.x.Y: 次要版本

次要版本,主要与 BC 兼容。理想情况下,我们希望它们只包含不影响向后兼容性的更改。然而,无法总是保持所有内容 100% 与 BC 兼容, 因此,更新日志会记录在 UPGRADE.md 中。实际上,自 2.0.x 版本发布频率越来越高以来,我们也在添加一些小功能,以便用户能更早地使用它们。

  • 主要包含 bug 修复和增强(#enh)
  • 应该基本上是向后兼容的,以确保无需担心升级。只有少数例外是允许的,这些例外在 UPGRADE.md 中有记录
  • 发布周期约为 1 - 2 个月
  • 不需要预发行版( alpha,beta,RC )
  • 应该经常合并回主分支(至少每周手动一次)
  • 伴随着新闻公告,项目的官网将会更新它

2.x.y.Z: 补丁版本

补丁版本,应该是 100% 与 BC 兼容的,只包含错误修复。没有新闻公告或项目站点更新(除非包含重大/安全问题修复)。
发布过程大部分是无感的。

  • 只包含bug修复,不包含特性
  • 必须100%向后兼容,以确保无需担心升级。唯一的例外是安全问题可能需要破坏 BC
  • 发布周期大约是 1 - 2 周
  • 不需要预发行版( alpha,beta,RC )
  • 应该在发布时合并回主分

分支策略

  • master 分支是当前稳定的主版本及 2.0.x 系列版本的开发分支

  • 每个新的主要版本将在一个以版本号命名的分支上开发,例如 2.1

  • 一旦一个新的主要发行 2.n 准备好后,在 master 下,创建一个名为 2.(n-1).x 的维护分支。
    例如,如果 2.1.0 版本是稳定发布的,那么就会创建一个 2.0 分支,并且现在会在 master 上开发(cmp. composer 分支命名模式

  • 创建 tags 2.x.y.z2.x.y 分支,去标记补丁发布,当 2.x.y.0 发布时,0 将被忽略。

  • 2.n.x 维护分支上的更改,将不断地合并回 master

下图展示了在一段时间内更改提交历史记录的分支:

分支策略

发行

框架和官方扩展项目相互独立发布,即框架和扩展之间的版本号不匹配。应用模板总是和框架一起发布的。

上面描述的发布周期只适用于核心框架。扩展是按需发布的。
扩展很可能在很长一段时间内都没有新版本,因为它没有得到任何 bug 修复或增强。

💖喜欢本文档的,欢迎点赞、收藏、留言或转发,谢谢支持!
作者邮箱:zhuzixian520@126.com,github地址:github.com/zhuzixian520

本文章首发在 LearnKu.com 网站上。

上一篇 下一篇
zhuzixian520
讨论数量: 0
发起讨论 只看当前版本


暂无话题~