Skip to content

Commit 13c1485

Browse files
committed
proofreading
1 parent 0f9134f commit 13c1485

File tree

1 file changed

+38
-21
lines changed

1 file changed

+38
-21
lines changed

GOVERNANCE.md

Lines changed: 38 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@ The PyMC Project (The Project) is an open source software project
66
affiliated with the 501c3 NumFOCUS Foundation. The goal of The Project is to
77
develop open source software and deploy open and public websites and services
88
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.
1010
The Software developed
1111
by The Project is released under OSI approved open source licenses,
1212
developed openly and hosted in public GitHub repositories under the
1313
[pymc-devs GitHub organization](https://github.com/pymc-devs). Examples of
1414
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
1616
that are hosted at [http://docs.pymc.io](https://docs.pymc.io)
1717

1818
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,
2121
or who have done significant work to empower the Community,
2222
participating on [Discourse](https://discourse.pymc.io),
2323
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.
2526
The foundation of Project participation is openness and transparency.
2627

2728
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:
5253
Traditionally, Project leadership was provided by a BDFL (Chris Fonnesbeck) and
5354
subset of Contributors, called Core Developers, whose active and consistent
5455
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
5657
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
5859
decision on a matter.
5960

6061
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.
8586
![community_diagram](docs/community_diagram.png)
8687

8788
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
8990
of _enforcing_ the Code of Conduct to maintain a safe community.
9091

9192
## Recurring Contributors
@@ -103,8 +104,9 @@ The Recurrent Contributor position will often be an intermediate step for people
103104
in becoming Core Contributors once their contributions are frequent enough
104105
and during a sustained period of time.
105106
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.
108110

109111
### Recurring Contributor membership
110112
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.
141143
## Core Contributors
142144
Core Contributors are those individuals entrusted with the development and
143145
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
145149
of the Project and are therefore given voting and managing rights to the Project
146150
services (i.e. commit rights on GitHub or moderation rights on Discourse).
151+
147152
The exact permissions of all Core Contributors may not be the same
148153
and depend on their team memberships. Even if they have commit rights,
149154
Core Contributors should still have their pull requests reviewed by at least
@@ -163,7 +168,8 @@ ratified by the Steering Council.
163168
For a nomination to be rejected, clear reasoning behind the decision must be
164169
shared with the rest of the team. People whose nomination has been rejected can
165170
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.
167173

168174
### Current Core Contributors
169175
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.
188194
* Marco E. Gorelli (dev, docs)
189195
* Martina Cantaro (docs)
190196
* Maxim Kochurov (dev - PyMC Labs)
191-
* Meenal Jhajharia (dev, docs)
197+
* Meenal Jhajharia (docs)
192198
* Michael Osthege (dev)
193199
* Oriol Abril-Pla (docs)
194200
* Osvaldo Martin (dev, docs)
@@ -207,7 +213,11 @@ ensure, through working with the BDFL and taking input from the Community, the
207213
long-term well-being of the project, both technically and as a community.
208214

209215
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+
211221

212222
During the everyday project activities, council members participate in all
213223
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:
380390
- Financial interests, such as investments, employment or contracting work,
381391
outside of The Project that may influence their work on The Project.
382392
- 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.
384394

385395
All members of the Council, BDFL included, shall disclose to the rest of the
386396
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
397407
requests so on one of the team's communication channels
398408
(public Slack channels at the day of writing, preferably `#general`).
399409
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
401413
dedicated team to be recurrent nor core contributors.
402414

403415
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.
423435
Core Contributors can call for a vote to resolve a target issue
424436
they feel has been stale for too long and for which
425437
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.
427440

428441
To do so, they have to open a proposal issue ticket labeled "Council Vote".
429442
The proposal issue should contain a link to the target issue and
@@ -460,7 +473,10 @@ or public document detailing the
460473
* Voting will remain open for at least 3 days.
461474
* For the proposal to pass, at least 60% of the council must vote "Yes", and no more than 20% can vote "No".
462475

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.
464480

465481
### Vote of no confidence
466482
In exceptional circumstances, Council Members as well as Core Contributors
@@ -518,7 +534,7 @@ After voting:
518534
each candidate having 60% or more of yes votes and less or
519535
equal than 20% of no votes is chosen.
520536
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,
522538
all candidates are confirmed and the election process stops here.
523539
* In the event that not enough/too many candidates were confirmed or
524540
the membership constraints were not met,
@@ -536,14 +552,15 @@ After voting:
536552
requirements from being met.
537553
* In the event of a tie there will be a runoff election for the tied candidates.
538554
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:
540556
for each candidate, voters judge their suitability for office as either
541557
"Excellent", "Very Good", "Good", "Acceptable", "Poor", or "Reject".
542558
Multiple candidates may be given the same grade by a voter.
543559
The candidate with the highest median grade is the winner.
544560
* 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.
547564
This is repeated until only one of the previously tied candidates
548565
is currently found to have the highest median-grade.
549566
* 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
596613
description of a dedicated team are the responsibility of the PyMC team
597614
as a whole. At the time of writing, this includes but is not limited to:
598615
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.
600617

601618
### Team structure in practice
602619
#### GitHub

0 commit comments

Comments
 (0)