Skip to content

Commit bce90f1

Browse files
community, wg, template: create wg templates (#301)
* community, wg, README: add documentation around SIGs and WGs Signed-off-by: Daniel Hiller <[email protected]> * community, wg, template: create wg templates Create a template for working group definitions, aligned to how SIG templates currently look. Signed-off-by: Daniel Hiller <[email protected]> * community, wg, template: update GOVERNANCE.md Fix whitespace, link to membership policy instead. Co-authored-by: aburdenthehand <[email protected]> Signed-off-by: Daniel Hiller <[email protected]> * Apply suggestions from code review Co-authored-by: aburdenthehand <[email protected]> Signed-off-by: Daniel Hiller <[email protected]> * wg, template: remove leads section Also add two example GitHub handles under chairs to make clear that two are the minimum. Signed-off-by: Daniel Hiller <[email protected]> --------- Signed-off-by: Daniel Hiller <[email protected]> Signed-off-by: Daniel Hiller <[email protected]> Co-authored-by: aburdenthehand <[email protected]>
1 parent 562161e commit bce90f1

File tree

4 files changed

+131
-12
lines changed

4 files changed

+131
-12
lines changed

GOVERNANCE.md

+71-11
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
# Project Governance
22

33
- [Maintainers](#maintainers)
4-
- [Becoming a Maintainer](#becoming-a-maintainer)
5-
- [Meetings](#meetings)
6-
- [CNCF Resources](#cncf-resources)
7-
- [Code of Conduct Enforcement](#code-of-conduct)
8-
- [Voting](#voting)
4+
- [Becoming a Maintainer](#becoming-a-maintainer)
5+
- [Meetings](#meetings)
6+
- [CNCF Resources](#cncf-resources)
7+
- [Code of Conduct Enforcement](#code-of-conduct)
8+
- [Voting](#voting)
9+
- [SIGs (Special Interest Groups)](#sigs)
10+
- [SIG Subprojects](#subprojects)
11+
- [WGs (Working Groups)](#working-groups)
912

1013
## Maintainers
1114

@@ -27,7 +30,7 @@ follow through to fix issues.
2730
A maintainer is a contributor to the project's success and a citizen helping
2831
the project succeed.
2932

30-
## Selecting Maintainers
33+
### Selecting Maintainers
3134

3235
The current project maintainers will periodically review contributor activities
3336
to see if additional project members may be promoted to maintainers.
@@ -50,7 +53,7 @@ A candidate must be proposed by an existing maintainer by filing an PR in the
5053
A simple majority vote of +1s from existing Maintainers approves the application.
5154
Approved maintainers will be added to the [private maintainer mailing list](mailto:[email protected]).
5255

53-
## Meetings
56+
### Meetings
5457

5558
Time zones permitting, Maintainers are expected to participate in the weekly public
5659
community meeting. More details can be found [here](commnuity_meeting.md).
@@ -61,7 +64,7 @@ Maintainer on receipt of a security issue or CoC report. All current Maintainer
6164
must be invited to such closed meetings, except for any Maintainer who is
6265
accused of a CoC violation.
6366

64-
## CNCF Resources
67+
### CNCF Resources
6568

6669
Any Maintainer may suggest a request for CNCF resources, in the
6770
[developer mailing list](https://groups.google.com/forum/#!forum/kubevirt-dev),
@@ -70,15 +73,15 @@ or during a community meeting. A simple majority of Maintainers approves the
7073
request. The Maintainers may also choose to delegate working with the CNCF to
7174
non-Maintainer community members.
7275

73-
## Code of Conduct
76+
### Code of Conduct
7477

7578
[Code of Conduct](./code-of-conduct.md)
7679
violations by community members will be discussed and resolved
7780
on the [private Maintainer mailing list](mailto:[email protected]). If the reported CoC violator
7881
is a Maintainer, the Maintainers will instead designate two Maintainers to work
7982
with CNCF staff in resolving the report.
8083

81-
## Removing Maintainers
84+
### Removing Maintainers
8285

8386
Maintainers may voluntarily retire at any time. Should a maintainer retire,
8487
it requires a majority vote of the current maintainers to reinstate them.
@@ -93,7 +96,7 @@ Maintainers may also be demoted at any time for one of the following reasons:
9396

9497
Removing a maintainer requires a 2/3 majority vote of the other maintainers.
9598

96-
## Voting
99+
### Voting
97100

98101
While most business in KubeVirt is conducted by "lazy consensus", periodically
99102
the Maintainers may need to vote on specific actions or changes.
@@ -105,3 +108,60 @@ request a vote be taken.
105108
Most votes require a simple majority of all Maintainers to succeed. Maintainers
106109
can be removed by a 2/3 majority vote of all Maintainers, and changes to this
107110
Governance require a 2/3 vote of all Maintainers.
111+
112+
## SIGs
113+
114+
The KubeVirt project is organized primarily into Special Interest Groups, or SIGs.
115+
Each SIG is comprised of members from multiple companies and organizations, with a
116+
common purpose of advancing the project with respect to a specific topic, such as
117+
Networking or Storage. Our goal is to enable a distributed decision structure
118+
and code ownership, as well as providing focused forums for getting work done,
119+
making decisions, and onboarding new contributors. Every identifiable subpart of
120+
the project (e.g., github org, repository, subdirectory, API, test, issue, PR)
121+
is intended to be owned by some SIG.
122+
123+
Our SIGs define mission and scope via their charters, ownership of code via
124+
[OWNERS](https://www.kubernetes.dev/docs/guide/owners/), and members and roles in
125+
[sigs.yaml].
126+
127+
For more details see also the [Kubernetes SIGs] model.
128+
129+
Examples:
130+
* [sig-network - charter](./sig-network/charter.md)
131+
* [sig-network - kubevirt/kubevirt OWNERS_ALIASES](https://github.com/kubevirt/kubevirt/blob/a7e0311d8704663351abd4bc9bbc8511753d2838/OWNERS_ALIASES#L60)
132+
* [sig-ci - sigs.yaml](https://github.com/kubevirt/community/blob/4f63a79c0ed810aa332cd6716d4986001d28bcd7/sigs.yaml#L119)
133+
134+
### Subprojects
135+
136+
Specific work efforts within SIGs are divided into subprojects. Every part of the
137+
KubeVirt code and documentation must be owned by some subproject. Some [SIGs](#sigs)
138+
may have a single subproject, but many SIGs have multiple significant subprojects
139+
with distinct (though sometimes overlapping) sets of contributors and owners, who
140+
act as subproject’s technical leaders: responsible for vision and direction and
141+
overall design, choose/approve design proposals approvers, field technical
142+
escalations, etc.
143+
144+
For more details see also the [Kubernetes Subprojects] model.
145+
146+
## Working Groups
147+
148+
We need community rallying points to facilitate discussions/work regarding topics
149+
that are short-lived or that span multiple SIGs.
150+
151+
Working groups are primarily used to facilitate topics of discussion that are in
152+
scope for KubeVirt but that cross SIG lines.
153+
154+
Our WGs define mission and scope via their charter, and members and roles in
155+
[sigs.yaml].
156+
157+
For more details see also the [Kubernetes WGs] model.
158+
159+
## Roles and Organization Management
160+
161+
All our SIGs and WGs follow the Roles and Organization Management outlined in our [membership policy].
162+
163+
[Kubernetes SIGs]: https://github.com/kubernetes/community/blob/master/governance.md#sigs
164+
[Kubernetes Subprojects]: https://github.com/kubernetes/community/blob/master/governance.md#subprojects
165+
[Kubernetes WGs]: https://github.com/kubernetes/community/blob/master/governance.md#working-groups
166+
[membership policy]: ./membership_policy.md
167+
[sigs.yaml]: ./sigs.yaml

README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
# Community
22

33
Welcome to the KubeVirt Community repo!
4-
Here you will find all things community, including our [membership policy](membership_policy.md), [project governance](GOVERNANCE.md), charters for our SIGs (Special Interest Groups), [upcoming events](https://github.com/kubevirt/community/wiki/Events), and more.
4+
Here you will find all things community, including our [membership policy](membership_policy.md), [project governance](GOVERNANCE.md), charters for our [Special Interest Groups](./GOVERNANCE.md#sigs) and [Working Groups](./GOVERNANCE.md#working-groups), [upcoming events](https://github.com/kubevirt/community/wiki/Events), and more.
55

66
If you're looking for the main code base, you can find it at [kubevirt/kubevirt](https://github.com/kubevirt/kubevirt).
77

wg-TEMPLATE/README.md

+37
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
# Working Group Responsibilities
2+
3+
All KubeVirt Working Groups (WGs) must define a charter.
4+
5+
- The scope must define:
6+
- what problem the WG is solving
7+
- what deliverable(s) will be produced, and to whom
8+
- when the problem is expected to be resolved
9+
- The governance must outline:
10+
- the responsibilities within the WG
11+
- the roles owning those responsibilities
12+
- which SIGs are stakeholders
13+
14+
## Steps to create a WG charter
15+
16+
1. Copy [the template][WG Template] into a new file under community/wg-*YOURWG*/charter.md
17+
2. Fill out the template for your WG
18+
3. Update [sigs.yaml] with the individuals holding the roles as defined in the template.
19+
4. Create a pull request with a draft of your `charter.md` and `sigs.yaml` changes. Communicate it within your WG and the stakeholder SIGs and get feedback as needed.
20+
5. Send the WG Charter out for review to [email protected]. Include the subject "WG Charter Proposal: YOURWG"
21+
and a link to the PR in the body.
22+
6. Typically expect feedback within a week of sending your draft. Expect longer time if it falls over an
23+
event such as KubeCon/CloudNativeCon or holidays. Make any necessary changes.
24+
7. Once accepted, the maintainers will ratify the PR by merging it.
25+
26+
## How to use the templates
27+
28+
WGs should use [the template][WG Template] as a starting point.
29+
30+
31+
## Goals
32+
33+
The primary goal of the charters is to define the scope of the WG within KubeVirt and how the WG can determine whether it has achieved their solution. A majority of the effort should be spent on these concerns.
34+
35+
[WG Template]: wg-charter-template.md
36+
[sigs.yaml]: ../sigs.yaml
37+

wg-TEMPLATE/wg-charter-template.md

+22
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,22 @@
1+
# WG YOURWG Charter
2+
3+
## Scope
4+
5+
Include a 2-3 sentence summary of the problem this group is trying to solve.
6+
Imagine trying to explain your work to a colleague who is familiar with KubeVirt
7+
but not necessarily all of the internals.
8+
9+
## Governance
10+
11+
### Stakeholder SIGs
12+
13+
A list of SIGs that are relevant to the WG.
14+
The template may also mention:
15+
* which SIGs are more relevant than others, and
16+
* which subprojects are related to the WG
17+
18+
### Roles and responsibilities
19+
20+
#### Chairs
21+
- @your-github-handle-1
22+
- @your-github-handle-2

0 commit comments

Comments
 (0)