xref: /petsc/doc/community/governance.md (revision 09cc9507cb2a217d5da600f7e92d7374d9bb19e7)
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