AMReX Governance
AMReX is led in an open governance model, described in this document.
Steering Committee
Current Roster
Ann Almgren
John Bell (chair)
Andrew Myers
Weiqun Zhang
See: GitHub team
Role
Members of the steering committee (SC) can change organizational settings, do administrative operations such as rename/move/archive repositories, change branch protection rules, etc.
SC members can call votes for decisions (technical or governance).
The SC can veto decisions of the technical committee (TC) by voting in the SC. The TC can override a veto with a 2/3rd majority vote in the TC. Decisions are documented in developer meeting notes and/or on the GitHub repository.
The SC can change the governance structure, but only in a unanimous vote.
Decision Process
Decisions of the SC usually happen in the developer meetings, via e-mail or public chat.
Decisions are made in a non-confidential manner, by the majority of votes cast by SC members.
Votes can be cast asynchronously, e.g., over a time period of 1-2 weeks. In tie situations, the chair of the SC acts as the tie breaker.
Appointment Process
New members of the SC can be appointed by unanimous vote of the current SC members.
SC members are expected to attend and contribute to regular developer meetings.
SC members can resign or be removed by majority vote, e.g., due to inactivity, inappropriate or otherwise negative behavior, or other reasons.
Technical Committee
Current Roster
Ann Almgren
Marc Day
Candace Gilet
Kevin Gott
Axel Huebl
Andrew Myers
Andy Nonaka
Jean Sexton
Weiqun Zhang
Michael Zingale
See: GitHub team
Role
The technical committee (TC) is the core governance body, where, under normal operations, most ideas are discussed and decisions are made. Individual TC members can approve and merge code changes. TC members are expected to seek approval of another maintainer for their own changes, except under exigent circumstances. TC members lead and weigh in on technical discussions and, if needed, can call for a vote of the TC for a technical decision. TC members can merge/close PRs and issues, and moderate (including blocking or muting) bad actors. The TC can propose governance changes to the SC.
Decision Process
Discussion in the TC usually happens in the developer meetings. Developer meetings can be scheduled by any member of the SC or TC.
If a member of the TC calls for a vote, the vote will be decided by the majority of the votes cast, provided that at least half of the TC members participate in the vote. If fewer than half of the TC members cast votes, the SC will make the decision according to the guidelines specified above.
Votes are cast in a non-confidential manner. Decisions are documented in the developer meeting notes and/or in the GitHub repository.
Individual TC members can suggest the addition of new contributors. The suggestion must be seconded by another TC member. Any TC member has the right to oppose the suggestion and call for a vote on the decision.
Appointment Process
TC members are the maintainers of AMReX. TC members are expected to attend and contribute to regular developer meetings.
New TC members can be suggested by either SC or TC members. Confirmation of a new TC member requires a majority of votes cast by either the SC or the TC. The SC can veto any new appointment.
Steering committee members can also be TC members.
TC members can resign or be removed by majority vote by either TC or SC due to inactivity, inappropriate or otherwise negative behavior, or other reasons.
Contributors
Current Roster
See: GitHub team
Role
Contributors are valuable, vetted developers of AMReX. Contributions can be in many forms and not all need to be code contributions. Examples include code pull requests, support in issues & user discussions, writing and updating documentation, writing tutorials, visualizations, R&D on algorithms, testing and benchmarking, etc. Contributors can participate in developer meetings and weigh in on discussions. Contributors can “triage” (i.e., add and remove labels to) pull requests, issues, and GitHub discussion pages. Contributors can comment on and review PRs (but not merge).
Decision Process
Contributors can individually decide on classification (triage) of pull requests, issues, and GitHub discussion pages.
Appointment Process
Appointed after contributing to AMReX (see above) through nomination by any member of the TC. Another member of the TC must second the nomination.
The role can be lost by resigning or by majority vote of either the TC or the SC due to inactivity, inappropriate or otherwise negative behavior, or other reasons.
Former Members
Former contributors do not play any role in the governance of AMReX. Instead, former (e.g., inactive) contributors are acknowledged separately in GitHub contributor tracking, the AMReX documentation, references, etc. as appropriate.
Former members of SC, TC and Contributors are not kept on the roster, since committee role rosters should reflect currently active members and the responsible governance body. Former members of the SC or TC also do not play any role in the governance of AMReX.