You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: GOVERNANCE.md
+38-21Lines changed: 38 additions & 21 deletions
Original file line number
Diff line number
Diff line change
@@ -6,13 +6,13 @@ The PyMC Project (The Project) is an open source software project
6
6
affiliated with the 501c3 NumFOCUS Foundation. The goal of The Project is to
7
7
develop open source software and deploy open and public websites and services
8
8
for reproducible, exploratory and interactive computing.
9
-
The main focus of the Project is in scientific and statistical computing.
9
+
The main focus of The Project is in scientific and statistical computing.
10
10
The Software developed
11
11
by The Project is released under OSI approved open source licenses,
12
12
developed openly and hosted in public GitHub repositories under the
13
13
[pymc-devs GitHub organization](https://github.com/pymc-devs). Examples of
14
14
Project Software include the PyMC library and its documentation, etc.
15
-
The Services run by the Project consist of public websites and web-services
15
+
The Services run by The Project consist of public websites and web-services
16
16
that are hosted at [http://docs.pymc.io](https://docs.pymc.io)
17
17
18
18
The Project is developed by a team of distributed developers, called
@@ -21,7 +21,8 @@ documentation, designs or other work to one or more Project repositories,
21
21
or who have done significant work to empower the Community,
22
22
participating on [Discourse](https://discourse.pymc.io),
23
23
organizing [PyMCon](https://pymcon.com) or helped on other platforms and events.
24
-
Anyone can be a Contributor. Contributors can be affiliated with any legal
24
+
Anyone can be a Contributor.
25
+
Contributors can be affiliated with any legal entity or none.
25
26
The foundation of Project participation is openness and transparency.
26
27
27
28
There have been over 250 Contributors to the Project, their contributions are listed in the
@@ -52,9 +53,9 @@ The foundations of Project governance are:
52
53
Traditionally, Project leadership was provided by a BDFL (Chris Fonnesbeck) and
53
54
subset of Contributors, called Core Developers, whose active and consistent
54
55
contributions have been recognized by their receiving “commit rights” to the
55
-
Project GitHub repositories. In general all Project decisions are made through
56
+
Project GitHub repositories. In general all Project decisions were made through
56
57
consensus among the Core Developers with input from the Community. The BDFL
57
-
can, but rarely chooses to, override the Core Developers and make a final
58
+
could, but rarely chose to, override the Core Developers and make a final
58
59
decision on a matter.
59
60
60
61
While this approach has served us well, as the Project grows and faces more
@@ -85,7 +86,7 @@ Team members can be part of one, some or none of these dedicated teams.
85
86

86
87
87
88
Anyone working with The Project has the responsibility to personally uphold
88
-
the Code of Conduct. Core Contributors have the additional responsibility
89
+
the Code of Conduct. Recurrent Contributors have the additional responsibility
89
90
of _enforcing_ the Code of Conduct to maintain a safe community.
90
91
91
92
## Recurring Contributors
@@ -103,8 +104,9 @@ The Recurrent Contributor position will often be an intermediate step for people
103
104
in becoming Core Contributors once their contributions are frequent enough
104
105
and during a sustained period of time.
105
106
But it is also an important role by itself for people who want to be part of
106
-
the project but don't have the time or don't want the responsibilities that
107
-
come with being a Core Contributor.
107
+
the project on a more advisory-like role, as they for example might not have
108
+
the time availability or don't want the responsibilities that come
109
+
with being a Core Contributor.
108
110
109
111
### Recurring Contributor membership
110
112
Recurring Contributors can nominate any Contributor to participate in the
@@ -141,9 +143,12 @@ Contributors don't need to be part of any dedicated team.
141
143
## Core Contributors
142
144
Core Contributors are those individuals entrusted with the development and
143
145
well being of the Project due to their frequency of quality contributions over
144
-
a sustained period of time. They are the main governing and decision body
146
+
a sustained period of time.
147
+
148
+
They are the main governing and decision body
145
149
of the Project and are therefore given voting and managing rights to the Project
146
150
services (i.e. commit rights on GitHub or moderation rights on Discourse).
151
+
147
152
The exact permissions of all Core Contributors may not be the same
148
153
and depend on their team memberships. Even if they have commit rights,
149
154
Core Contributors should still have their pull requests reviewed by at least
@@ -163,7 +168,8 @@ ratified by the Steering Council.
163
168
For a nomination to be rejected, clear reasoning behind the decision must be
164
169
shared with the rest of the team. People whose nomination has been rejected can
165
170
be nominated at any time again in the future, three months after the previous
166
-
nomination at the earliest.
171
+
nomination at the earliest. The nomination process is explained below
172
+
in more detail in a section of its own.
167
173
168
174
### Current Core Contributors
169
175
Contributors who are also part of a dedicated team or are institutional
@@ -188,7 +194,7 @@ Contributors don't need to be part of any dedicated team.
188
194
* Marco E. Gorelli (dev, docs)
189
195
* Martina Cantaro (docs)
190
196
* Maxim Kochurov (dev - PyMC Labs)
191
-
* Meenal Jhajharia (dev, docs)
197
+
* Meenal Jhajharia (docs)
192
198
* Michael Osthege (dev)
193
199
* Oriol Abril-Pla (docs)
194
200
* Osvaldo Martin (dev, docs)
@@ -207,7 +213,11 @@ ensure, through working with the BDFL and taking input from the Community, the
207
213
long-term well-being of the project, both technically and as a community.
208
214
209
215
The Steering Council will have between 4 and 7 members with at least one member
210
-
per dedicated team and no more than 2 institutional members per company.
216
+
per dedicated team.
217
+
No more than 2 Council Members can report to one person or company
218
+
(including Institutional Partners) through employment or
219
+
contracting work (including the reportee, i.e. the reportee + 1 is the max).
220
+
211
221
212
222
During the everyday project activities, council members participate in all
213
223
discussions, code review and other project activities as peers with all other
@@ -380,7 +390,7 @@ Such conflict of interests include, but are not limited to:
380
390
- Financial interests, such as investments, employment or contracting work,
381
391
outside of The Project that may influence their work on The Project.
382
392
- Access to proprietary information of their employer that could potentially
383
-
leak into their work with the Project.
393
+
leak into their work with The Project.
384
394
385
395
All members of the Council, BDFL included, shall disclose to the rest of the
386
396
Council any conflict of interest they may have. Members with a conflict of
@@ -397,7 +407,9 @@ A nomination process is triggered automatically whenever a team member
397
407
requests so on one of the team's communication channels
398
408
(public Slack channels at the day of writing, preferably `#general`).
399
409
Nomination should be explicit regarding which roles and teams are
400
-
requested. Again, note that team members don't need to be part of any
410
+
suggested, but the council makes the final decision on
411
+
dedicated team membership.
412
+
Again, note that team members don't need to be part of any
401
413
dedicated team to be recurrent nor core contributors.
402
414
403
415
After this happens, the Steering Council will reach out to the candidate
@@ -423,7 +435,8 @@ intervene to make the final decision in a group vote.
423
435
Core Contributors can call for a vote to resolve a target issue
424
436
they feel has been stale for too long and for which
425
437
informal consensus appears unlikely.
426
-
For a vote to be called, the target issue must be at least 2 months old.
438
+
For a vote to be called, the target issue or discussion post (i.e. on Discourse)
439
+
must be at least 1 month old.
427
440
428
441
To do so, they have to open a proposal issue ticket labeled "Council Vote".
429
442
The proposal issue should contain a link to the target issue and
@@ -460,7 +473,10 @@ or public document detailing the
460
473
* Voting will remain open for at least 3 days.
461
474
* For the proposal to pass, at least 60% of the council must vote "Yes", and no more than 20% can vote "No".
462
475
463
-
For decisions about the project the Council will perform it directly on the proposal issue. For decisions about people, such as electing or ejecting Core Contributors, the Council will vote privately. However the decision will be posted publicly in an issue ticket.
476
+
For decisions about the project the Council will perform it directly
477
+
on the proposal issue. For decisions about people,
478
+
such as electing or ejecting Team Members, the Council will vote privately.
479
+
However the decision will be posted publicly in an issue ticket.
464
480
465
481
### Vote of no confidence
466
482
In exceptional circumstances, Council Members as well as Core Contributors
@@ -518,7 +534,7 @@ After voting:
518
534
each candidate having 60% or more of yes votes and less or
519
535
equal than 20% of no votes is chosen.
520
536
If the number of chosen candidates matches the number or range set for the
521
-
council/subcommittee being chosen and all extra constrained are met,
537
+
council/subcommittee being chosen and all extra constrains are met,
522
538
all candidates are confirmed and the election process stops here.
523
539
* In the event that not enough/too many candidates were confirmed or
524
540
the membership constraints were not met,
@@ -536,14 +552,15 @@ After voting:
536
552
requirements from being met.
537
553
* In the event of a tie there will be a runoff election for the tied candidates.
538
554
To avoid further ties and discriminate more among the tied candidates,
539
-
this vote will be held by Majority Judgment (MJ):
555
+
this vote will be held by Majority Judgment:
540
556
for each candidate, voters judge their suitability for office as either
541
557
"Excellent", "Very Good", "Good", "Acceptable", "Poor", or "Reject".
542
558
Multiple candidates may be given the same grade by a voter.
543
559
The candidate with the highest median grade is the winner.
544
560
* If more than one candidate has the same highest median-grade,
545
-
the MJ winner is discovered by removing (one-by-one) any grades equal
546
-
in value to the shared median grade from each tied candidate's total.
561
+
the Majority Judgment winner is discovered by removing (one-by-one)
562
+
any grades equal in value to the shared median grade from
563
+
each tied candidate's total.
547
564
This is repeated until only one of the previously tied candidates
548
565
is currently found to have the highest median-grade.
549
566
* If ties are still present after this second round, the winner will be chosen at random. First we make a alphanumerically sorted list of the names in the tie. Then we will draw one prior predictive sample from a `pm.Categorical` distribution over the elements in the list to determine the winner.
@@ -596,7 +613,7 @@ All tasks related to the project that are not specifically listed in the
596
613
description of a dedicated team are the responsibility of the PyMC team
597
614
as a whole. At the time of writing, this includes but is not limited to:
598
615
fundraising, issue triaging, running PyMC related events like PyMCon or
599
-
sprints, outreach or presence on social networks.
616
+
sprints, outreach, or presence on social networks.
0 commit comments