Skip to content

Commit 13da240

Browse files
rgreggmchmarny
authored andcommitted
Proposal: Update for Knative Governance [WIP] (#1017)
* Update for governance proposal * Add credit to Kubernetes source doc * Adding the TBD seats with my proposed allocations. * Clean up formatting * Clarify meeting frequency * Clarify voting requirements * Update w/ feedback * Clarify who to contact * Updates from feedback * Add committee term duration * Define procedure for changing charter * Rebase on master * Fix location of repo guidelines * Fix page index * Remove extranous sample files
1 parent b9c4445 commit 13da240

File tree

5 files changed

+222
-59
lines changed

5 files changed

+222
-59
lines changed

contributing/README.md

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,19 +22,21 @@ Other Documents
2222

2323
- [Code of Conduct](./CODE-OF-CONDUCT.md) - all contributors must abide by the
2424
code of conduct
25-
- [Contributing to Knative](./CONTRIBUTING.md) - guidelines and advice on
26-
becoming a contributor
25+
- [Values](./VALUES.md) - shared goals and values for the community
26+
- [Contributing to Knative](./CONTRIBUTING.md) - guidelines and advice on becoming
27+
a contributor
2728
- [Working Groups](./WORKING-GROUPS.md) - describes our various working groups
28-
- [Working Group Processes](./WORKING-GROUP-PROCESSES.md) - describes how
29-
working groups operate
29+
- [Working Group Processes](./WORKING-GROUP-PROCESSES.md) - describes how working
30+
groups operate
31+
- [Steering Committee](./STEERING-COMMITTEE.md) - describes our steering committee
3032
- [Technical Oversight Committee](./TECH-OVERSIGHT-COMMITTEE.md) - describes our
3133
technical oversight committee
32-
- [Steering Committee](./STEERING-COMMITTEE.md) - describes our steering
33-
committee
3434
- [Community Roles](./ROLES.md) - describes the roles individuals can assume
3535
within the Knative community
3636
- [Reviewing and Merging Pull Requests](./REVIEWING.md) - how we manage pull
3737
requests
38+
- [Repository Guidelines](./REPOSITORY-GUIDELINES.md) - how we create and remove
39+
core repositories
3840

3941
## Introduction
4042

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
# Knative Repository Guidelines
2+
3+
This document outlines a structure for creating and associating code repositories
4+
with the Knative project. It also describes how and when repositories are removed.
5+
6+
## Core Repositories
7+
8+
Core repositories are considered core components of Knative. They are utilities, tools,
9+
applications, or libraries that form or support the foundation of the project.
10+
11+
Core repositories are all those located under the
12+
[github.com/knative organization](https://github.com/knative).
13+
14+
### Core Repository Requirements
15+
16+
* Repository must live under github.com/knative/project-name
17+
* Must adopt the Knative Code of Conduct
18+
* All code projects must use the Apache License version 2.0.
19+
* Documentation repositories must use Creative Commons License version 4.0.
20+
* All OWNERS must be members of the Knative community.
21+
* Repository creation must be approved by the Technical Oversight Committee.
22+
23+
## Removing Repositories
24+
25+
As important as it is to add new repositories, it is equally important to prune
26+
repositories when necessary. See [Grounds for removal](#grounds-for-removal).
27+
28+
It is important to the success of Knative that all Knative repositories stay
29+
active, healthy, and aligned with the scope and mission of project.
30+
31+
### Grounds for removal
32+
33+
Core repositories may be removed from the project if they are deemed _inactive_.
34+
Inactive repositories are those that meet any of the following criteria:
35+
36+
* There are no longer any active maintainers for the project, and no replacements can be found.
37+
* All PRs and issues have gone un-addressed for longer than six months.
38+
* There have been no new commits or other changes in more than a year.
39+
* The contents have been folded into another actively maintained project.
40+
41+
### Procedure for removal
42+
43+
When a repository has been deemed eligible for removal, we take the following steps:
44+
45+
* A proposal to remove the repository is brought to the attention of the Technical Oversight Committee
46+
through a GitHub issue posted in the [docs](https://github.com/knative/docs) repo.
47+
* Feedback is encouraged during a Technical Oversight Committee meeting before any action is taken.
48+
* Once the TOC has approved of the removal, if the repo is not moving to another actively maintained project:
49+
* The repo description is edited to start with the phrase "[EOL]"
50+
* All open issues and PRs are closed
51+
* All external collaborates are removed
52+
* All webhooks, apps, integrations, or services are removed
53+
* GitHub pages are disabled
54+
* The repo is marked as archived using GitHub's archive feature
55+
* The removal is announced on the knative-dev mailing list
56+
57+
This procedure maintains the complete record of issues, PRs, and other contributions. It leaves
58+
the repository read-only and makes it clear that the repository is retired and no longer maintained.
59+
60+
---
61+
62+
Contents of this page are adopted from the
63+
[Kubernetes repository guidelines](https://github.com/kubernetes/community/blob/master/github-management/kubernetes-repositories.md),
64+
which is licensed under Apache License 2.0.
65+
66+
Except as otherwise noted, the content of this page is licensed under the
67+
[Creative Commons Attribution 4.0 License](https://creativecommons.org/licenses/by/4.0/),
68+
and code samples are licensed under the
69+
[Apache 2.0 License](https://www.apache.org/licenses/LICENSE-2.0).

contributing/SLACK-GUIDELINES.md

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -27,16 +27,15 @@ project, and includes all communication mediums.
2727

2828
## Admins
2929

30-
- @mchmarny
31-
- @isdal
32-
- @dewitt
30+
Members of the [Technical Oversight Committee (TOC)](TECH-OVERSIGHT-COMMITTEE.md) and
31+
[Knative Steering Committee (KSC)](STEERING-COMMITTEE.md) are also the administrators for
32+
the Knative Slack instance.
3333

3434
Slack admins should make sure to mention this in the “What I do” section of
3535
their Slack profile, as well as for which time zone.
3636

37-
To connect: please reach out in the #slack-admins channel, mention one of us in
38-
the specific channel where you have a question, or DM (Direct Message) one of us
39-
privately.
37+
To connect: please reach out in the #slack-admins channel or DM (Direct Message)
38+
a member of the [KSC](STEERING-COMMITTEE.md) or [TOC](TECH-OVERSIGHT-COMMITTEE.md).
4039

4140
### Admin Expectations and Guidelines
4241

contributing/STEERING-COMMITTEE.md

Lines changed: 134 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -5,65 +5,156 @@ weight: 40
55
type: "docs"
66
---
77

8-
The Knative Steering Committee (SC) defines, evolves, and defends the vision,
9-
values, mission, and scope of the project. _The Steering Committee is a
10-
work-in-progress._
8+
The Knative Steering Committee (KSC) is the ultimate authority for the Knative
9+
project, and governs all aspects of the project.
10+
11+
The governance of Knative is an open, living document, and will continue to
12+
evolve as the community and project change. We expect over time we will adapt
13+
the way we run this committee, based on feedback from the community.
1114

1215
- [Charter](#charter)
16+
- [Delegated authority](#delegated-authority)
17+
- [Committee Meetings](#committee-meetings)
1318
- [Committee Mechanics](#committee-mechanics)
1419
- [Committee Members](#committee-members)
20+
- [Allocation of seats](#allocation-of-seats)
21+
- [Decision process](#decision-process)
22+
- [Changes to the charter](#changes-to-the-charter)
23+
- [Getting in touch](#getting-in-touch)
1524

1625
## Charter
1726

18-
- Non-technical project oversight
19-
20-
- Define policy for the creation and administration of community groups,
21-
including [Working Groups](./WORKING-GROUPS.md) and Committees.
22-
23-
- Define and evolve project governance structures and policies, including
24-
project role assignment and contributor promotion.
25-
26-
- Approve members of the Tech Oversight Committee.
27-
28-
- Management of project assets
29-
30-
- Control access to, establish processes regarding, and provide a final
31-
escalation path for any Knative repository.
27+
1. Define, evolve, and promote the vision, values, mission, and scope of the project.
28+
1. Define and evolve project governance structures and policies, including
29+
project roles and how collaborators become members, approvers, leads,
30+
and/or administrators. This includes policy for the creation and
31+
administration of [working groups](./WORKING-GROUPS.md) and committees.
32+
1. Steward, control access, delegate access, and establishes processes regarding,
33+
all Knative project resources and has the final say in the disposition of
34+
those resources.
35+
1. Manage the Knative brand and decide which things can be called "Knative" and
36+
how that mark can be used in relation to other efforts or vendors.
37+
1. Confirm/reject nominations to the KSC from organizations who are allocated seats.
38+
1. Confirm/reject nominations to the Technical Oversight Committee.
39+
1. Receive and handle reports about [code of conduct](./CODE-OF-CONDUCT.md)
40+
violations and maintain confidentiality.
41+
1. Receive security reports; work with the appropriate technical leads to
42+
accept or reject the report; maintain the private nature of such reports
43+
until disclosed to the broader community.
44+
1. Act as the final escalation point and decider for any disputes, issues,
45+
clarifications, or escalations within the project scope.
46+
47+
## Delegated authority
48+
49+
KSC may choose to delegate its authority to other committees as-needed. The
50+
committee currently recognizes this delegated authority for:
51+
52+
- Technical guidance is delegated to the [Technical Oversight Committee](./TECH-OVERSIGHT-COMMITTEE.md).
53+
54+
## Committee Meetings
55+
56+
KSC meets every two weeks, or as-needed. Meetings are held online.
57+
58+
Given the private nature of many of these discussions (e.g. privacy, private
59+
emails to the committee, code of conduct violations, escalations, disputes
60+
between members, security reports, etc.) meetings are held in private.
61+
62+
Meeting notes are available to members of the knative-dev mailing list
63+
(link to be added).
64+
65+
Questions and proposals for changes to governance are posted as issues in the
66+
[docs repo](https://github.com/knative/docs), and the KSC invites your feedback
67+
there. See [Getting in touch](#getting-in-touch) for other options.
68+
69+
## Committee members
70+
71+
Seats on the Steering Committee are held by an organization, not by the
72+
individual.
73+
74+
The committee was created as the project was in its infancy, in order to
75+
tackle governance and overall project strategy. Because of the nature of the
76+
project and funding required, it was decided that strong corporate leadership
77+
was necessary for the project to ensure velocity. As the project grows and
78+
matures the KSC will, from time to time, consider if this policy should be
79+
changed.
80+
81+
The current membership of the committee is currently (listed alphabetically by name):
82+
83+
|   | Member | Organization | Profile |
84+
| -------------------------------------------------------- | -------------- | ------------ | ---------------------------------------- |
85+
| <img width="30px" src="https://github.com/dewitt.png"> | DeWitt Clinton | Google | [@dewitt](https://github.com/dewitt) |
86+
| <img width="30px" src="https://github.com/mchmarny.png"> | Mark Chmarny | Google | [@mchmarny](https://github.com/mchmarny) |
87+
| <img width="30px" src="https://github.com/isdal.png"> | Tomas Isdal | Google | [@isdal](https://github.com/isdal) |
88+
| | TBD | Google | |
89+
| | TBD | IBM | |
90+
| | TBD | Pivotal | |
91+
| | TBD | Red Hat | |
92+
93+
There are currently four unfilled seats, as indicated by TBD.
94+
95+
### Allocation of seats
96+
97+
Seats on the steering committee are allocated based upon contribution
98+
to the project by an organization. No final decision has been made on the exact
99+
formula.
100+
101+
As the project continues to grow, we expect to add additional seats to the
102+
committee, ensuring that those contributing to the project are properly
103+
represented.
104+
105+
- After a seat is allocated to an organization, the organization shall nominate
106+
a candidate to be confirmed by KSC. The committee reserves the right to not
107+
confirm a candidate, in which the organization would need to nominate a new
108+
candidate
109+
- Members of the committee may step down at any time. When a member steps down,
110+
their organization shall nominate a new candidate.
111+
- If a member leaves their organization, the organization must nominate a new
112+
committee member to replace them following the nomination and confirmation
113+
process.
114+
- If an organization is unable to seat a candidate, the KSC reserves the right
115+
to reallocate the seat to another organization.
116+
- Changes to the number of seats, which company seats are allocated to, and
117+
nominations to the committee are confirmed by majority vote of the committee
118+
members.
119+
- In situations where the organization which holds a seat is no longer a viable
120+
entity (e.g. merger, dissolution, bankruptcy) the KSC will make a decision on
121+
how to reallocate that seat. Seats do not automatically transfer to any
122+
organization.
123+
- Members on the committee have a 1 year term from their confirmation, and may
124+
be reconfirmed to the committee at the end of their term.
125+
126+
## Decision process
127+
128+
The steering committee desires to always reach consensus.
129+
130+
Decisions are made in meetings when a quorum of the members are present and may
131+
pass with majority of the committee supporting it.
132+
133+
Quorum is considered reached when at least half of the members are present.
32134

33-
- Guided by the TOC for normal business.
135+
In case of extended absence, the organization of the absent member may appoint
136+
a single delegate from the same company during the absence.
34137

35-
- Control and delegate access to and establish processes regarding other
36-
project resources/assets not covered by the above, including web sites and
37-
their domains, blogs, social-media accounts, etc.
138+
## Changes to the charter
38139

39-
- Manage the Knative brand to decide which things can be called “Knative” and
40-
how that mark can be used in relation to other efforts or vendors.
140+
Changes to the KSC charter may be proposed via a Pull Request on the charter
141+
itself. Amendments are accepted with majority consent of the committee.
41142

42-
## Committee Mechanics
143+
Proposals and amendments to the charter are available for at least a period of
144+
one week for comments and questions before a vote will occur.
43145

44-
The committee's operation and charter may be changed by unanimous consent of
45-
committee members.
146+
## Getting in touch
46147

47-
In case of extended absence, an absent member will be considered to be in
48-
agreement after 8 days have passed since a proposal was accepted by all present
49-
members. An absent member may appoint a single delegate during absences.
50-
51-
<!-- TODO ## Committee Meeting -->
52-
53-
## Committee Members
54-
55-
The members of the Steering Committee are shown below. Membership in the SC is
56-
determined by current level of contribution to the project. Contribution is
57-
periodically reviewed to ensure proper recognition.
58-
59-
| &nbsp; | Member | Company | Profile |
60-
| -------------------------------------------------------- | -------------- | ------- | ---------------------------------------- |
61-
| <img width="30px" src="https://github.com/dewitt.png"> | DeWitt Clinton | Google | [@dewitt](https://github.com/dewitt) |
62-
| <img width="30px" src="https://github.com/mchmarny.png"> | Mark Chmarny | Google | [@mchmarny](https://github.com/mchmarny) |
63-
| <img width="30px" src="https://github.com/isdal.png"> | Tomas Isdal | Google | [@isdal](https://github.com/isdal) |
148+
If you'd like to reach out to the committee, please drop a note
149+
150+
This is a private discussion list to which all members of the committee have access.
64151

65152
---
66153

154+
Portions of this document are adapted from the
155+
[Istio Steering Committee](https://github.com/istio/community/blob/master/STEERING-COMMITTEE.md)
156+
documentation, which is licensed under the Apache License 2.0.
157+
67158
Except as otherwise noted, the content of this page is licensed under the
68159
[Creative Commons Attribution 4.0 License](https://creativecommons.org/licenses/by/4.0/),
69160
and code samples are licensed under the

contributing/WORKING-GROUP-PROCESSES.md

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -188,10 +188,12 @@ Leads from all affected working groups generally work together and come to an
188188
agreeable conclusion.
189189

190190
In all cases, remaining blocking issues can be raised to the
191-
[technical oversight committee](./TECH-OVERSIGHT-COMMITTEE.md) to help resolve
192-
the situation. To trigger an escalation, create an issue in the
193-
`knative/serving` repo and assign it to the
194-
**@knative/tech-oversight-committee** team.
191+
[technical oversight committee](./TECH-OVERSIGHT-COMMITTEE.md) to help resolve the
192+
situation. To trigger an escalation, create an issue in the project's
193+
repo and assign it to the **@knative/tech-oversight-committee** team.
194+
195+
The Steering Committee, as a last resort, provides the final escalation path
196+
for any repository or working group issue that cannot be resolved by the TOC.
195197

196198
---
197199

0 commit comments

Comments
 (0)