Overview of the Community Structure and Governance - magma/magma GitHub Wiki

Teams and structure

Magma maintainers

Magma codeowners and approvers

Magma codeowners support a particular part of the project, as well as the Magma Core Foundation, as voting members of the Magma project's governance.

Code ownership is maintained within the CODEOWNERS file. The list of current approvers-* teams and their members is also available on Github.

In addition the list of current Magma maintainers is available on Github.

Becoming a codeowner

To become a codeowner, send a message in the #governance-codeowners channel saying "I'd like to be considered as a Magma codeowner for component XXX".

From there, an existing codeowner will shepherd the request. This will proceed through the following steps:

  • An existing codeowner will need to initiate your nomination. Any nomination to add contributor C to approvers team T should be posted on #governance-codeowners Slack channel, with the following template:
I would like to nominate _____ (Slack: ____ GitHub: ____) to be part of approvers-_____ to own magma/_____ . 
She/He has been contributing to <component name and highlights).
Here is a list of:
Committed PRs: 
Closed Issues:
Review History:
Other highlights:
  • From there, @wendallkaters can start a vote on the Slack channel for existing members of team T with a week's notice. Each existing member of team T has the option to vote Yes or No (no option to Abstain here). If a nomination receives a majority "Yes" vote, they get added to the approvers' team T.

Desired qualities of a codeowner

In order to receive a nomination, the project requests the following qualities in relation to the Magma project, with example ways to fulfill them:

  • Solid contributions history (example: 7+ PRs merged)
  • Solid code review history (example: 10+ code reviews)
  • Demonstrated ownership of particular component (example: contributions and code review for sessiond service)
  • Demonstrated technical leadership of particular component (example: driving component design/evolution during code review, and/or through writing 1+ design docs)

Please note that this set of qualities is not an exact requirement -- if you're interested in supporting the project as a codeowner, please reach out! We'd love to work with you, and work on a path toward you becoming a Magma codeowner.

Kick off a Codeowner vote

This item is for Magma maintainers and Technical Program Manager only

To kick off a vote to add a contributor to approvers team T, go to #approvers-T Slack channel and type /decide and press enter. The following fields should be filled out.

  • "Title/question": This should be of the form "Add (GH: @) to approvers-".
  • "Description": This should include the nomination blurb presented by an existing codeowner or the nominee in #governance-codeowners. The blurb should include links to indicate contribution history. Additionally, it is often useful to indicate whether the nominee is already a Magma maintainer or not.
  • "Option": There should be 3 options: 'Yes', 'Abstain', and 'No'.
  • "Close voting in…": Set this to 1 week
  • "Minimum approval": Set to the number of maintainers divided by 2.

IMPORTANT If the vote goes through, make sure to update the member information of the respective approvers team and the repo-magma-maintain list

Removing code-owners

  • An existing code-owner can always choose to leave the approvers-* team by sending a request to Kendall Waters Perez.

  • Periodically, each approvers-* team can also review the code owner activity and initiate a vote to remove a member from the team. Kendall Waters Perez can facilitate the voting, similar to the process for becoming a code-owner. This should be done at least once every year.

Codeowners

GitHub Email Slack (displayname)
119Vik [email protected] Vitalii Kostenko
aharonnovo
amarpad [email protected] Amar Padmanabhan
andreilee [email protected] Andrei Lee
ardzoht [email protected] Alex Rodriguez
arunuke [email protected] Arun Thulasi
electronjoe [email protected] Scott Moeller
emakeev [email protected] emak
HannaFar [email protected] Hanna Farag
hcgatewood [email protected] Hunter Gatewood(FB)
koolzz [email protected] Nick Yurchenko
lionelgo [email protected] Lionel Gauthier(Eurecom)
mattymo [email protected] Matthew Mosesohn
markjen [email protected] Mark Jen
nstng [email protected] Nils Semmelrock
pshelar [email protected] pravin
pruthvihebbani [email protected] Pruthvi Hebbani
quentinDERORY [email protected] Quentin Derory
rdefosse [email protected] Raphael Defosseux(OSA)
rsarwad [email protected] Rashmi
sebathomas [email protected] Sebastian Thomas
ssanadhya [email protected] Shruti
themarwhal [email protected] Marie Bremner
tmdzk [email protected] Tim
ulaskozat [email protected] Ulas Kozat
uri200 [email protected] Oriol Batalla
VinashakAnkitAman [email protected] ANKIT KUMAR AMAN
xbend [email protected] Artur Dębski

Governance bodies

Technical Steering Committee

The Magma Technical Steering Committee (TSC) is a governance body within the community that has an oversight of the technical direction of the project. In addition, the TSC also provides guidance to the community to build and maintain a balanced and sustainable ecosystem and encourage open collaboration.

You can find the current members of the TSC and the group's processes outlined on the Magma Confluence Technical Steering Committee wiki page.

The TSC and Magma community follows and operates by the Technical Charter of the Magma Core Foundation, that you can find in the Governance repository.

Outreach Committee

The Outreach Committee is focusing on increasing the awareness of Magma and diversifying project's active contributor base.

You can find information about the goals, processes and activities of the committee on the Outreach Committee wiki page.