Skip to content

Commit

Permalink
Add GOVERNANCE.rst, based on the WarpX model (#3917)
Browse files Browse the repository at this point in the history
This is a draft of the GOVERNANCE.rst file for AMReX, required for HPSF
membership.

---------

Co-authored-by: Weiqun Zhang <WeiqunZhang@lbl.gov>
Co-authored-by: Axel Huebl <axel.huebl@plasma.ninja>
Co-authored-by: Ann Almgren <asalmgren@lbl.gov>
  • Loading branch information
4 people committed May 8, 2024
1 parent a72fb51 commit 09a109a
Show file tree
Hide file tree
Showing 3 changed files with 149 additions and 0 deletions.
1 change: 1 addition & 0 deletions Docs/sphinx_documentation/source/Governance.rst
@@ -0,0 +1 @@
../../../GOVERNANCE.rst
1 change: 1 addition & 0 deletions Docs/sphinx_documentation/source/index.rst
Expand Up @@ -64,6 +64,7 @@ Documentation on migration from BoxLib is available in the AMReX repository at D
External_Frameworks_Chapter
Regression_Testing_Chapter
Faq
Governance

.. toctree::
:maxdepth: 1
Expand Down
147 changes: 147 additions & 0 deletions GOVERNANCE.rst
@@ -0,0 +1,147 @@
.. _governance:

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 <https://github.com/orgs/AMReX-Codes/teams/amrex-steering-committee>`__

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 <https://github.com/orgs/AMReX-Codes/teams/amrex-technical-committee>`__

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 <https://github.com/orgs/AMReX-Codes/teams/amrex-contributors>`__

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.

0 comments on commit 09a109a

Please sign in to comment.