Skip to content

Commit ae1d859

Browse files
WEB: Add governance page to the website (#47660)
1 parent 5ec6139 commit ae1d859

File tree

5 files changed

+331
-3
lines changed

5 files changed

+331
-3
lines changed

web/pandas/about/governance.md

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

web/pandas/about/team.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ If you want to support pandas development, you can find information in the [dona
4242

4343
Wes McKinney is the Benevolent Dictator for Life (BDFL).
4444

45-
The project governance is available in the [project governance documents](https://github.com/pandas-dev/pandas-governance).
45+
The project governance is available in the [project governance page](governance.html).
4646

4747
## Code of conduct committee
4848

web/pandas/community/blog/extension-arrays.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -212,7 +212,7 @@ partners][partners] involved in the pandas community.
212212
[ml]: https://mail.python.org/mailman/listinfo/pandas-dev
213213
[twitter]: https://twitter.com/pandas_dev
214214
[tracker]: https://github.com/pandas-dev/pandas/issues
215-
[partners]: https://github.com/pandas-dev/pandas-governance/blob/master/people.md
215+
[partners]: https://pandas.pydata.org/about/sponsors.html
216216
[eco]: http://pandas.pydata.org/pandas-docs/stable/ecosystem.html#extension-data-types
217217
[whatsnew]: http://pandas.pydata.org/pandas-docs/version/0.24/whatsnew/v0.24.0.html
218218
[geopandas]: https://github.com/geopandas/geopandas

0 commit comments

Comments
 (0)