Skip to content

Commit 824c43a

Browse files
committed
{committee-}code-of-conduct*: add a code of conduct and construction
of CoC committee docs OWNERS: regenderate
1 parent d1ee180 commit 824c43a

File tree

12 files changed

+347
-3
lines changed

12 files changed

+347
-3
lines changed

OWNERS_ALIASES

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,12 @@ aliases:
66
wg-olm-leads:
77
- awgreene
88
- kevinrizza
9+
committee-code-of-conduct:
10+
- todo
11+
- todo
12+
- todo
13+
- todo
14+
- todo
915
## BEGIN CUSTOM CONTENT
1016
community-chairs:
1117
- dmueller2001

code-of-conduct.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
# Operator Framework Community Code of Conduct
2+
3+
Operator Framework follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md).
4+
5+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting
6+
the [Operator Framework Code of Conduct Committee](./committee-code-of-conduct) via <conduct@operatorframework.io>.

committee-code-of-conduct/OWNERS

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
# See the OWNERS file at https://github.com/operator-framework/community/blob/master/OWNERS
2+
3+
reviewers:
4+
- committee-code-of-conduct
5+
approvers:
6+
- committee-code-of-conduct
7+
labels:
8+
- committee/conduct
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
<!---
2+
This is an autogenerated file!
3+
4+
Please do not edit this file directly, but instead make changes to the
5+
sigs.yaml file in the project root.
6+
7+
To understand how this file is generated, see https://git.k8s.io/community/generator/README.md
8+
--->
9+
# Code of Conduct Committee
10+
11+
The Operator Framework Code of Conduct Committee (CoCC) is the body that is responsible for enforcing and maintaining the Operator Framework Code of Conduct.
12+
13+
The [charter](charter.md) defines the scope and governance of the Code of Conduct Committee.
14+
15+
## Members
16+
17+
* To Do (**[@todo](https://github.com/todo)**), TO DO Inc.
18+
* To Do (**[@todo](https://github.com/todo)**), TO DO Inc.
19+
* To Do (**[@todo](https://github.com/todo)**), TO DO Inc.
20+
* To Do (**[@todo](https://github.com/todo)**), TO DO Inc.
21+
* To Do (**[@todo](https://github.com/todo)**), TO DO Inc.
22+
23+
## Contact
24+
- Private Mailing List: conduct@operatorframework.io
25+
- [Open Community Issues/PRs](https://github.com/operator-framework/community/labels/committee%2Fcode-of-conduct)
26+
- GitHub Teams:
27+
- [@operator-framework/code-of-conduct-committee](https://github.com/orgs/operator-framework/teams/code-of-conduct-committee) - General Discussion
28+
29+
[subproject-definition]: https://github.com/operator-framework/community/blob/master/governance.md#subprojects
30+
<!-- BEGIN CUSTOM CONTENT -->
31+
32+
<!-- END CUSTOM CONTENT -->
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
# Bootstrapping Document for Operator Framework Code of Conduct Committee
2+
3+
This document (created by the Operator Framework community chairs) outlines what the Code of Conduct Committee (CoCC) is responsible for, how to create it, and the rough processes for them to get started.
4+
5+
## Objectives of the CoCC
6+
* Maintain the Code of Conduct (CoC) document and iterate as needed.
7+
* All CoC revisions must be approved by the community chairs.
8+
* Currently, we use the CNCF CoC. Any addendums or changes based off learnings in the Operator Framework community should be owned by this body of people, the Operator Framework Code of Conduct Committee (CoCC).
9+
* Determine and make transparent how CoC issues and incidents are reported and handled in the community.
10+
* Enforce the Code of Conduct within the Operator Framework community.
11+
* Discuss with parties affected
12+
* Come up with resolution
13+
* For moderation on a day-to-day basis, work with the existing community-management subproject under SIG Contributor Experience
14+
* Figure out how to keep and then keep a record of CoC reports and outcomes for precedent _This is something we are still actively discussing on how to do and is not fully hardened._
15+
16+
## Formation of the Code of Conduct Committee (CoCC):
17+
* The CoCC consists of 5 members. In the first election, the top 3 voted people will be appointed 2 year terms and the other 2 members will be appointed for a 1 year term.
18+
* CoCC members appointed for a 1 year term may be elected again the following year.
19+
* The community chairs are eligible to nominate people for the Code of Conduct Committee (CoCC). _This may change during the next election._
20+
* The community chairs votes on nominees for the CoCC
21+
* Characteristics and Guidance for nominating people for the CoCC:
22+
* Do not have to be part of the Operator Framework or CNCF community
23+
* Previous experience on an Ethics Committee or Code of Conduct Committee is appreciated
24+
* Has demonstrated integrity, professionalism, and positive influence within the community
25+
* Experience with the tools which we use to communicate (Zoom, Slack, GitHub, etc.) within the Operator Framework community is appreciated
26+
* Is generally a responsible human
27+
* The members of the Code of Conduct Committee (CoCC) will be public so the people who report CoC issues know exactly who they are working with.
28+
29+
## Upon appointment, the CoCC will:
30+
* Review the current Code of Conduct and propose revisions or addendums if necessary.
31+
* There is already work being done around making the CoC more enforceable, so this work will be carried forward in the CoCC.
32+
* Add an addendum to the CoC with instructions on how to contact the CoCC
33+
* Be briefed on past and current code of conduct issues within the Operator Framework community by people who have been dealing with these issues thus far
34+
* Revisit how code of conduct issues are reported and escalated and ensure these processes are visible and known to the community
35+
* Determine how they envision their process going forward. The community chairs will make the recommendation to the Code of Conduct Committee that they have a standing hour long meeting every other week for the first twelve months after they are appointed, but the CoCC can figure out what works for them.
36+
* Propose a method for electing/appointing future members of the committee to the community chairs if they choose.
Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
# Operator Framework Code of Conduct Committee Charter
2+
3+
## Mission/Purpose
4+
Our primary mission is creating and maintaining a safe and respectful community.
5+
Our role is to provide and enforce a well-considered viewpoint on what
6+
constitutes acceptable behavior within our community. The [Code of
7+
Conduct](https://github.com/operator-framework/community/blob/master/code-of-conduct.md)
8+
serves as the primary policy document and is supported with additional references
9+
and tools as needed. Since maintaining a safe environment is a very large part
10+
of what the committee does, we must carefully balance transparency of process
11+
with preserving the privacy of all individuals involved when an incident report
12+
is made to this committee or to any other community leader.
13+
14+
The committee understands how challenging these matters are for everyone
15+
involved, and that the process is never perfect by nature of its need to serve
16+
everyone in the community equally. That said, the committee is oriented toward
17+
the protection of our community and takes that duty seriously.
18+
19+
## Communication with the committee
20+
The committee maintains a private mailing list for reporting incidents, asking
21+
confidential questions, and internal committee communication:
22+
23+
[conduct@operatorframework.io][email]
24+
25+
This email alias may not be the fastest path to a response in urgent situations.
26+
**If a response is time critical, reaching individual committee members via
27+
Slack is advisable. But an email must also be sent to
28+
[conduct@operatorframework.io][email] for tracking purposes**. This feedback helps
29+
guide the implementation of new policies and procedures.
30+
31+
### Others acting on behalf of the committee
32+
Community moderation administrators in Slack, the mailing list, community
33+
events, and elsewhere are extensions of the committee and are able to be first
34+
responders to incidents. They are explicitly empowered to take those actions
35+
necessary to protect the community, especially when no committee members are
36+
available. All such events must be retroactively reviewed by the committee for
37+
appropriateness and consistency.
38+
39+
Community chairs may also act in limited cases to enforce the code of
40+
conduct. Examples of this may be the deletion of GitHub comments, offensive
41+
Slack messages, or the eviction of bad actors from public meetings. These
42+
actions must be communicated to the committee for review.
43+
44+
## Composition and Scope
45+
The [committee is composed of 5
46+
members](https://github.com/operator-framework/community/tree/master/committee-code-of-conduct).
47+
The committee is the primary recipient of all conduct complaints regardless of
48+
where in the community they originate. The only exception is at CNCF events,
49+
where the event Code of Conduct process supersedes this. That is primarily due
50+
to the high-impact nature of in-person violations and the need for more
51+
extensive staffing. This committee should be informed and consulted for all
52+
violations involving Operator Framework community members, regardless of circumstances.
53+
54+
Additionally, the committee is responsible for drafting and executing on
55+
reporting, enforcement, and other policy matters. In most cases, policies are
56+
made public, however some materials will be confidential by nature of their
57+
content and application. As a general rule, the committee will provide as much
58+
transparency as possible, except in specific incident reports where no
59+
personally-identifying information about the reporter/reported will be shared.
60+
Anonymized aggregated incident data may be provided to the community as the
61+
committee sees fit.
62+
63+
*The Operator Framework community project has explicitly delegated all Code of
64+
Conduct authority and enforcement to this committee. The committee can, at its
65+
discretion, delegate some authority to those tasked with enforcement.*
66+
67+
## Election
68+
TODO: Our election processes will be outlined in a separate document, coming soon.
69+
70+
## Committee Operation
71+
The committee strives to respond quickly to reports, as well as initiate
72+
whatever actions are appropriate based on severity, risk, urgency, and impact.
73+
In some cases, this requires individual committee members to take
74+
immediate action such as (but not limited to) removing a GitHub comment, deleting
75+
a Slack message, or ejecting someone from a community meeting. The committee,
76+
however, will retroactively review any action taken in such instances to ensure
77+
it was appropriate.
78+
79+
The committee meets biweekly unless additional interstitial meetings are
80+
required to address incidents or other critical work. Meetings are not recorded,
81+
however confidential notes may be kept when necessary to provide continuity to
82+
future committee members. Wherever possible, documentation necessary for the
83+
internal operation of the committee will be stored in a private GitHub
84+
repository.
85+
86+
### Meeting quorum
87+
Meetings are considered at quorum when a simple majority of the members are
88+
present. Where there are 4 or fewer members available due vacant seats or
89+
recusal, quorum is 2.
90+
91+
### Policy change ratification
92+
Any changes to the charter require explicit LGTM or Approve from all
93+
committee members. For pull requests, a /hold will be applied until all
94+
approvals are present. Any changes merged without consensus will be reverted.
95+
96+
### Incident report confidentiality
97+
The Code of Conduct committee will keep your report confidential. The CoCC may
98+
share report information with the community chairs if they believe doing so is
99+
appropriate. Past incidents are communicated generally to new committee members
100+
so they can have historical context for future issues. While this may allow the
101+
establishment of bias in new members it is believed that the educational value
102+
of this information outweighs the potential negatives.
103+
104+
### Incident Response Recusal
105+
A member of the Code of Conduct committee shall recuse themselves from
106+
evaluating and responding to any incident for which they are unable to be
107+
impartial. If a committee member does not recuse themselves they may be removed
108+
from participation by a unanimous vote of all other members of the committee.
109+
110+
### Committee seats unoccupied
111+
In the event that one or more of the seats on the committee is unoccupied, for any
112+
reason, a replacement member will be appointed by the community chairs as soon
113+
as reasonable. That person will serve out the remainder of the term of the
114+
person they are replacing.
115+
116+
### Committee dissolution
117+
If committee members believe that the committee is no longer able to act in
118+
accordance with the above Mission/Purpose the committee may vote to dissolve.
119+
The committee should specify a date of dissolution. Dissolution requires an
120+
affirmative vote of more than 75% of committee members, and must be unamimous
121+
when the committee has only 4 or fewer members. If the committee is dissolved,
122+
all seats are vacated on the date specified.
123+
124+
### Removal
125+
A committee member may be removed from the committee by a unanimous decision of
126+
the other committee members. The member should be given the opportunity to
127+
resign before they are removed. Removal should only be considered for the
128+
following reasons:
129+
130+
* The member has been found to have committed a code of conduct violation.
131+
* The member is convicted of a felony.
132+
* The member has been completely out of contact for more than 30 consecutive
133+
calendar days without having made prior arrangements.
134+
* The member has explicitly, publicly violated the privacy of individuals
135+
involved by disclosure of personally-identifiable information (accidental
136+
disclosure via inference is not a valid reason for removal, though may be
137+
cause for a code of conduct violation report.)
138+
* The member is no longer able to perform the duties of the position due to
139+
extreme circumstances such as refugee displacement or diminution of mental
140+
capacity.
141+
142+
### Resignation
143+
If a committee member chooses not to continue in their role, for whatever
144+
self-elected reason, they must notify the committee as well as the community
145+
chairs in writing. As a courtesy, such notifications should be given at least
146+
30 calendar days in advance of their departure.
147+
148+
[email]: conduct@operatorframework.io
Lines changed: 76 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,76 @@
1+
# Operator Framework Code of Conduct Committee Elections
2+
3+
This document outlines the process, for Code of Conduct Committee (CoCC) elections.
4+
5+
### Length of Terms
6+
7+
* The CoCC consists of 5 members. In the first election, the top 3 voted people will be appointed for 2 year terms and the other 2 members will be appointed for a 1 year term.
8+
* In all subsequent elections the term will be for 2 years.
9+
* In alternating years either 2 or 3 seats will be up for election as terms expire.
10+
11+
### Eligibility for voting
12+
13+
* Voting will be done by community chairs.
14+
* A chair who is also a nominee for the code of conduct committee is not eligible to vote.
15+
16+
### Eligibility for candidacy
17+
18+
* Candidate commits to putting the interests of the community above the interests of their employer for all Code of Conduct Committee activities.
19+
* Is generally a responsible human
20+
* Does not have to be part of the Operator Framework or CNCF community
21+
* Characteristics which would be nice in any nominations:
22+
* Previous experience on an Ethics Committee or Code of Conduct Committee is appreciated
23+
* Has demonstrated integrity, professionalism, and positive influence within the community is appreciated
24+
* Experience with the tools which we use to communicate (Zoom, Slack, GitHub, etc.) within the Operator Framework community is appreciated
25+
26+
### Election process
27+
28+
The community chairs will announce a request for nominations some time in July from any member of the following:
29+
* community chairs
30+
* members of the code of conduct committee
31+
32+
The community chairs will accept nominations for at least 1 week. Though the community
33+
chairs may choose to accept nominations for longer. After the announced nomination
34+
period the community chairs will hold a private ballot election using time-limited
35+
[Condorcet] ranking use the [Schulze method] to break ties. The community chairs
36+
will publicly announce the results of the election.
37+
38+
### Maximal representation
39+
40+
Maximal representation of a single employer is `QUORUM - 1`. With a five person committee,
41+
that limits the number of members employed by the same company to two.
42+
43+
### Election Cycles
44+
45+
Election cycles are scheduled such that roughly half of the seats come up for
46+
re-election each year for purposes of continuity. The exact number of seats
47+
alternates between 2 and 3. The elections by the community chairs should be
48+
held and announced before the previous appointments expire (typically in Aug).
49+
50+
### Emeritus Term
51+
52+
There is no concept of an "Emeritus Term" with the CoCC. When a member vacates
53+
their seat for any reason they will be removed from all conversations, e-mail
54+
lists, historical data, and any other activities related to the CoCC.
55+
56+
### Vacancies
57+
58+
In the event of a resignation or other loss of an elected committee
59+
member, the candidate with the next most votes from the previous election will
60+
be offered the seat. This process will continue until the seat is filled.
61+
62+
In case this fails to fill the seat, a special election for that position will
63+
be held as soon as possible. Eligible voters from the most recent election
64+
will vote in the special election (ie: eligibility will not be redetermined
65+
at the time of the special election). A committee member elected in a special
66+
election will serve out the remainder of the term for the person they are
67+
replacing, regardless of the length of that remainder.
68+
69+
In the event that the committee votes to dissolve in its entirety an entirely
70+
new special election will he held by the community chairs instead of filling
71+
with names from the previous election. Those elected will complete the remaining
72+
terms of the previous, dissolved, committee. With those receiving the highest
73+
votes receiving the longest term.
74+
75+
[Condorcet]: https://en.wikipedia.org/wiki/Condorcet_method
76+
[Schulze method]: https://en.wikipedia.org/wiki/Schulze_method
File renamed without changes.

sig-list.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@ When the need arises, a [new SIG can be created](sig-wg-lifecycle.md)
3939

4040
| Name | Label | Members | Contact |
4141
|------|--------|---------|---------|
42+
|[Code of Conduct](committee-code-of-conduct/README.md)|code-of-conduct|* [To Do](https://github.com/todo), TO DO Inc.<br>* [To Do](https://github.com/todo), TO DO Inc.<br>* [To Do](https://github.com/todo), TO DO Inc.<br>* [To Do](https://github.com/todo), TO DO Inc.<br>* [To Do](https://github.com/todo), TO DO Inc.<br>|* [Private Mailing List](conduct@operatorframework.io)
4243
<!-- BEGIN CUSTOM CONTENT -->
4344

4445
<!-- END CUSTOM CONTENT -->

sigs.yaml

Lines changed: 32 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -57,4 +57,35 @@ workinggroups:
5757
slack: kubernetes-operators
5858
mailing_list: https://groups.google.com/forum/#!forum/operator-framework-olm-dev
5959
usergroups: []
60-
committees: []
60+
committees:
61+
- dir: committee-code-of-conduct
62+
name: Code of Conduct
63+
mission_statement: >
64+
The Operator Framework Code of Conduct Committee (CoCC) is the body that is responsible
65+
for enforcing and maintaining the Operator Framework Code of Conduct.
66+
67+
charter_link: charter.md
68+
label: code-of-conduct
69+
leadership:
70+
chairs:
71+
- github: todo
72+
name: To Do
73+
company: TO DO Inc.
74+
- github: todo
75+
name: To Do
76+
company: TO DO Inc.
77+
- github: todo
78+
name: To Do
79+
company: TO DO Inc.
80+
- github: todo
81+
name: To Do
82+
company: TO DO Inc.
83+
- github: todo
84+
name: To Do
85+
company: TO DO Inc.
86+
meetings: []
87+
contact:
88+
private_mailing_list: conduct@operatorframework.io
89+
teams:
90+
- name: code-of-conduct-committee
91+
description: General Discussion

0 commit comments

Comments
 (0)