Skip to content

Commit b54a880

Browse files
committed
First commit of governance document WIP"
DOCS: Fixed formatting in Governance document
1 parent 8b0be9e commit b54a880

File tree

1 file changed

+320
-0
lines changed

1 file changed

+320
-0
lines changed

governance.md

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

0 commit comments

Comments
 (0)