OpenTelemetry is a project by, and for, its community. This document outlines the various roles and responsibilities of members, as well as the requirements for achieving each role. We encourage you to consider becoming a long-term contributor to the project, and moving up the ladder from member, all the way to maintainer!
Role | Responsibilities | Requirements | Defined by |
---|---|---|---|
member | active contributor in the community. reviewer of PRs | sponsored by 2 approvers or maintainers. multiple contributions to the project. | OpenTelemetry GitHub org member. |
triager | assist with project management and backlog organization. | nominated by a maintainer. help with issues for one month. | CONTRIBUTING, CODEOWNERS, or the README. |
approver | approve incoming contributions | highly experienced and active reviewer + contributor to a subproject | CODEOWNERS in GitHub |
maintainer | set direction and priorities for a subproject | demonstrated responsibility and excellent technical judgement for the subproject | CODEOWNERS, GitHub Team and repo ownership in GitHub |
emeritus | position of honor for former maintainers, approvers, and triagers | must have previously held a community role and not have been removed from that role for a Code of Conduct violation. | Listed as an emeritus maintainer/approver/triager in CONTRIBUTING, CODEOWNERS, or README |
specification sponsor | trusted collaborators for the specification | nominated by Technical Committee | Listed in Community Members -> Specification and Protos |
If you're a new contributor reading this guide -- welcome! We're excited you're here. New contributors should be welcomed and encouraged to participate in the project. Remember, contributions aren't limited to writing code, either -- reporting bugs, writing documentation, working on the website, or being a part of our community management are all valuable.
Established community members are expected to demonstrate their adherence to the principles in this document, familiarity with project organization, roles, policies, procedures, conventions, etc., and technical and/or writing ability. Role-specific expectations, responsibilities, and requirements are enumerated below.
Members are continuously active contributors in the community. They can have issues and PRs assigned to them. Members are expected to participate in SIG or SIGs and remain active contributors to the community.
Members can vote in the Governance Committee elections.
Defined by: Member of the OpenTelemetry GitHub organization
- Enabled two-factor authentication on their GitHub account
- Have made multiple contributions to the project or community. Contributions
may include, but is not limited to:
- Authoring or reviewing PRs on GitHub
- Filing or commenting on issues on GitHub
- Organizing and running activities (e.g. events, surveys) within the OpenTelemetry community
- Contributing to SIGs, subprojects, or community discussions (e.g. meetings, chat, email, and discussion forums)
- Joined the Slack channel
- Have read the contributor guide
- Actively contributing to 1 or more subprojects.
- Sponsored by 2 approvers. Note the following requirements for sponsors:
- Sponsors must have close interactions with the prospective member - e.g. code/design/proposal review, coordinating on issues, etc.
- Sponsors must be approvers or maintainers in at least 1 CODEOWNERS file in any repo in the OpenTelemetry org.
- Sponsors must be from multiple member companies to demonstrate integration across community.
- Open an
issue
against the
OpenTelemetry/community repo
- Ensure your sponsors are
@mentioned
on the issue - Complete every item on the checklist (preview the current version of the template)
- Make sure that the list of contributions included is representative of your work on the project.
- Ensure your sponsors are
- Have your sponsoring reviewers reply confirmation of sponsorship:
I support
- Once your sponsors have responded, your request will be reviewed by the Technical Committee (TC). Any TC member can review the requirements and add Members to the GitHub org.
- Responsive to issues and PRs assigned to them
- Active owner of code they have contributed (unless ownership is explicitly
transferred)
- Code is well tested
- Tests consistently pass
- Addresses bugs or issues discovered after code is accepted
- Can vote in the Governance Committee elections (see Members of Standing)
- Members can review and approve via the GitHub workflow. This review work is not sufficient to merge a PR. There will still need to be a review by an approver.
- Members can be assigned to issues and PRs, and people can ask members for
reviews with a
/cc @username
.
Note: members who frequently contribute code are expected to proactively perform code reviews and work towards becoming an approver for the subproject that they are active in. Acceptance of code contributions requires at least one approver in addition to the reviews by members.
Triagers assist the maintainers and approvers with project management and backlog organization. The specific workflows and triage requirements depend on the project, and are set by the project maintainers.
Defined by: Triage permissions, with the names of the current Triagers committed to git, either in CONTRIBUTING, CODEOWNERS, or the bottom of the README.
Triagers may be code contributors, but writing code is not a requirement for becoming a triager. Triagers are encouraged to be active participants in project meetings, chat rooms, and other discussion forums.
- Nominated by a maintainer, with no objections from other maintainers.
- Consistently interact with the community and help with issues for at least 1 month.
- Have an understanding of the goals and workflows defined by the maintainers.
- Respond to new PRs and Issues by asking clarifying questions.
- Organize the backlog by applying labels, milestones, assignees, and projects.
Code approvers are able to both review and approve code contributions, as well as help maintainers triage issues and do project management.
While code review is focused on code quality and correctness, approval is focused on holistic acceptance of a contribution including: backwards/forwards compatibility, adhering to API and flag conventions, subtle performance and correctness issues, interactions with other parts of the system, etc.
Defined by: CODEOWNERS workflow.
Approver status can be scoped to a part of the codebase. For example, critical core components may have higher bar for becoming an approver.
The following apply to the part of the codebase for which one would be an
approver in the CODEOWNERS
files.
- Reviewer of the codebase for at least 1 month
- Reviewer for or author of at least 10 substantial PRs to the codebase, with the definition of substantial subject to the maintainer's discretion (e.g. refactors/adds new functionality rather than one-line pulls).
- Nominated by a maintainer
- With no objections from other maintainers
- Done through PR to update the
CODEOWNERS
.
The following apply to the part of the codebase for which one would be an
approver in the CODEOWNERS
files.
- Approver status may be a precondition to accepting large code contributions
- Demonstrate sound technical judgement (may be asked to step down by a maintainer if they lose confidence of the maintainers)
- Responsible for project quality control via code reviews
- Focus on holistic acceptance of contribution such as dependencies with other features, backwards / forwards compatibility, API and flag definitions, etc
- Responsible for technical quality control of the documentation, related to their project
- Expected to be responsive to review requests (inactivity for more than 1 month may result in suspension until active again)
- Mentor contributors and reviewers
- May approve code contributions for acceptance
Note: This is a generalized high-level description of the role, and the specifics of the maintainer role's responsibilities and related processes MUST be defined for individual SIGs or subprojects.
Maintainers are the technical authority for a subproject in the OpenTelemetry project. They MUST have demonstrated both good judgement and responsibility towards the health of that subproject. Maintainers MUST set technical direction and make or approve design decisions for their subproject - either directly or through delegation of these responsibilities.
Defined by: GitHub organization ownership, permissions and entry in CODEOWNERS
files.
Unlike the roles outlined above, the maintainers of a subproject are typically limited to a relatively small group of decision makers and updated as fits the needs of the subproject.
The following apply to the subproject for which one would be a maintainer.
- Deep understanding of the technical goals and direction of the subproject
- Deep understanding of the technical domain (specifically the language) of the subproject
- Sustained contributions to design and direction by doing all of:
- Authoring and reviewing proposals
- Initiating, contributing and resolving discussions (emails, GitHub issues, meetings)
- Identifying subtle or complex issues in designs and implementation PRs
- Directly contributed to the subproject through implementation and / or review
- Aligning with the overall project goals, specifications and design principles defined by Technical Committee (TC). Bringing general questions and requests to the discussions as part of specifications project.
- Scheduling SIG meetings using the OpenTelemetry Public Calendar.
The following apply to the subproject for which one would be a maintainer.
- Make and approve technical design decisions for the subproject.
- Set technical direction and priorities for the subproject.
- Define milestones and releases.
- Decides on when PRs are merged to control the release scope.
- Mentor and guide approvers, reviewers, and contributors to the subproject.
- Escalate reviewer, approver, maintainer and other workflow concerns (i.e. responsiveness, availability, and general contributor community health) to the TC.
- Ensure continued health of subproject:
- Adequate test coverage to confidently release
- Tests are passing reliably (i.e. not flaky) and are fixed when they fail
- Up-to-date and accurate documentation
- Ensure a healthy process for discussion and decision making is in place.
- Work with other maintainers to maintain the project's overall health and success holistically.
Unless stated otherwise in a SIG charter ratified by the Technical Committee, a new maintainer is elected by vote of the existing maintainers of the SIG. The vote is officially started when a pull request to add a new maintainer is opened, and ends when the pull request is merged. The pull request may be merged when the following conditions are met:
- The person being nominated has accepted the nomination by approving the pull request
- All maintainers have approved the pull request OR a majority of maintainers have approved the pull request and no maintainer has objected by requesting changes on the pull request. In the case that all maintainers have not given approval, the pull request should stay open for a minimum of 5 days before merging.
The nominee is considered a maintainer after the pull request is merged.
If you feel like you meet the requirements above and are willing to take on the additional responsibilities and privileges of being a maintainer, it is recommended that you approach an existing maintainer about sponsoring your bid to become a maintainer. After you and your sponsor have discussed the role and its additional requirements and responsibilities, they may approach the other maintainers about a vote to confirm you as a new maintainer. If the maintainer does not believe you are ready for the role, or the subproject is not in need of additional maintainers, they may suggest an alternate role or growth areas in order to improve your chances to become a maintainer in the future.
For any healthy open source project, it is inevitable that contributors may move
on, step down, or otherwise reduce their role in the project for some period of
time. These people may have expertise in one or more area of the project, but no
longer have time to actively contribute or approve contributions. They are
encouraged to reflect this by adding themselves to the emeritus
section of the
CONTRIBUTING, CODEOWNERS, or README of the subproject they are stepping away
from. Company affiliations should be removed at this time as they may change
and may not be reflected accurately in the future. GitHub usernames listed under the
emeritus
section should be removed from the approvers list, and will no longer
have any official responsibilities with the project. When a contributor returns
to being more active, they may be promoted back to their previous position at
the discretion of the current maintainers following the process defined above.
Specification sponsors are trusted collaborators of the technical committee, and work to review, approve, and sponsor opentelemetry-specification issues and PRs.
Members are defined
in Community Members -> Specification and Protos
and are members of the spec-sponsors
team (TODO: add link to github team when
available). Specification sponsors SHOULD list
their areas of interest.
Specification sponsors are trusted to drive specification work which can be complex and highly impactful to downstream language SIGs and to the OpenTelemetry project as a whole. Approvals from specification sponsors count towards the approvals required to merge specification PRs. Therefore, there is a high bar to becoming a specification sponsor.
- Contributor to OpenTelemetry project for at least 1 year
- Has been the reviewer or author (through the sponsorship of another specification sponsor) of at least 10 substantial PRs to specification or related repositories
- Demonstrated sound technical judgement, and a deep understanding of the specification and the OpenTelemetry project
- Nominated by technical committee member ( see becoming a specification sponsor)
- Review, respond to, and approve issues / PRs when tagged or when within areas of interest.
- Sponsor issues, taking responsibility to be point on requirement gathering, developing solutions and prototypes, writing PRs, and responding to / incorporating PR feedback. This can be done by the sponsor themselves, or by another collaborator who is sponsored. If sponsoring another collaborator, the sponsor should work with them to ensure the work is consistent with existing specification.
- Demonstrate sound technical judgement.
- Frequently attend the specification SIG meeting where issues and PRs are synchronously discussed.
Sponsors who are unable to fulfill their responsibilities (e.g. no longer have time available to commit) are expected to be moved to emeritus sponsors. The TC may also vote to move a sponsor to emeritus.
Technical committee members nominate specification sponsors by opening a PR to the community repo to add the nominee to the specification sponsor list. The vote is officially started when a pull request is opened, and ends when the pull request is merged. The pull request may be merged when the following conditions are met:
- The person being nominated has accepted the nomination by approving the pull request.
- All TC members have approved the pull request or a majority of TC members have approved the pull request and no other TC member has objected by requesting changes on the pull request. In the case that all TC members have not given approval, the pull request should stay open for a minimum of 10 days before merging.
The nominee is considered a specification sponsor after the pull request is
merged. The merger should update the spec-sponsors
team with the new member.