|
| 1 | +--- |
| 2 | +hip: "0007" |
| 3 | +title: "Document and Track maintainer groups" |
| 4 | +authors: [ "Matt Farina <[email protected]>", "Scott Rigby <[email protected]>" ] |
| 5 | +created: "2025-10-07" |
| 6 | +type: "process" |
| 7 | +status: "draft" |
| 8 | +--- |
| 9 | + |
| 10 | +## Abstract |
| 11 | + |
| 12 | +There are numerous Helm maintainer groups where each can have zero or more Git |
| 13 | +repositories associated with them. This process provides a centralized method |
| 14 | +to document and track the maintainer groups, maintainers, and associated repos. |
| 15 | + |
| 16 | +## Motivation |
| 17 | + |
| 18 | +The current design uses a collection of documented and access controls to track |
| 19 | +this information while there are several gaps in the information. The Teams.md |
| 20 | +file attempted to track the different teams (i.e. maintainer groups, the org |
| 21 | +maintainers, etc). |
| 22 | + |
| 23 | +The repositories owned by a maintainer group, and the members of a group are |
| 24 | +not documented but are instead tracked via GitHub teams. The owners are |
| 25 | +scattered in various locations that are not consistent. In some cases they |
| 26 | +cannot be consistent (e.g. community management which does not have a GitHub |
| 27 | +repo). This has lead to confusion with the Org Maintainers and others. |
| 28 | + |
| 29 | +## Rationale |
| 30 | + |
| 31 | +There is currently no consistent manner to document the codebases associated with |
| 32 | +a maintainer group or the members of a maintainer group. There are two examples we can look |
| 33 | +at for this situation. |
| 34 | + |
| 35 | +First, there are maintainer groups responsible for multiple repositories. Charts and the |
| 36 | +Org maintainers groups are two examples with multiple repositories. |
| 37 | +There is no location to publicly document this situation. |
| 38 | + |
| 39 | +Second, not all maintainer groups own a repository. Community management is an example |
| 40 | +of a maintainer group that does a significant amount of work without owning a source |
| 41 | +repository. |
| 42 | + |
| 43 | +This HIP aims to provide a single source of document to discover maintainer group |
| 44 | +repositories and owners. |
| 45 | + |
| 46 | +## Specification |
| 47 | + |
| 48 | +The source of truth will be a YAML file name [`maintainer-groups.yaml`](../maintainer-groups.yaml) |
| 49 | +stored at the root of the Helm community repository. It will have the following |
| 50 | +structure: |
| 51 | + |
| 52 | +``` |
| 53 | +maintainerGroups: |
| 54 | +- name: Helm Core |
| 55 | + ownersLink: https://raw.githubusercontent.com/helm/helm/master/OWNERS |
| 56 | + repos: |
| 57 | + - https://github.com/helm/helm |
| 58 | + |
| 59 | +- name: Charts |
| 60 | + owners: |
| 61 | + - unguiculus |
| 62 | + - ... |
| 63 | + emeritus: |
| 64 | + - foxish |
| 65 | + - ... |
| 66 | + repos: |
| 67 | + - https://github.com/helm/chart-releaser-action |
| 68 | + - https://github.com/helm/charts-repo-actions-demo |
| 69 | + - ... |
| 70 | +``` |
| 71 | + |
| 72 | +A maintainer group can only have either `ownersLink` (a URL to the location of the |
| 73 | +owners list) or `owners` (a list of owners). It cannot have both. This enables |
| 74 | +those who do not have a Git repo (e.g., community managers) and those with |
| 75 | +multiple repos and no primary one (e.g., charts) to have a documented list. |
| 76 | + |
| 77 | +When `owners` is used it can have an accompanying `emeritus`. When `ownersLink` |
| 78 | +is used the emeritus is expected to be listed in that file. |
| 79 | + |
| 80 | +## References |
| 81 | + |
| 82 | +* [Helm Governance](https://github.com/helm/community/blob/master/governance/governance.md) |
| 83 | + documents maintainer groups. |
| 84 | +* The [Teams.md file can be referenced in the community history](https://github.com/helm/community/blob/ecedb3ddea57749580bc4800cb1492fce9c9b332/Teams.md). |
0 commit comments