Every CNCF project has an associated maturity level. Proposed CNCF projects should state their preferred maturity level. A two-thirds supermajority is required for a project to be accepted as incubating or graduated. If there is not a supermajority of votes to enter as a graduated project, then any graduated votes are recounted as votes to enter as an incubating project. If there is not a supermajority of votes to enter as an incubating project, then any graduated or incubating votes are recounted as sponsorship to enter as an sandbox project. If there is not enough sponsorship to enter as an sandbox stage project, the project is rejected. This voting process is called fallback voting.
Projects of all maturities have access to all resources listed at https://cncf.io/projects but if there is contention, more mature projects will generally have priority.
沙箱阶段
Sandbox Stage
进入沙箱阶段,项目必须至少有2位TOC赞助。有关详细过程,请参阅 CNCF沙箱指南1.0版本。
To be accepted in the sandbox a project must have at least 2 TOC sponsors. See the CNCF Sandbox Guidelines v1.0 for the detailed process.
Note: The incubation level is the point at which we expect to perform full due diligence on projects.
进入孵化阶段,项目必须满足沙箱阶段要求以及:
To be accepted to incubating stage, a project must meet the sandbox stage requirements plus:
记录至少有三个独立的最终用户在生产中成功使用了项目,经过TOC的判断,认为有足够的质量和范围。
Document that it is being used successfully in production by at least three independent end users which, in the TOC’s judgement, are of adequate quality and scope.
拥有健康数量的提交者。提交者的定义是具有提交代码的人;即是可以针对项目部分或全部接受贡献的人。
Have a healthy number of committers. A committer is defined as someone with the commit bit; i.e., someone who can accept contributions to some or all of the project.
展示大量和持续的提交和合并的贡献。
Demonstrate a substantial ongoing flow of commits and merged contributions.
Since these metrics can vary significantly depending on the type, scope and size of a project, the TOC has final judgement over the level of activity that is adequate to meet these criteria.
毕业阶段
Graduation Stage
从沙箱或孵化状态毕业,或者作为一个新项目加入作为一个毕业项目,项目必须符合孵化阶段标准以及:
To graduate from sandbox or incubating status, or for a new project to join as a graduated project, a project must meet the incubating stage criteria plus:
Have completed an independent and third party security audit with results published of similar scope and quality as the following example (including critical vulnerabilities addressed): https://github.com/envoyproxy/envoy#security-audit and all critical vulnerabilities need to be addressed before graduation.
Explicitly define a project governance and committer process. This preferably is laid out in a GOVERNANCE.md file and references an OWNERS.md file showing the current and emeritus committers.
至少在主要仓库提供项目采用者的公开列表(例如,ADOPTERS.md文件或项目网站上的徽标)。
Have a public list of project adopters for at least the primary repo (e.g., ADOPTERS.md or logos on the project website).
Receive a supermajority vote from the TOC to move to graduation stage. Projects can attempt to move directly from sandbox to graduation, if they can demonstrate sufficient maturity. Projects can remain in an incubating state indefinitely, but they are normally expected to graduate within two years.