T-DOC
  • Laravel-11
  • Laravel-10
  • Laravel-6X
  • Laravel-5.5
Dcat-Admin
  • Yii2
  • 重构2
  • Laravel-11
  • Laravel-10
  • Laravel-6X
  • Laravel-5.5
Dcat-Admin
  • Yii2
  • 重构2
  • 前言

    • 关于 Yii
    • 从 Yii 1.1 升级
    • Yii 2.0 升级说明
    • 贡献者指引
    • 捐献和赞助
  • 版本管理

    • 发行说明
    • 版本说明
    • 更新记录
  • 快速入门

    • 安装 Yii
    • 目录结构
    • 部署
    • Hello world
    • 使用表单
    • 使用数据库
    • 使用 Gii 生成代码
    • 编辑器与 IDE
  • 核心架构

    • 请求生命周期
    • 单一入口
    • 应用主体
    • 组件
    • 属性
    • 事件
    • 行为
    • 配置
    • 别名
    • 类自动加载
    • 服务定位器
    • 依赖注入容器
  • 高级应用模板

    • 安装
    • 框架结构
    • 运行测试
    • 环境与配置
    • 自定义应用模板
  • 基础功能

    • 路由
    • 控制器
    • 过滤器
    • 请求
    • 响应
    • 模型
    • 视图
    • 模块
    • 小部件
    • 前端资源
    • 扩展
    • Sessions 和 Cookies
    • 错误处理
    • 日志
  • 数据库

    • 数据库访问对象(DAO)
    • 查询构造器
    • 活动记录
    • 数据库迁移
    • Redis
    • Sphinx
    • Elasticsearch
    • MongoDB
  • 安全

    • 认证
    • 授权
    • 加密
    • Email 认证
    • 验证码
    • 社会化登录
    • 密码
  • 进阶功能

    • 缓存
    • 发送邮件
    • HTTP 客户端
    • 国际化
    • 队列
    • 控制台应用
    • 助手类
    • 验证器
  • RESTful Web 服务

    • 快速入门
    • 资源
    • 控制器
    • 路由
    • 格式化响应
    • 认证
    • 速率限制(限流)
    • 版本化
    • 错误处理
  • 开发工具

    • 调试工具栏和调试器
    • 使用 Gii 生成代码

版本说明

Yii 中文文档 /

Yii版本控制

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

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

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

版本号

版本号的格式为 2.x.y.z,对于 z 为 0 的版本,可以跳过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.z 和 2.x.y 分支,去标记补丁发布,当 2.x.y.0 发布时,0 将被忽略。

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

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

分支策略

发行

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

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

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

Last Updated:
Contributors: Hans
Prev
发行说明
Next
更新记录