Skip to content

Latest commit

 

History

History
406 lines (319 loc) · 24.1 KB

STEERING-COMMITTEE.md

File metadata and controls

406 lines (319 loc) · 24.1 KB
title linkTitle weight type aliases
Knative steering committee
Steering committee
20
docs
/contributing/governance/
/contributing/steering-committee/
/contributing/tech-oversight-committee/

The Knative Steering Committee (KSC) is responsible for the general health of the Knative community, as well as establishing and coordinating other working groups.

The governance of Knative is an open, living document, and will continue to evolve as the community and project change.

Charter

  1. Define, evolve, and promote the vision, values, and mission of the project.
  2. Define and evolve project governance structures and policies, including project roles and how collaborators become members, approvers, leads, and/or administrators. This includes the creation and administration of working groups and committees.
  3. Coordinate and empower subcomponents of the Knative project, including ensuring compatibility between components, and developing long-term vision for the project's technical direction.
  4. Steward, control access, delegate access, and establish processes regarding all Knative project resources (including repositories and GitHub organizations), and provide the final say in the disposition of those resources.
  5. Coordinate with the CNCF regarding usage of the Knative brand and how that brand can be used in relation to other efforts or vendors.
  6. Define and evolve the scope of the Knative community and extensions, the lifecycle of community-maintained code and releases, and processes and standards for accepting project contributions.
  7. Receive and handle reports about code of conduct violations and maintain confidentiality.
  8. Receive security reports; work with the appropriate technical leads to accept or reject the report; maintain the private nature of such reports until disclosed to the broader community.
  9. Act as the final escalation point and decider for any disputes, issues, clarifications, or escalations within the project scope.

Delegated authority

KSC may choose to delegate its authority to other committees as-needed. The committee currently recognizes this delegated authority for:

Committee Meetings

KSC currently meets weekly, or as-needed. Meetings are open to public and held online.

Given the private nature of some of these discussions (e.g. privacy, private emails to the committee, code of conduct violations, escalations, disputes between members, security reports, etc.) some meetings are held in private.

Meeting notes are available to members of the knative-dev mailing list (note: these are accessible to members of the knative-users list as well). Public meetings will be recorded and the recordings made available publicly.

Questions and proposals for changes to governance are posted as issues in the community repo, and the KSC invites your feedback there. See Getting in touch for other options.

Committee members

Seats on the Steering Committee are held by an individual, not by their employer. The current composition of the Steering Committee consists of members elected to the Steering Committee in 2022 and 2023, and the members of the Technical Oversight Committee elected in 2022; this is a temporary measure until elections are held in 2024.

The current membership of the committee is currently (listed alphabetically by first name):

  Member Organization Profile Term Start Term End
Norris Sam Osarenkhoe * SVA @nrrso 2024-02-28 2025
Ali Ok Red Hat @aliok 2023-11-28 2025
Evan Anderson Stacklok @evankanderson 2023-11-28 2025
Naina Singh Red Hat @nainaz 2022-12-06 2024
Mauricio Salatino Diagrid @salaboy 2022-12-06 2024
David Hadas IBM @davidhadas 2023-09-12 2024
Dave Protasowski Independent @dprotaso 2021-05-26 2024
David Simansky Red Hat @dsimansk 2022-06-01 2024
Paul Schweigert IBM @psschwei 2022-09-28 2024
  • Norris holds the End User seat

Decision process

The steering committee desires to always reach consensus.

Decisions requiring a vote include: issuing written policy, amending existing written policy, creating, removing, or modifying a working group, all spending, hiring, and contracting, official responses to publicly raised issues, or any other decisions that at least half the members present decide require a vote

Decisions are made in meetings when a quorum of the members are present and may pass with at least half the members of the committee supporting it.

Quorum is considered reached when at least half of the members are present.

Getting in touch

There are three ways to raise issues to the steering committee for decision:

  1. Emailing the steering committee at [email protected]. This is a private discussion list to which all members of the committee have access.

  2. Open an issue on a knative repository and indicate that you would like attention from the steering committee.

  3. Asking a question on the #knative-toc-sc-questions channel on CNCF Slack.

Composition

The Steering Committee has between five (5) and seven (7) members. These seats are composed as follows:

  • Four (4) are elected Contributing Seats, open to any project contributor. Two (2) Contributing Seats are elected every year, and serve a two-year term. In the event of a vacancy, the Steering Committee may select a replacement to serve out the remainder of the term.

  • One (1) is an End User Seat appointed by the Steering Committee. The End User Seat serves until the next elected Steering Committee appoints a replacement in the two months after members are seated, as described below.

  • Up to two Selected Seats (2) are appointed by the Steering Committee to balance the set of skills on the Steering Committee. These seats serve a 1-year term, until Contributing Seats for the next Steering Committee election are seated.

Steering Committee contributing members serve for 2-year terms, staggered in order to preserve continuity. End user and selected members serve for 1-year terms. Every year two contributor seats are elected.

Limitations on Company Representation

No more than two contributing seats may be held by employees of the same organization (or conglomerate, in the case of companies owning each other). Additionally, the end user seat must belong to an employee from a different organization. No company may hold a majority (fifty percent or more) of the total Steering Committee seats through any combination of seats. If the results of an election result in greater than two employees of the same organization, the lowest vote getters from any particular employer will be removed until representation on the committee is down to two from that organization.

If employers change because of job changes, acquisitions, or other events, in a way that would violate the company representation rules above, sufficient members of the committee must resign until the composition rules are met. If it is impossible to find sufficient members to resign, all employees of that organization will be removed and new special elections held. In the event of a question of company membership (for example evaluating independence of corporate subsidiaries) a majority of all non-involved Steering Committee members will decide.

The above limits shall be relaxed for the temporary combination of the 2024 Steering and Technical Oversight Committees, with the limitation that the so-constituted committee may not pass any governance changes except by the abstention of Red Hat or IBM members such that the remaining voting member do not constitute a majority of the committee.

Election Procedure

Timeline

Steering Committee elections are held annually. Six weeks or more before the election, the Steering Committee will appoint Election Officer(s) (see below). Four weeks or more before the election, the Election Officer(s) will issue a call for nominations, publish the list of voters, and open the call for exceptions. One week before the election the call for nominations and exceptions will be closed. The election will be open for voting not less than two weeks and not more than four. The results of the election will be announced within one week of closing the election. New Steering Committee members will take office in December of each year on the date the results are announced.

Election Officer(s)

Six weeks or more before the election, the Steering Committee will appoint between one and three Election Officer(s) to administer the election. Elections Officers will be Knative community members in good standing who are eligible to vote, are not running for Steering in that election, who are not currently part of the Steering Committee and can make a public promise of impartiality. They will be responsible for:

  • Making all announcements associated with the election
  • Preparing and distributing electronic ballots
  • Judging exception requests
  • Assisting candidates in preparing and sharing statements
  • Tallying voting results according to the rules in this charter

Eligibility to Vote

Anyone who has at least 25 contributions in the last 12 months is eligible to vote in the Steering election. Contributions are defined as opening PRs, reviewing and commenting on PRs, opening and commenting on issues, writing design docs, commenting on design docs, helping people on slack, participating in working groups, and other efforts that help advance Knative the project.

This dashboard shows only GitHub based contributions and does not capture all the contributions we value. We expect this metric not to capture everyone who should be eligible to vote. If a community member has had significant contributions over the past year but is not captured in the stats.knative.dev dashboard, they will be able to submit an exception form to the Elections Officer(s) who will then review and determine whether this member should be eligible to vote. All exceptions, and the reasons for them, will be recorded in a log that will be available to Steering and the TOC.

The electoral roll of all eligible voters will be captured at knative/community/steering-elections/$YEAR/voters.md and the voters’ guide will be captured at knative/community/steering-elections/$YEAR/README.md, similar to the kubernetes election process and identical to the TOC election process.

We are committed to an inclusive process and will adapt future eligibility requirements based on community feedback.

Candidate Eligibility

Community members must be eligible to vote in order to stand for election (this includes voters who qualify for an exception). Candidates may self-nominate or be nominated by another eligible member. There are no term limits for KSC members.

To run for a Contributing seat, a candidate must additionally be at least a project Member as defined in ROLES.md.

Voting Procedure

Elections will be held using Elekto, an online voting tool created by CNCF intern Manish Sahani. The details for previous KSC elections can be found in the elections folder.

End User Seat

A person is eligible to serve in the end user seat if their organization is listed in the ADOPTERS file.

The end user seat is appointed by Steering Committee to serve for a 1-year term.

When the new Steering Committee members are seated in December after the elections for the Contributing Seats, the Steering Committee is responsible for appointing a new person to the end user seat.

The person filling the end user seat will take office in February.

Selected Seats

The Steering Committee shall have the discretion to appoint up to two additional members to the Steering Commitee to balance out the set of skills on the committee. (For example, if the current Steering Committee is lacking anyone with marketing background, it might choose to appoint a community member with thas expertise to a selected seat.)

Selected seats serve for a 1-year term, until the next Steering Committee Contributing Seats take office.

When new Steering Commitee members are seated in December after the elections for the Contributing Seats, the newly-constituted Steering Committee (consisting of the four Contributing Seats and the End-User Seat) may appoint additional Selected Seats. The Steering Committee is not required to fill these Selected Seats. The persons filling the Selected Seats will take office upon accepting the appointment.

Vacancies

In the event of a resignation or other loss of an elected KSC member, the candidate with the next most votes from the previous election will be offered the seat, provided that person otherwise qualifies to join the KSC. This process will continue until the seat is filled.

In case this fails to fill the seat, a special election for that position will be held as soon as possible, unless the regular KSC election is less than 7 weeks away. Eligible voters from the most recent election will vote in the special election. Eligibility will not be redetermined at the time of the special election. Any replacement KSC member will serve out the remainder of the term for the person they are replacing, regardless of the length of that remainder.

In the event of a resignation or other loss of an appointed end user KSC member, the KSC will appoint a new person to fill the end user KSC seat. In the event of a resignation or other loss of an appointed select KSC member, the KSC may choose whether to appoint a new person to fill the seat.

Changes to the charter

Changes to the KSC charter may be proposed via a PR on the charter itself. Amendments are accepted with majority consent of the committee as per the decision process outlined above.

Proposals and amendments to the charter are available for at least a period of one week for comments and questions before a vote will occur.

Authority, Facilitation, and Decision Making in Knative

Ideally most decisions will be made at the lowest possible level within the project: within individual working groups. When this is not possible, the Steering Committee can help facilitate a conversation to work through the contended issue. When facilitation by the KSC does not resolve the contention, the KSC may have to make a decision.

Note that if the KSC is called to resolve contended decisions regularly, it is a symptom of a larger problem in the community that will need to be addressed.

Emeritus Committee Members

Steering Committee

To recognize the folks that have served in the KSC in the past, below we list the previous members of the KSC (sorted by their 'Term End').

  Member Profile Term Start Term End
Dewitt Clinton @dewitt Bootstrap 2019
Mark Charmny @mchmarny Bootstrap 2019
Jaice Singer DuMars @jdumars 2019 2020
Donna Malayeri @lindydonna 2019 2020
Ryan Gregg @rgregg Bootstrap 2020
Tomas Isdal @isdal Bootstrap 2020
Alex Nicolau @anicolao 2020 2020
Ron Avnur @ronavn 2020 2020
Brenda Chan @bsnchan Bootstrap 2021
Michael Behrendt @mbehrendt Bootstrap 2021
Ville Aikas @vaikas 2020 2022
Paul Morie @pmorie 2020 2022
April Kyle Nassi @thisisnotapril Bootstrap 2022
Murugappan Chetty @itsmurugappan 2022 2023
Carlos Santana @csantanapr 2021 2023
Lance Ball @lance 2021 2023
Adolfo García Veytia @puerco 2023 2024

Technical Oversight Committee

The Technical Oversight Committee (TOC) was a separate committee responsible for setting the overall technical direction and roadmap of the project before 2024. In 2024, SC and TOC were merged into a single governance body.

To recognize the folks that have served in the TOC in the past, below we list the previous members of the TOC (sorted by their 'Term End').

  Member Profile Term Start Term End
Ville Aikas @vaikas Bootstrap 2020
Nghia Tran @tcnghia 2020 2021
Matt Moore @mattmoor Bootstrap 2021
Grant Rodgers @grantr 2020 2021
Markus Thömmes @markusthoemmes 2020-06-09 2021-12-16
Julian Friedman @julz 2021-05-26 2022-02-07
Roland Huß @rhuss 2021-02-16 2022
Matt Moore @mattmoor 2022-02-07 2022
Scott Nichols @n3wscott 2022-01-11 2022-09-27
Evan Anderson @evankanderson Bootstrap 2023-06-01
Zbynek Roubalik @zroubalik 2022-06-01 2023-07-31
Krsna Mahapatra @krsna-m 2023-06-01 2024

Portions of this document are adapted from the Istio Steering Committee documentation, the CNCF Charter, and other portions are copied from the Kubernetes Steering Committee, both of which are licensed under the Apache License 2.0.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License.