跳到主要内容
版本: 最新版本-3.5

版本发布指南

版本命名详见版本控制文档。 请先阅读该页面以了解 majorminorpatch 版本控制。

发布计划

  • 每四个月发布一个 minor 版本,分别在 1 月/2 月、5 月/6 月、9 月/10 月发布。

  • 维护最新的三个 minor 版本(minor 是点分隔版本中的第二个数字,例如,在 3.4.2 中,4 是 minor 版本)。

    由于每四个月发布一个 minor 版本,因此预计一个 minor 版本最多支持一年。

  • 在维护中的 minor 版本中,每隔 2-3 周发布一个 patch 版本。

Pull Request 类型

StarRocks 中的每个 pull request 都应以类型命名,包括 featureenhancementbugfix

Feature

  • 定义:Feature 是一种数据库中以前不存在的新功能或特性。 它添加了新的行为或显着扩展了现有功能。
  • 示例
    • 添加一种新的数据结构类型(例如,一种新的表类型或索引类型)。
    • 实现一种新的查询语言功能(例如,一种新的 SQL 函数或运算符)。
    • 引入一个新的 API 端点或接口以与数据库进行交互。

Enhancement

  • 定义:Enhancement 是对现有功能或特性的改进。 它不会引入全新的行为,而是使现有功能更好、更快或更高效。
  • 示例
    • 优化查询执行计划的性能。
    • 改进数据库管理工具的用户界面。
    • 通过添加更细粒度的访问控制来增强安全功能。

Bugfix

  • 定义:Bugfix 是对现有代码中的错误或缺陷的更正。 它解决了阻止数据库正常或按预期运行的问题。
  • 示例
    • 修复在某些查询条件下发生的崩溃。
    • 更正查询返回的不正确结果。
    • 解决内存泄漏或资源管理问题。

Cherry-pick 规则

我们为 minor 版本定义了一些状态,以辅助 cherry-pick 管理。 您可以在 .github/.status 文件中找到版本状态。

例如,在本文档发布时,StarRocks 3.4 版本处于 feature-freeze 状态,而 3.3 版本处于 bugfix-only 状态。 要验证这一点

git switch branch-3.3
cat .github.status
bugfix-only
  1. open:可以合并所有类型的 pull request,包括 feature、enhancement 和 bugfix。
  2. feature-freeze:只能合并 enhancement 和 bugfix pull request。
  3. bugfix-only:只能合并 bugfix pull request。
  4. code-freeze:除了关键 CVE 修复之外,不能合并任何 pull request。

minor 版本状态会随着一些基线触发器而改变,如下所示,如果需要,也可以提前更改。

  1. 当创建 minor 版本分支时,它变为 open 并在发布之前保持 open 状态。
  2. 当发布 minor 版本时,它变为 feature-freeze
  3. 当发布下一个 minor 版本时,前一个 minor 版本变为 bugfix-only
  4. minor 版本保持 bugfix-only 状态,直到发布三个以上的 minor 版本,然后变为 code-freeze

示例

  • 创建 branch-5.1,此分支处于 open 状态,直到它通过发布候选版本并公开发布。
  • 一旦公开发布 5.1 版本,它将进入 feature-freeze 状态。
  • 一旦公开发布 5.2 版本,5.1 切换到 bugfix-only
  • 当所有版本 5.1、5.2、5.3 和 5.4 都发布时
    • 5.4 处于 feature-freeze 状态
    • 5.3 处于 bugfix-only 状态
    • 5.2 也处于 bugfix-only 状态
    • 5.1 处于 code-freeze 状态