1*09cc9507SBarry Smith(governance)= 2*09cc9507SBarry Smith 3*09cc9507SBarry Smith# PETSc Governance 4*09cc9507SBarry Smith 5*09cc9507SBarry SmithPETSc is developed by a distributed group of **contributors** (often called developers in the PETSc documentation). 6*09cc9507SBarry SmithThey include individuals who have contributed code, documentation, designs, user support, 7*09cc9507SBarry Smithor other work to PETSc. Anyone can be a contributor. The PETSc **community** consists of the contributors, users, supporters, and anyone else interested in PETSc, 8*09cc9507SBarry Smithits use, or its future. [^source-footnote] 9*09cc9507SBarry Smith 10*09cc9507SBarry Smith## Consensus-based decision making by the community 11*09cc9507SBarry Smith 12*09cc9507SBarry SmithMost project decisions are made by consensus of the PETSc community. The primary goal of this approach is to ensure that the people who are 13*09cc9507SBarry Smithmost affected by and involved in any given change can contribute their knowledge in the confidence that their voices will be heard, because thoughtful 14*09cc9507SBarry Smithreview from a broad community is the best mechanism we know of for creating high-quality software. Anyone in the PETSc community can participate in and express their opinion 15*09cc9507SBarry Smithon decisions; they need not be a contributor. 16*09cc9507SBarry Smith 17*09cc9507SBarry SmithThe mechanism we use to accomplish this goal may be unfamiliar for those who are not experienced with the cultural norms around free/open-source software development. 18*09cc9507SBarry SmithWe provide a summary here, and suggest reading [Chapter 4: Social and Political Infrastructure](https://producingoss.com/en/social-infrastructure.html) of Karl Fogel’s 19*09cc9507SBarry Smith[Producing Open Source Software](https://producingoss.com/en/index.html), and in particular the section on Consensus-based Democracy, for a more detailed discussion. 20*09cc9507SBarry Smith 21*09cc9507SBarry SmithIn this context, consensus does not require: 22*09cc9507SBarry Smith 23*09cc9507SBarry Smith- that we wait to solicit everybody’s opinion on every change, 24*09cc9507SBarry Smith- that we hold explicit votes on anything, 25*09cc9507SBarry Smith- or that everybody is happy or agrees with every decision. 26*09cc9507SBarry Smith 27*09cc9507SBarry SmithConsensus means that we entrust everyone with the right to request a decision by the PETSc Council. 28*09cc9507SBarry SmithThe mere specter of a council review request ensures that community members 29*09cc9507SBarry Smithare motivated from the start to find a solution that everyone can live with – accomplishing our stated goal 30*09cc9507SBarry Smithof ensuring that all interested perspectives are taken into account. 31*09cc9507SBarry Smith 32*09cc9507SBarry SmithHow do we know when consensus has been achieved? In principle, this is rather difficult, since consensus 33*09cc9507SBarry Smithis defined by the absence of requests for a PETSc Council decision, which requires us to somehow prove a negative. 34*09cc9507SBarry SmithIn practice, we use a combination of our best judgment 35*09cc9507SBarry Smith(e.g., a simple and uncontroversial bug fix posted on GitLab and reviewed by another developer is probably fine) 36*09cc9507SBarry Smithand best efforts (e.g., all substantive API changes must be posted to the mailing list in order to give the broader 37*09cc9507SBarry Smithcommunity a chance to catch any problems and suggest improvements; we assume that anyone who cares enough about 38*09cc9507SBarry SmithPETSc should be on the mailing list). If no-one bothers to comment on the mailing list 39*09cc9507SBarry Smithafter a few days, then it’s probably fine. And worst case, if a change is more controversial than expected, or a crucial critique 40*09cc9507SBarry Smithis delayed because someone was on vacation, then it’s no big deal: we apologize for misjudging the situation, back up, and sort things out. 41*09cc9507SBarry Smith 42*09cc9507SBarry Smith## PETSc Council 43*09cc9507SBarry Smith 44*09cc9507SBarry SmithWhen a decision cannot be made by community consensus, community members may request a formal vote by the **PETSc Council**. 45*09cc9507SBarry SmithThe role of the council is as follows. 46*09cc9507SBarry Smith 47*09cc9507SBarry Smith- Vote on decisions that cannot be made by consensus; with a simple majority vote of all council members being binding. 48*09cc9507SBarry Smith- Vote on changes to the NumFOCUS signatories which will be conducted by the council using the Schulze Method of ranked choice voting. 49*09cc9507SBarry Smith- Vote on the addition and removal of PETSc Council members; with a 2/3 majority vote of all council members. Anyone in the PETSc community can 50*09cc9507SBarry Smith be on the PETSc Council, one need not be a contributor. The initial council consists of the 15 most active code contributors, 51*09cc9507SBarry Smith plus two long-term contributors who now play important non-coding roles in the community. The initial high bias in the council towards contributors 52*09cc9507SBarry Smith is simply due to the few non-contributors who are heavily actively engaged in the community. 53*09cc9507SBarry Smith- Vote on {any}`changes to the governance policy<governance_changes>` (this document) with a 2/3 majority vote of all council members. 54*09cc9507SBarry Smith 55*09cc9507SBarry SmithVotes are public, presented in the usual discussion venues, and the voting period must remain open for at least seven days or until a required majority has been achieved. 56*09cc9507SBarry SmithThe current members of the PETSc Council are 57*09cc9507SBarry SmithMark Adams, 58*09cc9507SBarry SmithSatish Balay, 59*09cc9507SBarry SmithJed Brown, 60*09cc9507SBarry SmithJacob Faibussowitsch, 61*09cc9507SBarry SmithToby Isaac, 62*09cc9507SBarry SmithPierre Jolivet, 63*09cc9507SBarry SmithMatt Knepley, 64*09cc9507SBarry SmithLois McInnes, 65*09cc9507SBarry SmithRichard Tran Mills, 66*09cc9507SBarry SmithTodd Munson, 67*09cc9507SBarry SmithJose Roman, 68*09cc9507SBarry SmithBarry Smith, 69*09cc9507SBarry SmithStefano Zampini, 70*09cc9507SBarry SmithMrs. Hong Zhang-Sun, 71*09cc9507SBarry SmithMr. Hong Zhang, and 72*09cc9507SBarry SmithJunchao Zhang. 73*09cc9507SBarry Smith 74*09cc9507SBarry Smith(numfocus-signatories)= 75*09cc9507SBarry Smith 76*09cc9507SBarry Smith## NumFOCUS signatories 77*09cc9507SBarry Smith 78*09cc9507SBarry SmithAs a requirement of fiscal sponsorship by PETSc's membership in [NumFOCUS](http://numfocus.org) there are five NumFOCUS signatories from five institutions. 79*09cc9507SBarry SmithTheir role is to manage interactions with NumFOCUS and any project funding that comes through NumFOCUS. 80*09cc9507SBarry SmithIt is expected that such funds will be spent in a manner that is consistent with the non-profit mission of NumFOCUS. Changes in the signatories will 81*09cc9507SBarry Smithbe done by a vote of the PETSc Council. The current signatories are 82*09cc9507SBarry SmithJed Brown, 83*09cc9507SBarry SmithMatt Knepley, 84*09cc9507SBarry SmithBarry Smith, 85*09cc9507SBarry SmithStefano Zampini, and 86*09cc9507SBarry SmithHong Zhang-Sun. 87*09cc9507SBarry Smith 88*09cc9507SBarry Smith(governance_changes)= 89*09cc9507SBarry Smith 90*09cc9507SBarry Smith## Changes to the Governance Document 91*09cc9507SBarry Smith 92*09cc9507SBarry SmithMerge requests to <https://gitlab.com/petsc/petsc> on this file (`doc/community/governance.rst`) constitute proposed changes to the governance document. 93*09cc9507SBarry SmithAfter a community discussion of the proposed changes, the PETSc Council can pass changes to the document with a 2/3 majority vote of all members. 94*09cc9507SBarry Smith 95*09cc9507SBarry Smith```{rubric} Footnotes 96*09cc9507SBarry Smith``` 97*09cc9507SBarry Smith 98*09cc9507SBarry Smith[^source-footnote]: Material in this document, including occasionally exact wording, is partially based on <https://github.com/dask/governance/blob/main/governance.md> and <https://numpy.org/doc/stable/dev/governance/governance.html>. 99