This content was approved by the EdgeX TSC (12/14) and update of the EdgeX Charter, Section 4.c.
Project Team Roles
Projects are driven by the people - people contributing code, documentation, tests, etc. (some product artifact) as well as volunteers that serve to oversee and manage the incoming contributions.
There are three defined roles associated with artifact contributions. Note, these definitions are based on elements from https://www.linuxfoundation.org/resources/open-source-guides/participating-open-source-communities/ and https://opensource.guide/leadership-and-governance/.
Contributor: anyone who comments on an issue or pull request, people who add value to the project (whether it’s triaging issues, writing code, or organizing events), or anybody with a merged pull request (perhaps the narrowest definition of a contributor). Anyone, whether a member of EdgeX or not, can be a contributor; for example, anyone can make a pull request on one of the GitHub repositories and make a code contribution. Any contribution must have an appropriate DCO sign off and the author is required to follow the laws and policies with regard to copyright law, Apache 2 license agreements, and Linux Foundation policies. All contributions that follow these rules and policies are greatly appreciated, subject to project review and possible incorporation into the project.
Committer: the people with commit access to EdgeX repositories. It is a committer's prime responsibility to review, comment on, co-ordinate, accept and merge additions and patches from contributors and to maintain the design cohesion of the project components. Committers are members of the EdgeX community who feel responsibility over the direction of the project and are committed to improving it. Committers hold technical leadership within the EdgeX community and are typically people who have greatly contributed to the project and are considered reliable and responsible enough to be allowed to commit directly to all or some parts of the project.
Maintainer: Maintainers create the EdgeX repository and have access rights to perform administrative functions, archive or even delete them. Often, a member of the Linux Foundation, maintainers are also committers in EdgeX by default, but typically do not participate in reviews or contribute commits to the project except in performing administrative duties or to repair a repository issue.
Nomination and Approval of Maintainers and Committers
By default, project working group leads are automatically committers for repositories assigned to their working group. Working group leads can nominate additional committers for repositories assigned to their working group. Approval of new committers requires the approval of 3 members of the TSC with at least two approvals coming from TSC members from different companies. Nominations are initiated via email to the TSC (edgex-tsc@lists.edgexfoundry.org) and approvals must be documented in TSC meeting minutes. On approval, an email must be sent from the TSC chair, TSC vice-chair or applicable WG Lead to helpdesk@edgexfoundry.org to formally get the LF release engineer (releng) to add the new committer.
The TSC chair and vice chair are automatic committers for all repositories.
The TSC may appoint (with a simple majority vote) other committers and maintainers as it sees fit based on merit (such as architectural purview of the project, knowledge of the project, volume of contributions, etc.) or need.
The TSC can, by simple majority vote, revoke the committer or maintainer privilege.
As the Linux Foundation maintains the EdgeX repository collection, maintainers are typically appointed by the Linux Foundation and are generally employees of the LF. The TSC can approve additional maintainers by simple majority vote.
All changes to the maintainers and committers should be documented in TSC minutes and the change request submitted by the TSC chair, vice chair or appropriate working group chair to the LF releng at helpdesk@edgexfoundry.org.
Active Maintainers and Committers
The links below will take the reader to the list of committers/maintainers for each of the active EdgeX repositories.
Committers
edgex-go (mutliple WG lead responsibility): https://github.com/orgs/edgexfoundry/teams/edgex-go-committers
- device-sdk-go (device service WG responsibility): https://github.com/orgs/edgexfoundry/teams/device-sdk-go-committers/
- device-sdk-c (device service WG responsibility): https://github.com/orgs/edgexfoundry/teams/device-sdk-c-committers/
- device-mqtt-go (device service WG responsibility): https://github.com/orgs/edgexfoundry/teams/device-mqtt-go-committers/
- device-modbus-go (device service WG responsibility): https://github.com/orgs/edgexfoundry/teams/device-modbus-go-committers/
- device-random (device service WG responsibility): https://github.com/orgs/edgexfoundry/teams/device-random-committers/
- device-grove-c (device service WG responsibility): https://github.com/orgs/edgexfoundry/teams/device-grove-c-committers/
- device-opcua-c (device service WG responsibility): https://github.com/orgs/edgexfoundry/teams/device-opcua-c-committers/
- edgex-ui-go (general TSC responsibility): https://github.com/orgs/edgexfoundry/teams/edgex-ui-go-committers/
- edgex-ui-clojure (general TSC responsibility): https://github.com/orgs/edgexfoundry/teams/edgex-ui-clojure-committers/
- developer-scripts (general TSC responsibility): https://github.com/orgs/edgexfoundry/teams/developer-scripts-committers/
- blackbox-testing (test/QA WG responsibility): https://github.com/orgs/edgexfoundry/teams/blackbox-testing-committers/
- ci-managment (DevOps WG responsibility): https://github.com/orgs/edgexfoundry/teams/ci-management-committers/
- security-api-gateway (Security WG responsibility): https://github.com/orgs/edgexfoundry/teams/security-api-gateway-committers
- security-secret-store (Security WG responsibility): https://github.com/orgs/edgexfoundry/teams/security-secret-store-committers
Maintainers
edgex-go (mutliple WG lead responsibility): https://github.com/orgs/edgexfoundry/teams/edgex-go-committers/members?utf8=✓&query=+role%3Amaintainer
- device-sdk-go (device service WG responsibility): https://github.com/orgs/edgexfoundry/teams/device-sdk-go-committers/members?utf8=✓&query=+role%3Amaintainer
- device-sdk-c (device service WG responsibility): https://github.com/orgs/edgexfoundry/teams/device-sdk-c-committers/members?utf8=✓&query=+role%3Amaintainer
- device-mqtt-go (device service WG responsibility): https://github.com/orgs/edgexfoundry/teams/device-mqtt-go-committers/members?utf8=✓&query=+role%3Amaintainer
- device-modbus-go (device service WG responsibility): https://github.com/orgs/edgexfoundry/teams/device-modbus-go-committers/members?utf8=✓&query=+role%3Amaintainer
- device-random (device service WG responsibility): https://github.com/orgs/edgexfoundry/teams/device-random-committers/members?utf8=✓&query=+role%3Amaintainer
- device-opcua-c (device service WG responsibility): https://github.com/orgs/edgexfoundry/teams/device-opcua-c-committers/members?utf8=✓&query=+role%3Amaintainer
- edgex-ui-go (general TSC responsibility): https://github.com/orgs/edgexfoundry/teams/edgex-ui-go-committers/members?utf8=✓&query=+role%3Amaintainer
- edgex-ui-clojure (general TSC responsibility): https://github.com/orgs/edgexfoundry/teams/edgex-ui-clojure-committers/members?utf8=✓&query=+role%3Amaintainer
- developer-scripts (general TSC responsibility): https://github.com/orgs/edgexfoundry/teams/developer-scripts-committers/members?utf8=✓&query=+role%3Amaintainer
- blackbox-testing (test/QA WG responsibility): https://github.com/orgs/edgexfoundry/teams/blackbox-testing-committers/members?utf8=✓&query=+role%3Amaintainer
- ci-managment (DevOps WG responsibility): https://github.com/orgs/edgexfoundry/teams/ci-management-committers/members?utf8=✓&query=+role%3Amaintainer
- security-api-gateway (Security WG responsibility): https://github.com/orgs/edgexfoundry/teams/security-api-gateway-committers/members?utf8=✓&query=+role%3Amaintainer
- security-secret-store (Security WG responsibility): https://github.com/orgs/edgexfoundry/teams/security-secret-store-committers/members?utf8=✓&query=+role%3Amaintainer
For smaller, archived or less used EdgeX Foundry Repository committer / maintainer lists, see https://github.com/orgs/edgexfoundry/teams, click on the repository of interest, select on the members for that repository, and then selecting the Role (Committer, Maintainer, Member) from the Role drop down.