Skip to content

Incentivize maintainership: Formalize which teams are maintainers #3441

@jack-berg

Description

@jack-berg

Parent issue: Incentivize maintainership for long-term project health

Proposal

Establish a formal definition of which GitHub teams represent maintainers, codified in workstreams.yml.

Today, there are 73 GitHub teams with names ending in -maintainers, but there is no authoritative mapping between these teams and the SIGs defined in workstreams.yml. Some teams were created for projects that never materialized, some are redundant due to parent-child relationships, and other various quirks.

If we're going to tie governance rights to maintainer status — voting weight, project proposal roles, roadmap participation — we need a clear, auditable answer to "who is a maintainer?"

Why workstreams.yml

workstreams.yml is already the source of truth for how the project organizes its work. Each SIG entry includes its people (GC liaison, TC sponsors), meetings, Slack channels, and repositories. It's the natural place to also declare which GitHub team represents maintainers for each SIG.

This would extend each SIG entry with something like:

- id: java-sdk-instrumentation
  kind: sig
  ...
  people:
  - gcLiaison: trask
  - tcSponsor:
      username: jack-berg
      level: leading
  - maintainerTeam: java-maintainers   # <-- new
  resources:
  - repository: open-telemetry/opentelemetry-java
  ...

What this enables

  • Clear governance scope. When a process says "maintainers vote on X," we know exactly which teams and people that includes.
  • Auditable membership. workstreams.yml is version-controlled and reviewed via PR, unlike ad hoc GitHub team creation.
  • Repository ownership. Formalizing the relationship between SIGs, their maintainer teams, and their repositories in one place.
  • Cleanup opportunity. Forces us to reconcile the 73 existing -maintainers teams against the actual SIG structure and identify teams that are stale, redundant, or misclassified.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions