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