Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Update Graduation Requirements + CII Levels #196

Closed
caniszczyk opened this issue Feb 12, 2019 · 10 comments
Closed

Update Graduation Requirements + CII Levels #196

caniszczyk opened this issue Feb 12, 2019 · 10 comments

Comments

@caniszczyk
Copy link
Contributor

On the last TOC call there was a call to look at updating the graduation requirements and also to look at the various CII levels: https://github.com/cncf/toc/blob/master/process/graduation_criteria.adoc

One idea was to potentially have the incubating level require the "silver" level for CII and graduated "gold" level:

https://github.com/coreinfrastructure/best-practices-badge/blob/master/doc/other.md#silver-passing1-criteria
https://github.com/coreinfrastructure/best-practices-badge/blob/master/doc/other.md#gold-passing2-criteria

On the next TOC call, we will have one of the main CII authors to go over the levels and ask any questions.

@JustinCappos
Copy link
Contributor

JustinCappos commented Feb 12, 2019 via email

@mattklein123
Copy link
Contributor

As much as I am a supporter of the CII badging program, I think it would be a mistake to have the silver and gold criteria required for CNCF projects.

I agree. My feeling is that we need a blended badge, or we should work with the CII folks to make modifications to the existing levels. From my perspective, some of the requirements in basic should be in higher levels, and some of the requirements from higher levels should be in the basic level (or whatever level we choose CNCF graduated projects to adhere to).

My specific requests for graduated projects above basic CII would be:

  • Define/document project governance (from Silver, already called out in CNCF requirements)
  • "Bus factor" of 2 or more (from Silver, already essentially called out in CNCF requirements for multiple orgs and maintainers)
  • Pick & follow coding standards (from Silver, at least some sort of documented style guide and optimally automated style checking/fixing where available in CI, e.g., clang-format, gofmt, etc.)
  • Statement coverage 90%+ (from Gold, as CII says, high statement coverage is not indicative of a good test suite, but low test coverage is indicative of a bad test suite so still useful IMO)
  • At least 100% of all modifications are reviewed by another (Gold only calls for 50%. I think this is not sufficient and any graduated project must require code reviews from at least one other person, optimally a person from a different org to avoid forcing through org specific changes).
  • Have a security review (internal or external) (from Gold. I think security reviews are dubiously useful, but like code coverage, it can't hurt and should flush out obvious issues)
  • Have a reproducible build / CI (from Gold, table stakes IMO)

@ultrasaurus
Copy link
Member

Generally agree with @mattklein123 -- we want to encourage projects to create a resilient, diverse community of contributors (which seems to be reserved for "Gold" in CII)

On security, we've been talking about creating some guidance about projects being aware of their own security concerns via self-assessment and peer review. We came up with a presentation template for projects to communicate what prospective users or integrators might need to know about the security implications of adopting the project, and we were planning to invite some projects to present to our collective of security experts to see if it works well as a part of a security audit process.

There are a bunch of things we can do in CNCF (with limited # of projects and established community) that are beyond what CII can offer, so we can consider taking a more nuanced approach to some of the "higher level" badging criteria.

@jbeda
Copy link
Contributor

jbeda commented Feb 19, 2019

One other idea for graduation criteria -- a documented and reasonable support policy. Not sure what we want there but we want to make sure that at least N previous versions (or N months after a version released) will receive critical (including security) bug fixes.

@timothysc
Copy link
Member

@quinton-hoole ^ This is exactly what we were talking about during our LTS conversation.

@mattklein123
Copy link
Contributor

One other idea for graduation criteria -- a documented and reasonable support policy. Not sure what we want there but we want to make sure that at least N previous versions (or N months after a version released) will receive critical (including security) bug fixes.

Joe, I like this idea, but I think we should talk through what this means from a resourcing perspective. I.e., this requires some type of release management, branch management, cherry picking, etc. which can end up being a non-trivial amount of effort. We have shied away from doing this on Envoy because we have no one that has shown interest in this yet. So, like the idea, but concerned about funding/time.

@mattklein123
Copy link
Contributor

(Also, to clarify, lots of people ask for this on Envoy, so we would love it to happen if we could fund it.)

@bgrant0607
Copy link
Contributor

As I mentioned during the meeting, one reason to work with CII is to broaden the impact beyond our direct projects. One motivation is that our projects depend on many other projects. Dependencies will be our weakest link if we don't address them.

@bgrant0607
Copy link
Contributor

The small numbers of projects with silver and gold badges suggests to me that those criteria should be easy to change

@amye
Copy link
Contributor

amye commented Dec 14, 2021

Closing as we've updated guidelines more recently

@amye amye closed this as completed Dec 14, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

8 participants