From 4424803347bce14ee7fb52d595f4ea99cd041a0b Mon Sep 17 00:00:00 2001 From: Ed Robinson Date: Thu, 6 Mar 2025 11:25:40 -0800 Subject: [PATCH] Create 2025-03-06.md Draft for KServe Incubating Governance Review Signed-off-by: Ed Robinson --- .../assessments/projects/kserve/2025-03-06.md | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 governance/assessments/projects/kserve/2025-03-06.md diff --git a/governance/assessments/projects/kserve/2025-03-06.md b/governance/assessments/projects/kserve/2025-03-06.md new file mode 100644 index 00000000..c3e89362 --- /dev/null +++ b/governance/assessments/projects/kserve/2025-03-06.md @@ -0,0 +1,120 @@ +# KServe - Governance Review - Incubating + +What follows is a governance review and assessment for the KServe project. This review is carried out by members of the Governance Working Group of TAG Contributor Strategy. The review may have been done because of a change in maturity level for the project, at the request of the TOC, or as a request by the project itself. If requested by the project, the review will be provided to the project maintainers. Otherwise, the review will be submitted to the TOC for their follow-up. +Projects may ask TAG Contributor Strategy for assistance in resolving any issues uncovered by the review. The TAG is available via our [slack channel](https://cloud-native.slack.com/archives/CT6CWS1JN), [email](https://lists.cncf.io/g/cncf-tag-contributor-strategy), [GitHub](https://github.com/cncf/tag-contributor-strategy), or by joining our weekly meetings (listed on the [CNCF public calendar](https://www.cncf.io/calendar/)). + +## Summary and Assessment + +Status: Mostly Satisfactory + +* KServe requested a Governance Review for their Incubating application on Dec 18, 2024 +* All references to KServe documentation and repositories should be considered correct as at March 6 2025, and may have changed by the time you read this. + +## Executing the Assessment + +### Must-Fix Items + +The following issues have been identified that need to be resolved before advancing to Incubating: +* No issues were found that would be a blocker to Incubating status. + +### Points of Excellence + +The following aspects of governance are exemplary, and can be referenced as examples for other projects to copy: +* The onboarding documentation for new contributors is detailed and very welcoming. Many projects have trouble attracting new contributors. KServe is an excellent example for how to lower the barrier for adoption +* Use of a Community project to store all community documentation is a great practice for making it simpler for project members and adopters to find information they are looking for + +### Areas for Improvement + +Over the next year, the project should work on the following issues to improve its governance, these are considered non-blocking: + +**Priority items** + +* Document the TSC (technical steering committee) lifecycle: How someone applies to be a member of TSC, how the voting is performed, the requirements to remain a member, code-of-conduct violations or other events that would mean immediate expulsion, in other cases removing/voting out a member +* Add more information to the contributor and committer, lifecycles: similar to TSC lifecycle, the requirements for remaining a member, the process for voting a member out +* The reasons for documenting the lifecycles for all three roles is to ensure survivability of the project \- processes are in place for the project to continue if one or more founders stepped away; reassurance for adopters appropriate written governance is in place + +**Miscellaneous issues** + +* The ownership documentation has contradictions. It appears the intention was for LF to create a separate company for each of the series of projects, but they are currently owned by one company. We recommend documenting this ownership more clearly, and providing contact information for the LF Series Manager (who is the escalation point for TSC issues) + +## Review + +The following review primarily consists of an audit on the project's self-assessment in their Incubation. [https://github.com/cncf/tag-contributor-strategy/issues/750](https://github.com/cncf/tag-contributor-strategy/issues/750) + +### Governance Summary + +KServe is owned by [LF Projects, LLC](https://lfprojects.org/policies/) a Delaware company \#6447521, set up to administer a series of Linux Foundation projects, with each project governed independently. KServe is also part of Linux Foundation subfoundation. The KServe project administers the CNCF KServe project, and has no other interests or assets. + +Within the KServe project, there are three roles: + +* Technical Steering Committee: Technical oversight of the project (including the maintainer role) +* Committers: Authority to commit to the project +* Contributors: Anyone who contributes code, docs, artifacts to the project, without committing + +There is a documented ladder for moving from [contributor \-\> committer](https://github.com/kserve/community/blob/23f78c76d55652a7b86b7237ddb888f092cbc6d1/CONTRIBUTING.md#becoming-a-committer). There is no formal documentation for moving from committer \-\> technical steering committee, but the project has followed a transparent process in the past. There is no formal documentation for a process to remove a contributor, committer, or TSC member (such as violating the code of conduct). For decision making: [there are written rules for how decisions are made.](https://github.com/kserve/community/blob/23f78c76d55652a7b86b7237ddb888f092cbc6d1/KSERVE-TECHICAL-CHARTER.md#3-tsc-voting) Tie breaking decisions at the TSC level are made by the LF series manager. + +There are 14 maintainers listed in the [KServe/KServe maintainers file](https://github.com/kserve/kserve/blob/master/OWNERS) as reviewers. + +### Governance Evolution + +The project was founded with a governance structure, and there have been no major changes or evolution in governance. There are two areas to focus on: + +* Formalizing the committer \-\> TSC process (if I am a committer, what do I need to do to initiate the process? What are the steps? How long does it take?) +* Clarifying the project ownership. The LF Projects charter, and the KServe technical charter are not clear on whether KServe is an independent LLC, or part of LF Projects LLC, and what this means for people using KServe. + +### Discoverability + +All governance documentation \+ contributor guides are stored in a [Community project,](https://github.com/kserve/community) making them simple to find. The documentation is well written, easy to understand, and the documents do not contradict each other. + +### Accuracy and Clarity + +The governance docs appear up to date. + +* [Community meetings:](https://github.com/kserve/community?tab=readme-ov-file#community-meeting) 3rd Thursday of the month. Documented, recorded and on the CNCF calendar +* [Vendor neutrality](https://github.com/kserve/community/blob/main/KSERVE-TECHICAL-CHARTER.md#3-tsc-voting): The governance clearly documents that each member of the TSC votes equally “one member one vote”. There are no provisions for company-affiliation quotas (EG: No company may not have more than n employees on the TSC) + +### **Decisions and Role Assignments** + +Project documentation covers the "happy day" lifecycle for contributors and committers. + +* See [Contributing a feature](https://github.com/kserve/community/blob/23f78c76d55652a7b86b7237ddb888f092cbc6d1/CONTRIBUTING.md#becoming-a-committer), and [Becoming a committer](https://github.com/kserve/community/blob/23f78c76d55652a7b86b7237ddb888f092cbc6d1/CONTRIBUTING.md#becoming-a-committer) +* There is no formal documentation for becoming a maintainer (Technical Steering Committee), although the project has followed a transparent process for voting on a new TSC member in the past +* Similar to other projects, security issues have a private reporting email. It is not transparent if these are received by the TSC or a separate group. + +### Maintainers and Maintainer Lifecycle + +Project has 14 maintainers, documented in the [owners](https://github.com/kserve/kserve/blob/master/OWNERS) file. The company affiliations are not listed in the file, but are: Red Hat \- 4 people, Nutanix \- 3 people, Bloomberg \- 3 people, Idea2IT \- 2 people, SAP \- 1 person, Intuit \- 1 person. + +* The number of maintainers (TSC) is appropriate to the size and scope of the project +* The maintainer lifecycle is not formally documented +* Mechanisms for onboarding, keeping maintainer status, offboarding, forceably removing a maintainer are not documented + +### Ownership + +The code and doc ownership in Github appears to match the documented project ownership and roles + +### Code of Conduct + +The code of conduct links to the CNCF Code of conduct, as is common and reocmmended for most projects. + +### Subprojects + +KServe has 4 sub projects: + +* [https://github.com/kserve/kserve](https://github.com/kserve/kserve) (the main project) +* [https://github.com/kserve/modelmesh-serving](https://github.com/kserve/modelmesh-serving) +* [https://github.com/kserve/open-inference-protocol](https://github.com/kserve/open-inference-protocol) +* [https://github.com/kserve/models-web-app](https://github.com/kserve/models-web-app) + +None of these subprojects are considered as identifiability separate from the main project in ownership, operation, communication or alignment. + +### Contributors and Community + +As documented earlier, KServe has a simple contributor ladder, with three levels: contributor \-\> committer \-\> technical steering committee. The onboard to contributor is well documented in the contributing guide. The contributor \-\> committer is well documented. The committer \-\> TSC is not formally documented + +There is a clearly defined and discoverable process to submit issues or changes (part of the contributing guide) + +The project has several public communication channels (including Slack and public community meetings). The project also has a dedicated channel on its website: [https://kserve.github.io/website/latest/community/get\_involved/](https://kserve.github.io/website/latest/community/get_involved/) + +There have been 419 community contributions over the last 12 months (to 2 Mar 2025), according to [lfxinsights](https://insights.lfx.linuxfoundation.org/foundation/lf-ai-foundation/overview/github?project=kserve&routedFrom=Github&bestPractice=false&repository=https:%2F%2Fgithub.com%2Fkserve%2Fkserve&dateFilters=Last%2012%20Months&dateRange=2024-03-03%20to%202025-03-02&compare=PP&granularity=month&hideBots=true) +