-
Notifications
You must be signed in to change notification settings - Fork 5
/
membership.html
455 lines (403 loc) · 30.2 KB
/
membership.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
<!DOCTYPE html>
<html lang="en">
<head>
<title>Universal Blue – Membership</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0" />
<meta name="theme-color" content="#4051b5" />
<meta name="msapplication-config" content="none">
<!-- Favicon -->
<link rel="icon" href="content/favicon-new.png" type="image/png" sizes="any">
<!--<link rel="icon" href="content/favicon.svg" type="image/svg+xml">-->
<!-- Preconnect -->
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link rel="preconnect" href="https://cdnjs.cloudflare.com">
<link rel="preconnect" href="https://repobeats.axiom.co">
<link rel="preconnect" href="https:///universal-blue.discourse.group">
<!-- CSS -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.1.3/css/bootstrap.min.css" integrity="sha512-GQGU0fMMi238uA+a/bdWJfpUGKUkBdgfFdgBm72SUQ6BeyWjoY/ton0tEjH+OSH9iP4Dfh+7HM0I9f5eR0L/4w==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" href="css/style5.css">
<link rel="stylesheet" href="css/style-responsive.css">
<link rel="stylesheet" href="css/vertical-rhythm.min.css">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/assets/owl.carousel.min.css" integrity="sha512-tS3S5qG0BlhnQROyJXvNjeEM4UpMXHrQfTGmbQ1gKmelCxlSEBUaxhRBj/EFTzpbP4RVSrpEikbmdJobCvhE3g==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" href="css/splitting.css">
<link rel="stylesheet" href="css/YTPlayer.css">
<link rel="stylesheet" href="css/main.css">
<!-- Google Fonts -->
<link href="https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;700&display=swap" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Red+Hat+Display:wght@300&display=swap" rel="stylesheet">
<!-- Font Awesome -->
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/fontawesome.min.css" integrity="sha512-B46MVOJpI6RBsdcU307elYeStF2JKT87SsHZfRSkjVi4/iZ3912zXi45X5/CBr/GbCyLx6M1GQtTKYRd52Jxgw==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/solid.min.css" integrity="sha512-/r+0SvLvMMSIf41xiuy19aNkXxI+3zb/BN8K9lnDDWI09VM0dwgTMzK7Qi5vv5macJ3VH4XZXr60ip7v13QnmQ==" crossorigin="anonymous" referrerpolicy="no-referrer" />
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.6.0/css/brands.min.css" integrity="sha512-EJp8vMVhYl7tBFE2rgNGb//drnr1+6XKMvTyamMS34YwOEFohhWkGq13tPWnK0FbjSS6D8YoA3n3bZmb3KiUYA==" crossorigin="anonymous" referrerpolicy="no-referrer" />
</head>
<body class="appear-animate simple-page">
<!-- Page Loader -->
<div class="page-loader">
<div class="loader">Loading...</div>
</div>
<!-- End Page Loader -->
<!-- Skip to Content -->
<a href="#main" class="btn skip-to-content">Skip to Content</a>
<!-- End Skip to Content -->
<!-- Page Wrap -->
<div class="page" id="top">
<!-- Navigation Panel -->
<nav class="main-nav transparent stick-fixed wow-menubar wch-unset">
<div class="main-nav-sub full-wrapper">
<!-- Logo -->
<div class="nav-logo-wrap local-scroll">
<a href="#top" class="logo">
<img src="content/ublue-header-white.svg" alt="Universal Blue" width="2732" height="692" />
</a>
</div>
<!-- Mobile Menu Button -->
<div class="mobile-nav" role="button" tabindex="0">
<i class="mobile-nav-icon"></i>
<span class="visually-hidden">Menu</span>
</div>
<!-- Main Menu -->
<div class="inner-nav desktop-nav">
<ul class="clearlist scroll-nav local-scroll">
<li><a href="https://universal-blue.org">Return Home</a></li>
</ul>
</div>
<!-- End Main Menu -->
</div>
</nav>
<!-- End Navigation Panel -->
<main id="main">
<!-- Content Section -->
<section class="page-section" id="content">
<div class="container position-relative">
<div class="row mb-60 mb-xs-30">
<div class="col-md-6">
<h3 class="section-title mb-0"><span class="wow charsAnimIn" data-splitting="chars">Membership</span></h3>
</div>
</div>
<div class="row wow fadeInUp" data-wow-delay="0.25s">
<p><strong>Note:</strong> This document is a work in progress</p>
<p>This doc outlines the various responsibilities of contributor roles in Universal Blue.</p>
<p>This document is derived from <a href="https://github.com/kubernetes/community/blob/master/community-membership.md">Kubernetes</a>. </p>
<h2 id="new-contributors">New contributors</h2>
<p>New contributors should be welcomed to the community by existing members,
helped with PR workflow, and directed to relevant documentation and
communication channels.
</p>
<p>This informal level is designed for drive-by contributors or those who might be
interested in participating in open source and using this project to learn how.
</p>
<p>We encourage anyone to participate, and for those who wish to earn more responsibilities
and begin their open source journey with us ... apply within. Vegeta tests us all.
</p>
<h2 id="fellow-guardians">Fellow Guardians</h2>
<p>Since Universal Blue is meant to be a toolkit, we strive to generate fun experiments.
Our example for this our collaboration with Cassidy James Blaede on GNOME Beyond, where
Cassidy is given direct Approver role of that repository along with our maintainers.
</p>
<p>We hope to continue this trend, in the hopes that it spreads the cloud native desktop pattern
to as many projects that want to take advantage of it.
</p>
<h2 id="members-and-approvers">Members and Approvers</h2>
<p>Established community members are expected to demonstrate their adherence to the
principles in this document, familiarity with project organization, roles,
policies, procedures, conventions, etc., and technical and/or writing ability.
Role-specific expectations, responsibilities, and requirements are enumerated
below.
</p>
<h3 id="needs-of-the-project">Needs of the Project</h3>
<p>In places where the project has a strong need for expertise in an area that lacks contributors, Approvers may make exceptions to grant elevated review permissions to underserved areas of the project. This is determined by lazy concensus of at least three Approvers. </p>
<h3 id="member">Member</h3>
<p>Members are <em>[continuously active]</em> contributors in the community. They can have
issues and PRs assigned to them, and participate in GitHub teams. Members are expected to
remain active contributors to the community. This role includes responsiblities
that are defined as "Reviewers" in other cloud native projects.
</p>
<p><strong>Defined by:</strong> Inclusion in the Member team in the Universal Blue GitHub organization</p>
<ul>
<li>Enabled two-factor authentication on their GitHub account</li>
<li>
Have made <strong>multiple contributions</strong> to the project or community, enough to
demonstrate an <strong>ongoing and long-term commitment</strong> to the project.
Contributions may include, but is not limited to:
<ul>
<li>
Authoring or reviewing PRs on GitHub, with at least one <strong>merged</strong> PR.
<strong>NOTE:</strong> The PR(s) must demonstrate an ongoing and active commitment.
A few examples include:
<ul>
<li>A single issue/PR that has taken several weeks of driving consensus</li>
<li>A larger number of smaller PRs over several weeks to months</li>
<li>A smaller number of complex or technical PRs that required working with
community members to resolve an issue (e.g. regressions, bugs fixes etc)
</li>
</ul>
</li>
<li>Filing or commenting on issues on GitHub</li>
<li>Contributing to community discussions</li>
<li>
Special consideration of established open source contributions
<ul>
<li>Distribution maintainer, CNCF Contributor, Apache, etc.</li>
<li>This one means a lot - it's the life blood. </li>
</ul>
</li>
</ul>
</li>
<li>Have read the contributor guide</li>
<li>Actively contributing to 1 or more repositories.</li>
<li>
Sponsored by 2 Approvers. <strong>Note the following requirements for sponsors</strong>:
<ul>
<li>Sponsors must have close interactions with the prospective member - e.g. code/design/proposal review, coordinating
on issues, etc.
</li>
<li>Sponsors must be reviewers or approvers in at least one repo in the organization.</li>
</ul>
</li>
<li>
<strong>[Open an issue][membership request] against the ublue-os/main repo</strong>
<ul>
<li>Ensure your sponsors are @mentioned on the issue</li>
<li>Complete every item on the checklist</li>
<li>Make sure that the list of contributions included is representative of your work on the project.</li>
</ul>
</li>
<li>Have your sponsoring reviewers reply confirmation of sponsorship: <code>+1</code></li>
<li>Once your sponsors have responded, your request will be reviewed by the Owners and acted upon. You have ascended.</li>
</ul>
<h4 id="responsibilities-and-privileges">Responsibilities and privileges</h4>
<ul>
<li>
Proactively act when builds are failing
<ul>
<li>Internal project outages should be prioritized over external dependencies</li>
<li>If outage is complex ensure that the rest of the team is aware of your work by filing an issue</li>
</ul>
</li>
<li>Responsive to issues and PRs assigned to them</li>
<li>Responsive to mentions of teams they are members of</li>
<li>
Active owner of code they have contributed (unless ownership is explicitly transferred)
<ul>
<li>Code is well tested</li>
<li>Keeps the tree green</li>
<li>Addresses bugs or issues discovered after code is accepted</li>
</ul>
</li>
<li>They can be assigned to issues and PRs, and people can ask members for reviews with a <code>/cc @username</code>.</li>
</ul>
<p><strong>Note:</strong> Members who frequently contribute code are expected to proactively
perform code reviews and work towards becoming a primary <em>approver</em> for the
reopository that they are active in.
</p>
<h3 id="approver">Approver</h3>
<p>Code approvers are able to both review and approve code contributions. While
code review is focused on code quality and correctness, approval is focused on
holistic acceptance of a contribution including: backwards / forwards
compatibility, subtle performance and correctness issues, alignment with upstream
features and plans, and in general are the drivers of the project.
</p>
<p><strong>Defined by:</strong> Inclusion in the Approver team in the Universal Blue GitHub organization</p>
<h4 id="requirements">Requirements</h4>
<ul>
<li>Member for at least 3 months</li>
<li>Primary reviewer for at least 5 PRs to the codebase</li>
<li>Reviewed or merged at least 20 substantial PRs to the codebase </li>
<li>Demonstrate sound technical judgement</li>
<li>
Responsible for project quality control via code reviews
<ul>
<li>With a focus on long term sustainability to the project</li>
</ul>
</li>
<li>Expected to be responsive to review requests as per [community expectations]</li>
<li>Mentor new contributors and members</li>
<li>
Deep understanding of our working relationship with Fedora and other upstreams
<ul>
<li>Is invested in keeping track of upstream issues that affect our repositories</li>
<li>Is comfortable reporting and testing issues upstream</li>
</ul>
</li>
</ul>
<h4 id="responsibilities-and-privileges">Responsibilities and privileges</h4>
<ul>
<li>Approver status may be a precondition to accepting large code contributions</li>
<li>
Demonstrate sound technical judgement
<ul>
<li>Is actively monitoring upstream projects and participating accordingly as good open source citizens.</li>
<li>This may include rejecting ideas in order to maintain project scope</li>
</ul>
</li>
<li>Responsible for project quality control via code reviews</li>
<li>Expected to be responsive to review requests as per [community expectations]</li>
<li>Mentor new contributors and reviewers</li>
</ul>
<h2 id="inactive-members">Inactive members</h2>
<p><em>Members are continuously active contributors in the community.</em></p>
<p>A core principle in maintaining a healthy community is encouraging active
participation. It is inevitable that people's focuses will change over time and
they are not expected to be actively contributing forever.
</p>
<p>However, being a member of one of the Universal Blue GitHub organizations comes with
an elevated set of permissions. These capabilities should not be used by those
that are not familiar with the current state of the project.
</p>
<p>Therefore members with an extended period away from the project with no activity
will be removed from the Universal Blue GitHub Organizations and will be required to
go through the org membership process again after re-familiarizing themselves
with the current state.
</p>
<h3 id="how-inactivity-is-measured">How inactivity is measured</h3>
<p>Inactive members are defined as members of one of the Universal Blue Organizations
with <strong>no</strong> contributions across any organization over the past 6 months. This is
measured by GitHub activity.
</p>
<p>After an extended period away from the project with no activity
those members would need to re-familiarize themselves with the current state
before being able to contribute effectively.
</p>
<h2 id="owner">Owner</h2>
<p>Jorge Castro (@castrojo), Kyle Gospo (@KyleGospo), and Benjamin Sherman (@bsherman) are in the owner group for a few reasons:</p>
<ul>
<li>Administrative things like billing info, and later on taxes and stuff.</li>
<li>
Distributed ownership is hard thing for a small open source project
<ul>
<li>Therefore are codified as as adminstrative owners, not a community leadership group</li>
<li>Are just Approvers that get stuck with the cloud bill</li>
</ul>
</li>
</ul>
<p>Defined by: Inclusion in the Owners team in the Universal Blue GitHub organization</p>
</div>
</div>
</section>
<!-- End Content Section -->
</main>
<!-- Footer -->
<footer class="page-section footer bg-gray-light-1 pb-30">
<div class="container">
<div class="row pb-120 pb-sm-80 pb-xs-50">
<div style="text-align:center;" class="col-md-4 col-lg-3 text-gray mb-sm-50">
<div class="mb-10 footer-logo">
<img src="content/ublue-mini.svg" width="100" height="100" alt="Universal Blue" />
</div>
<p>
Your community toolkit designed to reboot the Linux desktop. Built for the love of the game. Welcome to indie Cloud Native.
</p>
</div>
<div class="col-md-7 offset-md-1 offset-lg-2">
<div class="row mt-n30">
<!-- Footer Widget -->
<!--<div class="col-sm-4 mt-80">
</div>-->
<!-- End Footer Widget -->
<!-- Footer Widget -->
<div class="col-sm-6 mt-80">
<h3 class="fw-title">Documentation</h3>
<ul class="fw-menu clearlist">
<li>
<a href="mission.html">
Mission
</a>
</li>
<li>
<a href="values.html">
Values
</a>
</li>
<li>
<a href="membership.html">
Membership
</a>
</li>
<li>
<a href="code-of-conduct.html">
Code of Conduct
</a>
</li>
<li>
<a href="contributing.html">
Contributing
</a>
</li>
</ul>
</div>
<!-- End Footer Widget -->
<!-- Footer Widget -->
<div class="col-sm-6 mt-80">
<h3 class="fw-title">Social Media</h3>
<ul class="fw-menu clearlist">
<li>
<a href="https://universal-blue.discourse.group/" rel="noopener nofollow" target="_blank">
<i class="fa-brands fa-discourse"></i>
Discourse
</a>
</li>
<li>
<a href="https://fosstodon.org/@UniversalBlue" rel="noopener nofollow" target="_blank">
<i class="fa-brands fa-mastodon"></i>
Mastodon
</a>
</li>
<li>
<a href="https://www.youtube.com/c/JorgeCastro/videos" rel="noopener nofollow" target="_blank">
<i class="fa-brands fa-youtube"></i>
Youtube
</a>
</li>
<li>
<a href="https://discord.gg/WEu6BdFEtp" rel="noopener nofollow" target="_blank">
<i class="fa-brands fa-discord"></i>
Discord
</a>
</li>
<li>
<a href="https://www.answeroverflow.com/c/1072614816579063828" rel="noopener nofollow" target="_blank">
<i class="fa-solid fa-comment"></i>
Answer Overflow
</a>
</li>
</ul>
</div>
<!-- End Footer Widget -->
</div>
</div>
</div>
<!-- Footer Text -->
<div class="row text-gray">
<div class="col-md-4 col-lg-3">
<b>© Universal Blue <span id="current-year">2024</span></b>
</div>
<div class="col-md-7 offset-md-1 offset-lg-2 clearfix">
<span style="font-size:12px;">Universal Blue is not affiliated with Red Hat or the Fedora Project.</span>
<!-- Back to Top Link -->
<div class="local-scroll float-end mt-n20 mt-sm-10">
<a href="https://universal-blue.org/" class="link-to-top">
<i class="mi-arrow-up size-24"></i>
<span class="visually-hidden">Scroll to top</span>
</a>
</div>
<!-- End Back to Top Link -->
</div>
</div>
<!-- End Footer Text -->
</div>
</footer>
<!-- End Footer -->
</div>
<!-- End Page Wrap -->
<!-- JS -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js" integrity="sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap/5.1.3/js/bootstrap.bundle.min.js" integrity="sha512-pax4MlgXjHEPfCwcJLQhigY7+N8rt6bVvWLFyUMuxShv170X53TRzGPmPkZmGBhk+jikR8WBM4yl7A9WMHHqvg==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/OwlCarousel2/2.3.4/owl.carousel.min.js" integrity="sha512-bPs7Ae6pVvhOSiIcyUClR7/q2OAsRiovw4vAkX+zJbw3ShAeeqezq50RIIcIURq7Oa20rW2n2q+fyXBNcU9lrw==" crossorigin="anonymous" referrerpolicy="no-referrer"></script>
<script src="js/plugins.js"></script>
<script src="js/all.js"></script>
<script type="text/javascript" src="https:///universal-blue.discourse.group/javascripts/embed-topics.js"></script>
<!-- End JS -->
</body>
</html>