Skip to content

Commit

Permalink
Add graduation criteria
Browse files Browse the repository at this point in the history
  • Loading branch information
caniszczyk committed Dec 7, 2016
1 parent 88c4a7c commit 9037c28
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions process/graduation_criteria.adoc
@@ -0,0 +1,29 @@
== CNCF Graduation Criteria v1.0

Every CNCF project has an associated maturity level. Proposed CNCF projects should state their preferred maturity level. When a TOC vote is held on a proposed project entering CNCF, votes may either be for the project to enter as an inception, incubating, or graduated project, or not to enter at this time. A two-thirds supermajority is required for a project to be accepted. 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 votes to enter as an inception project. If there is not a supermajority to enter as an inception 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[https://cncf.io/projects] but if there is contention, more mature projects will generally have priority.

To be accepted to the inception stage, a project must:

* Add value to cloud native computing (i.e., containerization, orchestration, microservices, or some combination) and be aligned with the CNCF https://cncf.io/about/charter[charter].
* Have all code under an ASL 2.0 license, or another license explicitly approved by the Governing Board.
* Agree to transfer any relevant trademarks to CNCF and to assist in filing for any relevant unregistered ones. This means, for example, that Example, Inc. would need to call their microservices tool OpenExample (or similar) and support CNCF receiving a trademark for OpenExample, while Example could remain a trademark of Example, Inc. This assignment will be reversed if the project does not remain in the CNCF, as described below. Note that no patent or copyright assignment is necessary because the ASL 2.0 license provides sufficient protections for other developers and users.
* Every 12 months, each inception stage project will come to a vote with the TOC. A supermajority vote is required to renew a project at inception stage for another 12 months or move it to incubating or graduated stage. If there is not a supermajority for any of these options, using the fallback voting process defined above, the project is not renewed.
* In the case of an inception stage project that is not renewed with CNCF, the trademark will be returned to the project maintainers or an organization they designate.

To be accepted to incubating stage, a project must meet the inception stage requirements plus:

* 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

To graduate from inception or incubating status, or for a new project to join as a graduated project, a project must meet the incubating stage criteria plus:

* Have committers from at least two organizations.
* Have achieved and maintained a Core Infrastructure Initiative https://bestpractices.coreinfrastructure.org/[Best Practices Badge].
* Adopt the CNCF https://github.com/cncf/foundation/blob/master/code-of-conduct.md[Code of Conduct].
* 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.
* 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 inception 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.

0 comments on commit 9037c28

Please sign in to comment.