Skip to content

Commit a81390e

Browse files
author
Chris Fonnesbeck
authored
Merge pull request #1217 from pymc-devs/governance
Governance document
2 parents 7529539 + 383dc7b commit a81390e

File tree

1 file changed

+313
-0
lines changed

1 file changed

+313
-0
lines changed

governance.md

Lines changed: 313 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,313 @@
1+
# Main Governance Document
2+
3+
4+
The Project
5+
===========
6+
7+
The PyMC3 Project (The Project) is an open source software project
8+
affiliated with the 501c3 NumFocus Foundation. The goal of The Project is to
9+
develop open source software and deploy open and public websites and services
10+
for reproducible, exploratory and interactive computing. The Software developed
11+
by The Project is released under the Apache 2 open source license,
12+
developed openly and hosted in public GitHub repositories under the
13+
[GitHub organization](https://github.com/pymc-devs/pymc3). Examples of
14+
Project Software include the PyMC3 code and the Documentation, etc. The Services run by the
15+
Project consist of public websites and web-services that are hosted
16+
at [http://pymc-devs.github.io/pymc3/](http://pymc-devs.github.io/pymc3/)
17+
The Project is developed by a team of distributed developers, called
18+
Contributors. Contributors are individuals who have contributed code,
19+
documentation, designs or other work to one or more Project repositories.
20+
Anyone can be a Contributor. Contributors can be affiliated with any legal
21+
entity or none. Contributors participate in the project by submitting,
22+
reviewing and discussing GitHub Pull Requests and Issues and participating in
23+
open and public Project discussions on GitHub, Google+, Slack, Hackpad, Gitter chat
24+
rooms and mailing lists. The foundation of Project participation is openness
25+
and transparency.
26+
27+
Here is a list of the current Contributors to the main repository:
28+
- John Salvatier
29+
- Chris Fonnesbeck
30+
- Thomas Wiecki
31+
- Peadar Coyle
32+
- Taku Yoshioka
33+
- Austin Rochford
34+
- Jon Sedar
35+
36+
37+
There are also many other Contributors listed in the logs of other repositories of
38+
the PyMC and projects.
39+
40+
The Project Community consists of all Contributors and Users of the Project.
41+
Contributors work on behalf of and are responsible to the larger Project
42+
Community and we strive to keep the barrier between Contributors and Users as
43+
low as possible.
44+
45+
The Project is formally affiliated with the 501c3 NumFOCUS Foundation
46+
([http://numfocus.org](http://numfocus.org)), which serves as its fiscal
47+
sponsor, may hold project trademarks and other intellectual property, helps
48+
manage project donations and acts as a parent legal entity. NumFOCUS is the
49+
only legal entity that has a formal relationship with the project (see
50+
Institutional Partners section below).
51+
52+
### Governance
53+
54+
This section describes the governance and leadership model of The Project.
55+
56+
The foundations of Project governance are:
57+
58+
- Openness & Transparency
59+
- Active Contribution
60+
- Institutional Neutrality
61+
62+
Traditionally, Project leadership was provided by a BDFL (Chris Fonnesbeck) and
63+
subset of Contributors, called Core Developers, whose active and consistent
64+
contributions have been recognized by their receiving “commit rights” to the
65+
Project GitHub repositories. In general all Project decisions are made through
66+
consensus among the Core Developers with input from the Community. The BDFL
67+
can, but rarely chooses to, override the Core Developers and make a final
68+
decision on a matter.
69+
70+
While this approach has served us well, as the Project grows and faces more
71+
legal and financial decisions and interacts with other institutions, we see a
72+
need for a more formal governance model. Moving forward The Project leadership
73+
will consist of a BDFL and Steering Council. We view this governance model as
74+
the formalization of what we are already doing, rather than a change in
75+
direction.
76+
77+
BDFL
78+
----
79+
80+
The Project will have a BDFL (Benevolent Dictator for Life), who is currently
81+
Chris Fonnesbeck. As Dictator, the BDFL has the authority to make all final
82+
decisions for The Project. As Benevolent, the BDFL, in practice chooses to
83+
defer that authority to the consensus of the community discussion channels and
84+
the Steering Council (see below). It is expected, and in the past has been the
85+
case, that the BDFL will only rarely assert his/her final authority. Because
86+
rarely used, we refer to BDFL’s final authority as a “special” or “overriding”
87+
vote. When it does occur, the BDFL override typically happens in situations
88+
where there is a deadlock in the Steering Council or if the Steering Council
89+
asks the BDFL to make a decision on a specific matter. To ensure the
90+
benevolence of the BDFL, The Project encourages others to fork the project if
91+
they disagree with the overall direction the BDFL is taking. The BDFL is chair
92+
of the Steering Council (see below) and may delegate his/her authority on a
93+
particular decision or set of decisions to any other Council member at his/her
94+
discretion.
95+
96+
The BDFL can appointing his/her successor, but it is expected that the Steering
97+
Council would be consulted on this decision. If the BDFL is unable to appoint a
98+
successor, the Steering Council will make a suggestion or suggestions to the
99+
Main NumFOCUS Board. While the Steering Council and Main NumFOCUS Board will
100+
work together closely on the BDFL selection process, the Main NUMFOCUS Board
101+
will make the final decision.
102+
103+
Steering Council
104+
----------------
105+
106+
The Project will have a Steering Council that consists of Project Contributors
107+
who have produced contributions that are substantial in quality and quantity,
108+
and sustained over at least one year. The overall role of the Council is to
109+
ensure, through working with the BDFL and taking input from the Community, the
110+
long-term well-being of the project, both technically and as a community.
111+
112+
During the everyday project activities, council members participate in all
113+
discussions, code review and other project activities as peers with all other
114+
Contributors and the Community. In these everyday activities, Council Members
115+
do not have any special power or privilege through their membership on the
116+
Council. However, it is expected that because of the quality and quantity of
117+
their contributions and their expert knowledge of the Project Software and
118+
Services that Council Members will provide useful guidance, both technical and
119+
in terms of project direction, to potentially less experienced contributors.
120+
121+
The Steering Council and its Members play a special role in certain situations.
122+
In particular, the Council may:
123+
124+
- Make decisions about the overall scope, vision and direction of the
125+
project.
126+
- Make decisions about strategic collaborations with other organizations or
127+
individuals.
128+
- Make decisions about specific technical issues, features, bugs and pull
129+
requests. They are the primary mechanism of guiding the code review process
130+
and merging pull requests.
131+
- Make decisions about the Services that are run by The Project and manage
132+
those Services for the benefit of the Project and Community.
133+
- Make decisions when regular community discussion doesn’t produce consensus
134+
on an issue in a reasonable time frame.
135+
136+
### Council membership
137+
138+
To become eligible for being a Steering Council Member an individual must be a
139+
Project Contributor who has produced contributions that are substantial in
140+
quality and quantity, and sustained over at least one year. Potential Council
141+
Members are nominated by existing Council members and voted upon by the
142+
existing Council after asking if the potential Member is interested and willing
143+
to serve in that capacity. The Council will be initially formed from the set of
144+
existing Core Developers who, as of late 2014, have been significantly active
145+
over the last year.
146+
147+
When considering potential Members, the Council will look at candidates with a
148+
comprehensive view of their contributions. This will include but is not limited
149+
to code, code review, infrastructure work, mailing list and chat participation,
150+
community help/building, education and outreach, design work, etc. We are
151+
deliberately not setting arbitrary quantitative metrics (like “100 commits in
152+
this repo”) to avoid encouraging behavior that plays to the metrics rather than
153+
the project’s overall well-being. We want to encourage a diverse array of
154+
backgrounds, viewpoints and talents in our team, which is why we explicitly do
155+
not define code as the sole metric on which council membership will be
156+
evaluated.
157+
158+
If a Council member becomes inactive in the project for a period of one year,
159+
they will be considered for removal from the Council. Before removal, inactive
160+
Member will be approached by the BDFL to see if they plan on returning to
161+
active participation. If not they will be removed immediately upon a Council
162+
vote. If they plan on returning to active participation soon, they will be
163+
given a grace period of one year. If they don’t return to active participation
164+
within that time period they will be removed by vote of the Council without
165+
further grace period. All former Council members can be considered for
166+
membership again at any time in the future, like any other Project Contributor.
167+
Retired Council members will be listed on the project website, acknowledging
168+
the period during which they were active in the Council.
169+
170+
The Council reserves the right to eject current Members, other than the BDFL,
171+
if they are deemed to be actively harmful to the project’s well-being, and
172+
attempts at communication and conflict resolution have failed.
173+
174+
### Conflict of interest
175+
176+
It is expected that the BDFL and Council Members will be employed at a wide
177+
range of companies, universities and non-profit organizations. Because of this,
178+
it is possible that Members will have conflict of interests. Such conflict of
179+
interests include, but are not limited to:
180+
181+
- Financial interests, such as investments, employment or contracting work,
182+
outside of The Project that may influence their work on The Project.
183+
- Access to proprietary information of their employer that could potentially
184+
leak into their work with the Project.
185+
186+
All members of the Council, BDFL included, shall disclose to the rest of the
187+
Council any conflict of interest they may have. Members with a conflict of
188+
interest in a particular issue may participate in Council discussions on that
189+
issue, but must recuse themselves from voting on the issue. If the BDFL has
190+
recused his/herself for a particular decision, they will appoint a substitute
191+
BDFL for that decision.
192+
193+
### Private communications of the Council
194+
195+
Unless specifically required, all Council discussions and activities will be
196+
public and done in collaboration and discussion with the Project Contributors
197+
and Community. The Council will have a private mailing list that will be used
198+
sparingly and only when a specific matter requires privacy. When private
199+
communications and decisions are needed, the Council will do its best to
200+
summarize those to the Community after eliding personal/private/sensitive
201+
information that should not be posted to the public internet.
202+
203+
### Subcommittees
204+
205+
The Council can create subcommittees that provide leadership and guidance for
206+
specific aspects of the project. Like the Council as a whole, subcommittees
207+
should conduct their business in an open and public manner unless privacy is
208+
specifically called for. Private subcommittee communications should happen on
209+
the main private mailing list of the Council unless specifically called for.
210+
211+
Question: if the BDFL is not on a subcommittee, do they still have override
212+
authority?
213+
214+
Suggestion: they do, but they should appoint a delegate who plays that role
215+
most of the time, and explicit BDFL intervention is sought only if the
216+
committee disagrees with that delegate’s decision and no resolution is possible
217+
within the team. This is different from a BDFL delegate for a specific decision
218+
(or a recusal situation), where the BDFL is literally giving up his/her
219+
authority to someone else in full. It’s more like what Linus Torvalds uses with his
220+
“lieutenants” model.
221+
222+
### NumFOCUS Subcommittee
223+
224+
The Council will maintain one narrowly focused subcommittee to manage its
225+
interactions with NumFOCUS.
226+
227+
- The NumFOCUS Subcommittee is comprised of 5 persons who manage project
228+
funding that comes through NumFOCUS. It is expected that these funds will
229+
be spent in a manner that is consistent with the non-profit mission of
230+
NumFOCUS and the direction of the Project as determined by the full
231+
Council.
232+
- This Subcommittee shall NOT make decisions about the direction, scope or
233+
technical direction of the Project.
234+
- This Subcommittee will have 5 members, 4 of whom will be current Council
235+
Members and 1 of whom will be external to the Steering Council. No more
236+
than 2 Subcommitee Members can report to one person through employment or
237+
contracting work (including the reportee, i.e. the reportee + 1 is the
238+
max). This avoids effective majorities resting on one person.
239+
240+
241+
### Institutional Partners and Funding
242+
243+
The BDFL and Steering Council are the primary leadership for the project. No
244+
outside institution, individual or legal entity has the ability to own,
245+
control, usurp or influence the project other than by participating in the
246+
Project as Contributors and Council Members. However, because institutions are
247+
the primary funding mechanism for the project, it is important to formally
248+
acknowledge institutional participation in the project. These are Institutional
249+
Partners.
250+
251+
An Institutional Contributor is any individual Project Contributor who
252+
contributes to the project as part of their official duties at an Institutional
253+
Partner. Likewise, an Institutional Council Member is any Project Steering
254+
Council Member who contributes to the project as part of their official duties
255+
at an Institutional Partner.
256+
257+
With these definitions, an Institutional Partner is any recognized legal entity
258+
in the United States or elsewhere that employs at least one Institutional
259+
Contributor or Institutional Council Member. Institutional Partners can be
260+
for-profit or non-profit entities.
261+
262+
Institutions become eligible to become an Institutional Partner by
263+
employing individuals who actively contribute to The Project as part
264+
of their official duties. To state this another way, the only way for
265+
an Institutional Partner to influence the project is by actively
266+
contributing to the open development of the project, on equal terms
267+
with any other member of the community of Contributors and Council
268+
Members. Merely using PyMC3 Software or Services in an
269+
institutional context does not allow an entity to become an
270+
Institutional Partner. Financial gifts do not enable an entity to
271+
become an Institutional Partner. Once an institution becomes eligible
272+
for Institutional Partnership, the Steering Council must nominate and
273+
approve the Partnership.
274+
275+
If an existing Institutional Partner no longer has a contributing employee,
276+
they will be given a one-year grace period for other employees to begin
277+
contributing.
278+
279+
An Institutional Partner is free to pursue funding for their work on The
280+
Project through any legal means. This could involve a non-profit organization
281+
raising money from private foundations and donors or a for-profit company
282+
building proprietary products and services that leverage Project Software and
283+
Services. Funding acquired by Institutional Partners to work on The Project is
284+
called Institutional Funding. However, no funding obtained by an Institutional
285+
Partner can override The Project BDFL and Steering Council. If a Partner has
286+
funding to do PyMC3 work and the Council decides to not pursue that
287+
work as a project, the Partner is free to pursue it on their own. However in
288+
this situation, that part of the Partner’s work will not be under the
289+
PyMC3 banner and cannot use the Project trademarks in a way that
290+
suggests a formal relationship.
291+
292+
To acknowledge institutional contributions, there are two level of Institutional
293+
Partners, with associated benefits:
294+
295+
**Tier 1** = an institution with at least one Institutional Council Member
296+
297+
- Acknowledged on the PyMC websites, in talks and T-shirts.
298+
- Ability to acknowledge their own funding sources on the PyMC
299+
websites, in talks and T-shirts.
300+
- Unlimited participation in the annual Institutional Partners Workshop, held
301+
during the (planned) annual PyMC Project Retreat. This allows the
302+
Institutional Partner to invite as many of their own employees and funding
303+
sources and collaborators as they want, even if they are not project
304+
Contributors or Council Members.
305+
- Ability to influence the project through the participation of their Council
306+
Member.
307+
- Council Members are invited to the bi-annual PyMC Developer Meeting.
308+
309+
**Tier 2** = an institution with at least one Institutional Contributor
310+
311+
- Same benefits as Tier 1 level Partners, but:
312+
- Only Institutional Contributors are invited to the Institutional Partners
313+
Workshop and bi-annual PyMC Developer Meeting

0 commit comments

Comments
 (0)