1. CNCF 毕业标准 v1.3
每个 CNCF 项目都有一个相关的成熟度级别。拟议的 CNCF 项目应说明其首选的成熟度级别。一个项目被接受为孵化或毕业需要三分之二的绝对多数。如果没有绝大多数选票进入毕业项目,则任何毕业选票将重新计为进入孵化项目的选票。如果没有绝大多数选票进入孵化项目,则任何毕业或孵化选票都将重新计为赞助进入沙盒项目。如果没有足够的赞助进入沙盒阶段项目,该项目将被拒绝。这个投票过程称为回退投票。
每个成熟阶段的标准如下所述,并且有一个单独的项目提案流程。
孵化和毕业项目可以访问 cncf.io/projects 上列出的所有资源,但如果有竞争,通常会优先考虑更成熟的项目。
1.1. 沙盒阶段
要在沙盒中被接受,项目必须满足一下条件
详细过程参见 CNCF Sandbox Guidelines v1.0。
1.2. 孵化阶段
注:孵化阶段是我们期望对项目进行全面 尽职调查 的阶段。
要进入孵化阶段,项目必须满足沙盒阶段的要求以及:
- 记录至少三个独立的直接采用者在生产中成功使用它,根据 TOC 的判断,这些采用者具有足够的质量和范围。采纳者的定义参见 https://github.com/cncf/toc/blob/main/FAQ.md#what-is-the-definition-of-an-adopter。
- 拥有健康数量的提交者。提交者被定义为具有提交位的人;即,可以接受对部分或全部项目的贡献的人。
- 展示大量持续的提交和合并贡献。
- 由于这些指标可能会根据项目的类型、范围和规模而有很大差异,因此 TOC 对足以满足这些标准的活动水平有最终判断
- 清晰的版本控制方案。
- 清楚地记录安全流程,解释如何向项目报告安全问题,并描述项目如何提供更新版本或补丁来解决安全漏洞
- 规范必须至少有一个公共参考实现。
1.3. 毕业阶段
要从沙盒或孵化状态毕业,或要将新项目作为毕业项目加入,项目必须满足孵化阶段标准以及:
- 有来自至少两个组织的提交者。
- 已获得并保持核心基础设施倡议最佳实践徽章。
- 已完成独立的第三方安全审计,并发布了与以下示例类似范围和质量的结果(包括解决的关键漏洞):https://github.com/envoyproxy/envoy#security-audit 并且所有关键漏洞都需要毕业前解决。
- 明确定义项目治理和提交者流程。提交者流程应涵盖整个提交者生命周期,包括入职和离职或退休标准。这最好放在 GOVERNANCE.md 文件中,并引用 OWNERS.md 文件,显示当前和名誉提交者。
- 明确定义项目维护人员的标准、流程和离职或退休条件;或可能代表项目与 CNCF 互动的人。维护者列表最好存储在 MAINTAINERS.md 文件中,并至少每年审核一次。
- 至少为主要回购(例如,项目网站上的 ADOPTERS.md 或徽标)提供项目采用者的公开列表。对于规范,有规范实施的采纳者列表。
- 获得 TOC 的绝大多数投票以进入毕业阶段。如果项目能够证明足够成熟,则可以尝试直接从沙盒转移到毕业。项目可以无限期地处于孵化状态,但通常预计会在两年内毕业。