Skip to content

Commit f8268a2

Browse files
committed
docs: Add project governance document
PR: #173 Signed-off-by: Charalampos Mainas <[email protected]> Signed-off-by: Anastassios Nanos <[email protected]> Reviewed-by: Georgios Ntoutsos <[email protected]> Approved-by: Georgios Ntoutsos <[email protected]>
1 parent a819854 commit f8268a2

File tree

2 files changed

+191
-0
lines changed

2 files changed

+191
-0
lines changed

GOVERNANCE.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
# Governance
2+
3+
Please read [`urunc` Project Governance](/docs/developer-guide/governance.md)
4+
in this repo, or at the [docs
5+
website](https://urunc.io/developer-guide/governance).

docs/developer-guide/governance.md

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
# Governance
2+
3+
`urunc` is dedicated to enable the deployment of unikernels and single
4+
application kernels in cloud-native environments. This governance document
5+
explains how the project is run.
6+
7+
- [Values](#values)
8+
- [Roles](#roles)
9+
- [Meetings](#meetings)
10+
- [CNCF Resources](#cncf-resources)
11+
- [Code of Conduct Enforcement](#code-of-conduct)
12+
- [Security Response Team](#security-response-team)
13+
- [Voting](#voting)
14+
- [Modifications](#modifying-this-charter)
15+
16+
## Values
17+
18+
`urunc` and its leadership embrace the following values:
19+
20+
* Openness: Communication and decision-making happens in the open and is
21+
discoverable for future reference. As much as possible, all discussions and
22+
work take place in public forums and open repositories.
23+
24+
* Fairness: All stakeholders have the opportunity to provide feedback and
25+
submit contributions, which will be considered on their merits.
26+
27+
* Community over Product or Company: Sustaining and growing our community takes
28+
priority over shipping code or sponsors' organizational goals. Each
29+
contributor participates in the project as an individual.
30+
31+
* Inclusivity: We innovate through different perspectives and skill sets, which
32+
can only be accomplished in a welcoming and respectful environment.
33+
34+
* Participation: Responsibilities within the project are earned through
35+
participation, and there is a clear path up the contributor ladder into
36+
leadership positions.
37+
38+
## Roles
39+
40+
There are several roles relevant to `urunc`'s governance:
41+
42+
### Contributor
43+
44+
A Contributor to `urunc` is someone who has contributed to the project (e.g. code,
45+
docs, CI) within the last 12 months. Contributors have read only access to the
46+
urunc repositories on GitHub.
47+
48+
### Maintainer
49+
50+
`urunc` Maintainers (as defined by the [urunc Maintainers
51+
team](https://github.com/orgs/urunc-dev/teams/maintainers)) have write access
52+
to the `urunc` repository on GitHub, which gives the ability to approve / merge /
53+
close PRs, trigger the CI and manage / classify project issues. All pull
54+
requests require review by a maintainer other than the one submitting it.
55+
"Large" changes are encouraged to gather consensus from multiple maintainers and
56+
interested community members. Maintainers are active Contributors and
57+
participants in the project, collectively managing the project's resources and
58+
contributors.
59+
60+
This privilege is granted with some expectation of responsibility: maintainers
61+
are people who care about `urunc` and want to help it grow and improve. A
62+
maintainer is not just someone who can make changes, but someone who has
63+
demonstrated their ability to collaborate with the team, get the most
64+
knowledgeable people to review code and docs, contribute high-quality code, and
65+
follow through to fix issues (in code or tests).
66+
67+
A maintainer is a contributor to the project's success and a citizen helping
68+
the project succeed.
69+
70+
The collective team of all Maintainers is known as the Maintainer Council, which
71+
is the governing body for the project.
72+
73+
#### Becoming a Maintainer
74+
75+
To become a Maintainer you need to demonstrate the following:
76+
77+
* commitment to the project:
78+
* actively participate in mettings, discussions, contributions, code and
79+
documentation reviews for at least 6 months,
80+
* perform reviews for at least 3 non-trivial pull requests,
81+
* contribute 3 non-trivial pull requests and have them merged,
82+
* ability to write quality code and/or documentation,
83+
* ability to collaborate with the team,
84+
* understanding of how the team works (policies, processes for testing and
85+
code review, etc),
86+
* understanding of the project's code base and coding / documentation
87+
style.
88+
89+
A new Maintainer must be proposed by an established Contributor and/or an
90+
existing maintainer by sending a message to the [developer mailing
91+
list](mailto:[email protected]). A simple majority vote of existing Maintainers
92+
approves the application. Maintainer nominations will be evaluated without
93+
prejudice to employer or demographics.
94+
95+
Maintainers who are selected will be granted the necessary GitHub rights,
96+
and invited to the [private maintainer mailing list](mailto:[email protected]).
97+
98+
#### Removing a Maintainer
99+
100+
Maintainers may resign at any time if they feel that they will not be able to
101+
continue fulfilling their project duties.
102+
103+
Maintainers may also be removed after being inactive, failure to fulfill their
104+
Maintainer responsibilities, violating the Code of Conduct, or other reasons.
105+
Inactivity is defined as a period of very low or no activity in the project for
106+
6 months or more, with no definite schedule to return to full Maintainer
107+
activity.
108+
109+
A Maintainer may be removed at any time by a 2/3 vote of the remaining maintainers.
110+
111+
Depending on the reason for removal, a Maintainer may be converted to Emeritus
112+
status. Emeritus Maintainers will still be consulted on some project matters,
113+
and can be rapidly returned to Maintainer status if their availability changes.
114+
115+
### Admin
116+
117+
`urunc` Admins (as defined by the [urunc Admin
118+
team](https://github.com/orgs/urunc-dev/teams/admins) have admin access to the
119+
`urunc` repo, allowing them to do actions like, change the branch protection
120+
rules for repositories, delete a repository and manage the access of others.
121+
The Admin group is intentionally kept small, however, individuals can
122+
be granted temporary admin access to carry out tasks, like creating a secret
123+
that is used in a particular CI infrastructure.
124+
The Admin list is reviewed and updated twice a year and typically contains:
125+
- A subset of the maintainer team
126+
- Optionally, some specific people that the Maintainers agree on adding for a
127+
specific purpose (e.g. to manage the CI)
128+
129+
## Meetings
130+
131+
Time zones permitting, Maintainers are expected to participate in the [public
132+
developer
133+
meeting](https://github.com/urunc-dev/urunc/?tab=readme-ov-file#community-and-meetings),
134+
which occurs every last Wed of each month at 3pm UTC.
135+
136+
Maintainers will also have closed meetings in order to discuss security reports
137+
or Code of Conduct violations. Such meetings should be scheduled by any
138+
Maintainer on receipt of a security issue or CoC report. All current Maintainers
139+
must be invited to such closed meetings, except for any Maintainer who is
140+
accused of a CoC violation.
141+
142+
## CNCF Resources
143+
144+
Any Maintainer may suggest a request for CNCF resources, either in the [mailing
145+
list](mailto:[email protected]), or during a meeting. A
146+
simple majority of Maintainers approves the request. The Maintainers may also
147+
choose to delegate working with the CNCF to non-Maintainer community members,
148+
who will then be added to the [CNCF's Maintainer
149+
List](https://github.com/cncf/foundation/blob/main/project-maintainers.csv) for
150+
that purpose.
151+
152+
## Code of Conduct
153+
154+
[Code of Conduct](./Code-of-Conduct.md) violations by community members will be
155+
discussed and resolved by the maintainers privately. If a Maintainer is
156+
directly involved in the report, the Maintainers will instead designate two
157+
Maintainers to work with the CNCF Code of Conduct Committee in resolving it.
158+
159+
## Security Response Team
160+
161+
The Maintainers will appoint a Security Response Team to handle security reports.
162+
This committee may simply consist of the Maintainer Council themselves. If this
163+
responsibility is delegated, the Maintainers will appoint a team of at least two
164+
contributors to handle it. The Maintainers will review who is assigned to this
165+
at least once a year.
166+
167+
The Security Response Team is responsible for handling all reports of security
168+
holes and breaches according to the [security policy](./security.md).
169+
170+
## Voting
171+
172+
While most business in `urunc` is conducted by "[lazy consensus](https://community.apache.org/committers/lazyConsensus.html)",
173+
periodically the Maintainers may need to vote on specific actions or changes.
174+
A vote can be taken on [the developer mailing list](mailto:[email protected]) or
175+
[the private Maintainer mailing list](mailto:[email protected]) for security or conduct matters.
176+
Votes may also be taken at [the developer meeting](./meetings.md). Any Maintainer may
177+
demand a vote be taken.
178+
179+
Most votes require a simple majority of all Maintainers to succeed, except where
180+
otherwise noted. Two-thirds majority votes mean at least two-thirds of all
181+
existing maintainers.
182+
183+
## Modifying this Charter
184+
185+
Changes to this Governance and its supporting documents may be approved by a
186+
2/3 vote of the Maintainers.

0 commit comments

Comments
 (0)