Skip to content

Overview of the Community Structure and Governance

Cameron Voisey edited this page Feb 21, 2023 · 28 revisions

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 vitalii@freedomfi.com Vitalii Kostenko
aharonnovo
amarpad amarpad@gmail.com Amar Padmanabhan
andreilee andreilee@fb.com Andrei Lee
ardzoht alexrod@fb.com Alex Rodriguez
arunuke arunt@fb.com Arun Thulasi
electronjoe smoeller@fb.com Scott Moeller
emakeev evgeniym@fb.com emak
HannaFar hfarag@fb.com Hanna Farag
hcgatewood hcgatewood@fb.com Hunter Gatewood(FB)
koolzz koolzz@fb.com Nick Yurchenko
lionelgo lionel.gauthier@eurecom.fr Lionel Gauthier(Eurecom)
mattymo matt@freedomfi.com Matthew Mosesohn
markjen markjen@fb.com Mark Jen
nstng nils.semmelrock@tngtech.com Nils Semmelrock
pshelar pbshelar@fb.com pravin
pruthvihebbani pruthvi.hebbani@radisys.com Pruthvi Hebbani
quentinDERORY derory.quentin@gmail.com Quentin Derory
rdefosse raphael.defosseux@openairinterface.org Raphael Defosseux(OSA)
rsarwad rsarwad@radisys.com Rashmi
sebathomas sebastian.thomas@tngtech.com Sebastian Thomas
ssanadhya ssanadhya@fb.com Shruti
themarwhal marwhal@fb.com Marie Bremner
tmdzk timdzik@fb.com Tim
ulaskozat kozat@fb.com Ulas Kozat
uri200 obatalla@fb.com Oriol Batalla
VinashakAnkitAman ankit.aman@radisys.com ANKIT KUMAR AMAN
xbend artur.debski@freedomfi.com 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.