|
| 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. |
0 commit comments