特性生命周期
本文档旨在明确在不同开发阶段(版本)中,特性和相应 API 的定义和区别。
每个版本都有不同的稳定性、支持时间以及升级到下一级别的不同毕业标准:
Alpha
该特性在后续版本中可能会以不兼容的方式进行更改/升级。
源代码将在发布分支/标签以及二进制文件中提供。
对该特性的支持可能随时停止,恕不另行通知。
该特性可能存在错误。
如果启用该特性,可能会在其他 API/特性中引发错误。
该特性可能未完全实现。
API 版本名称将类似于 v1alpha1、v1alpha2 等。每次升级时,后缀数字将增加 1。
毕业标准
- 每个特性都将从 alpha 级别开始。
- 不应破坏其他 API/特性的功能。
Beta
该特性在后续版本中可能不会以不兼容的方式进行更改/升级,但如果以不兼容的方式进行更改,则将提供升级策略。
源代码将在发布分支/标签以及二进制文件中提供。
对该特性的支持不会在未提前 2 个次要版本通知的情况下停止,并且将至少在接下来的 2 个次要版本中存在。
该特性将有少量错误。
如果启用该特性,不会引发其他 API/特性中的错误。
该特性将完全实现。
API 版本名称将类似于 v1beta1、v1beta2 等。每次升级时,后缀数字将增加 1。
毕业标准
- 应在 e2e 测试中至少有 50% 的覆盖率。
- 项目同意在至少接下来的 2 个次要版本中支持此特性,并在停止支持前提供至少 2 个次要版本的通知。
- 特性所有者应承诺确保在后续版本中的向后/向前兼容性。
GA
该特性在接下来的几个版本中不会以不兼容的方式进行更改/升级。
源代码将在发布分支/标签以及二进制文件中提供。
对该特性的支持不会在未提前 4 个次要版本通知的情况下停止,并且将至少在接下来的 4 个次要版本中存在。
该特性将不会存在重大错误,因为它将经过完全测试并进行 e2e 测试。
如果启用该特性,不会引发其他 API/特性中的错误。
该特性将完全实现。
API 版本名称将类似于 v1、v2 等。
毕业标准
- 应具有完整的 e2e 测试。
- 代码经过彻底测试,并被报告为非常稳定。
- 项目将至少在接下来的 4 个次要版本中支持此特性,并在停止支持前提供至少 4 个次要版本的通知。
- 特性所有者应承诺确保在后续版本中的向后/向前兼容性。
- 来自 Kmesh 维护者以及使用/交互该特性/API 的特性/API 所有者的共识。