1. CNCF 项目生命周期
该政策描述了云原生计算基金会 (CNCF) 项目生命周期过程,从沙盒到归档等。它描述了一个项目可能被接纳的阶段以及给定阶段的标准和期望,以及项目从一个阶段转移到另一个阶段的验收标准。它还描述了评估和做出这些更改的年度审查流程。
项目进展,从一个阶段到另一个阶段的移动,允许项目以最适合它们的级别参与,因为它们处于生命周期中的位置。
项目在各个阶段间跨越是有一定的鸿沟,其中由沙盒跨越到孵化中最为困难。
1.1. 阶段 - 定义和期望
CNCF 项目具有沙盒、孵化或毕业的成熟度级别。已归档适用于不再积极开发的项目。成熟度水平是 CNCF 发出的关于什么样的企业应该采用不同项目的信号。项目通过向 CNCF 的技术监督委员会展示其可持续性来提高其成熟度:他们已采用、健康的变化率、来自多个组织的提交者、已采用 CNCF 行为准则,并已获得并维护 OpenSSF 最佳实践徽章。
1.1.1. 沙盒
CNCF 沙盒是早期项目的切入点,有四个目标:
- 鼓励公众关注可以为 CNCF 使命增值的实验或其他早期工作,并构建成功的孵化级项目的要素
- 如果(且仅当)需要这样做时,促进与现有项目的对齐
- 培养项目(例如通过 CNCF 服务台请求)
- 通过确保所有项目都遵守 CNCF 法律、行为准则和知识产权政策要求,消除采用和贡献可能存在的法律和治理障碍
1.1.2. 孵化
孵化项目可以访问 https://cncf.io/services-for-projects 中列出的所有资源,并在 CloudNativeCon 上占有一席之地。
1.1.3. 毕业
毕业项目标志着 CNCF 项目的最高成熟度。
1.1.4. 归档
存档的项目不再处于积极开发状态,只有在 TOC 投票后才会存档。
1.2. 项目提案流程
该治理政策规定了项目被 CNCF 接受的提案流程。对于寻求进入基金会的现有项目和将在 CNCF 内形成的新项目,该过程是相同的。
1.2.1. 项目提案要求:
- 沙盒项目:
在沙盒级别提交给 CNCF 的项目旨在作为早期项目的切入点,不需要进行尽职调查。
沙盒项目应该是 CNCF TOC 认为值得进行实验的早期项目。
- 旨在通过功能或互操作性库扩展一个或多个 CNCF 项目的新项目。
- 符合 CNCF 使命并为现有功能领域的新方法提供潜力的独立项目(或试图满足未满足的需求)
- CNCF 委托或批准的项目,包括 CNCF WG 合作的初始代码和“实验”项目
- 未来有实际加入CNCF孵化器并希望为其打下基础的任何项目
要申请加入沙盒,项目应使用此表格。TOC 将轮流审查,目前自 2020 年 6 月起每两个月审查一次。
- 项目毕业流程:沙盒到孵化
作为从沙盒转移到孵化过程的一部分,孵化项目需要进行尽职调查。尽职调查由 TOC 赞助商推动,在投票前有两周的时间征询公众意见。
标准:要进入孵化阶段,项目必须满足沙盒阶段的要求以及:
- 记录至少三个独立采用者在生产中成功使用它,根据 TOC 的判断,这些采用者具有足够的质量和范围。
- 拥有健康数量的提交者。提交者被定义为具有提交位的人;即,可以接受对部分或全部项目的贡献的人。
- 展示大量持续的提交和合并贡献。
- 由于这些指标可能会根据项目的类型、范围和规模而有很大差异,因此 TOC 对足以满足这些标准的活动水平有最终判断
- 清晰的版本控制方案。
- 规范必须至少有一个公共参考实现。
跟踪目前在孵化阶段考虑的项目:https://github.com/cncf/toc/projects/7
- 项目毕业流程:孵化到毕业
希望从孵化阶段转移到毕业阶段的项目应该打开一个 PR 确认以下标准:
- 有来自至少两个组织的提交者。
- 已获得并保持 OpenSSF 最佳实践徽章。
- 已完成独立的第三方安全审计,发布的结果范围和质量与此示例相似,其中包括所有关键漏洞以及所有需要在毕业前解决的关键漏洞。
- 明确定义项目治理和提交者流程。提交者流程应涵盖整个提交者生命周期,包括入职和离职或退休标准。这最好放在 GOVERNANCE.md 文件中,并引用 OWNERS.md 文件,显示当前和名誉提交者。
- 明确定义项目维护人员的标准、流程和离职或退休条件;或可能代表项目与 CNCF 互动的人。维护者列表最好存储在 MAINTAINERS.md 文件中,并至少每年审核一次。
- 至少为主要回购(例如,项目网站上的 ADOPTERS.md 或徽标)提供项目采用者的公开列表。对于规范,有规范实施的采纳者列表。
- 请包括基于毕业模板的一页简短叙述,不超过 500 字。
在这里跟踪从孵化到毕业的项目:https://github.com/cncf/toc/projects/6
- 归档项目
开源项目有一个生命周期,有时项目会由于各种原因变得不活跃。在某些情况下,项目可能不再希望得到 TOC 的支持,或者 TOC 可能不再希望推荐使用某个项目。存档标准 在对存档项目的提案进行投票时,TOC 成员可能希望考虑该项目是否继续满足 CNCF 接受的标准。TOC 也可能会查看项目中的活动级别 ( https://all.devstats.cncf.io/d/53/projects-health-table?orgId=1 ),尽管重要的是要注意两者之间存在差异在一个不再受到太多关注但稳定的成熟项目与一个不活跃的项目之间。
投票过程
要存档项目:
- 必须向 TOC 回购提出提案
- TOC 将通知项目维护者、CNCF 最终用户社区和更广泛的社区所有归档提案
- 在通知维护者之后,该提案必须保持开放状态至少进行 2 周的讨论。
- 必须在 TOC 的 2/3 批准下完成投票
归档过程
归档 CNCF 项目意味着什么?
CNCF 将不再通过服务台为项目提供支持
CNCF 将在线列出已归档的项目
- 归档项目的商标和域名仍由 CNCF 和 Linux 基金会托管
- CNCF 可以提供文档更新等服务来帮助过渡用户。
- 不再为该项目提供其他CNCF营销活动
1.3. 年度审查程序
沙盒项目须接受 TOC 的年度审查。这旨在成为一个轻量级流程,以确保项目步入正轨,并获得所需的支持。
您的年度审查应回答以下问题:
- 包括指向您项目的 devstats 页面的链接。我们将寻找持续或增加贡献活动的迹象。请随意添加评论,为我们将在 devstats 上看到的数字和图表增添色彩。
- 您有多少维护人员,他们来自哪些组织?(如果合适,请随意链接到现有的 MAINTAINERS 文件。)
- 您对收养了解多少,自您上次审核/加入 Sandbox 以来,情况发生了怎样的变化?如果您可以列出作为您项目采用者的公司,请这样做。(如果合适,请随意链接到现有的 ADOPTERS 文件。)
- 自上次审查以来,该项目的目标执行情况如何?(如果您出于正当理由改变了目标,我们不会惩罚您。)
- 该项目目前的目标是什么?例如,您正在开发主要的新功能吗?还是您专注于采用或文档?
- CNCF 如何帮助您实现即将到来的目标?
- 您认为您的项目符合孵化条件吗?
基于这次审查,TOC 将投票决定是否继续赞助 Sandbox 中的项目。如果投票未达到简单多数,我们将与您讨论存档或其他后续步骤。
此外,TOC 可能会建议您申请孵化阶段。这需要额外的工作和尽职调查,因此从这个轻量级的年度审查中直接转移到孵化是不可能的结果。
一个项目在它仍然处于活动状态时无限期地留在沙盒中是可以的,但是如果一个项目真的停滞不前,我们可以通过存档来节省每个人的精力。