109cc9507SBarry Smith(governance)= 209cc9507SBarry Smith 309cc9507SBarry Smith# PETSc Governance 409cc9507SBarry Smith 509cc9507SBarry SmithPETSc is developed by a distributed group of **contributors** (often called developers in the PETSc documentation). 609cc9507SBarry SmithThey include individuals who have contributed code, documentation, designs, user support, 709cc9507SBarry 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, 809cc9507SBarry Smithits use, or its future. [^source-footnote] 909cc9507SBarry Smith 1009cc9507SBarry Smith## Consensus-based decision making by the community 1109cc9507SBarry Smith 1209cc9507SBarry 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 1309cc9507SBarry Smithmost affected by and involved in any given change can contribute their knowledge in the confidence that their voices will be heard, because thoughtful 1409cc9507SBarry 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 1509cc9507SBarry Smithon decisions; they need not be a contributor. 1609cc9507SBarry Smith 1709cc9507SBarry 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. 1809cc9507SBarry 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 1909cc9507SBarry 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. 2009cc9507SBarry Smith 2109cc9507SBarry SmithIn this context, consensus does not require: 2209cc9507SBarry Smith 2309cc9507SBarry Smith- that we wait to solicit everybody’s opinion on every change, 2409cc9507SBarry Smith- that we hold explicit votes on anything, 2509cc9507SBarry Smith- or that everybody is happy or agrees with every decision. 2609cc9507SBarry Smith 2709cc9507SBarry SmithConsensus means that we entrust everyone with the right to request a decision by the PETSc Council. 2809cc9507SBarry SmithThe mere specter of a council review request ensures that community members 2909cc9507SBarry Smithare motivated from the start to find a solution that everyone can live with – accomplishing our stated goal 3009cc9507SBarry Smithof ensuring that all interested perspectives are taken into account. 3109cc9507SBarry Smith 3209cc9507SBarry SmithHow do we know when consensus has been achieved? In principle, this is rather difficult, since consensus 3309cc9507SBarry Smithis defined by the absence of requests for a PETSc Council decision, which requires us to somehow prove a negative. 3409cc9507SBarry SmithIn practice, we use a combination of our best judgment 3509cc9507SBarry Smith(e.g., a simple and uncontroversial bug fix posted on GitLab and reviewed by another developer is probably fine) 3609cc9507SBarry Smithand best efforts (e.g., all substantive API changes must be posted to the mailing list in order to give the broader 3709cc9507SBarry Smithcommunity a chance to catch any problems and suggest improvements; we assume that anyone who cares enough about 3809cc9507SBarry SmithPETSc should be on the mailing list). If no-one bothers to comment on the mailing list 3909cc9507SBarry Smithafter a few days, then it’s probably fine. And worst case, if a change is more controversial than expected, or a crucial critique 4009cc9507SBarry 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. 4109cc9507SBarry Smith 4209cc9507SBarry Smith## PETSc Council 4309cc9507SBarry Smith 4409cc9507SBarry SmithWhen a decision cannot be made by community consensus, community members may request a formal vote by the **PETSc Council**. 4509cc9507SBarry SmithThe role of the council is as follows. 4609cc9507SBarry Smith 4709cc9507SBarry Smith- Vote on decisions that cannot be made by consensus; with a simple majority vote of all council members being binding. 4809cc9507SBarry Smith- Vote on changes to the NumFOCUS signatories which will be conducted by the council using the Schulze Method of ranked choice voting. 4909cc9507SBarry 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 505b5d10d3SBarry Smith be on the PETSc Council, one need not be a contributor. The initial council consisted of the 15 most active code contributors, 5109cc9507SBarry 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 5209cc9507SBarry Smith is simply due to the few non-contributors who are heavily actively engaged in the community. 5309cc9507SBarry Smith- Vote on {any}`changes to the governance policy<governance_changes>` (this document) with a 2/3 majority vote of all council members. 5409cc9507SBarry Smith 5509cc9507SBarry 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. 5609cc9507SBarry SmithThe current members of the PETSc Council are 5709cc9507SBarry SmithMark Adams, 5809cc9507SBarry SmithSatish Balay, 5909cc9507SBarry SmithJed Brown, 60*d701762fSBarry SmithMartin Diehl, 6109cc9507SBarry SmithJacob Faibussowitsch, 6209cc9507SBarry SmithToby Isaac, 6309cc9507SBarry SmithPierre Jolivet, 6409cc9507SBarry SmithMatt Knepley, 6509cc9507SBarry SmithLois McInnes, 6609cc9507SBarry SmithRichard Tran Mills, 6709cc9507SBarry SmithTodd Munson, 6809cc9507SBarry SmithJose Roman, 6909cc9507SBarry SmithBarry Smith, 7009cc9507SBarry SmithStefano Zampini, 7109cc9507SBarry SmithMr. Hong Zhang, and 7209cc9507SBarry SmithJunchao Zhang. 7309cc9507SBarry Smith 7409cc9507SBarry Smith(numfocus-signatories)= 7509cc9507SBarry Smith 7609cc9507SBarry Smith## NumFOCUS signatories 7709cc9507SBarry Smith 7809cc9507SBarry SmithAs a requirement of fiscal sponsorship by PETSc's membership in [NumFOCUS](http://numfocus.org) there are five NumFOCUS signatories from five institutions. 7909cc9507SBarry SmithTheir role is to manage interactions with NumFOCUS and any project funding that comes through NumFOCUS. 8009cc9507SBarry 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 8109cc9507SBarry Smithbe done by a vote of the PETSc Council. The current signatories are 8209cc9507SBarry SmithJed Brown, 8309cc9507SBarry SmithMatt Knepley, 8409cc9507SBarry SmithBarry Smith, 8509cc9507SBarry SmithStefano Zampini, and 865b5d10d3SBarry SmithPierre Jolivet. 8709cc9507SBarry Smith 8809cc9507SBarry Smith(governance_changes)= 8909cc9507SBarry Smith 9009cc9507SBarry Smith## Changes to the Governance Document 9109cc9507SBarry Smith 9209cc9507SBarry SmithMerge requests to <https://gitlab.com/petsc/petsc> on this file (`doc/community/governance.rst`) constitute proposed changes to the governance document. 9309cc9507SBarry 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. 9409cc9507SBarry Smith 9509cc9507SBarry Smith```{rubric} Footnotes 9609cc9507SBarry Smith``` 9709cc9507SBarry Smith 9809cc9507SBarry 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