[docs/component-stability.md] Add criteria for graduating between stability levels (#11864)

<!--Ex. Fixing a bug - Describe the bug and how this fixes the issue.
Ex. Adding a feature - Explain what this achieves.-->
#### Description

Code ownership and maintenance of components continues to be an issue,
with varying levels of support across contrib. As we approach 1.0 and
the ability to mark components as stable, we want to make sure that
components that we deem as 'stable' have a healthy community around
them. We have three datapoints that we can leverage here: how many
codeowners a component has, how diverse these are in terms of employers
and how actively the codeowners have been responding to issues/PRs in
the recent past.

We need criteria that
1. Are reasonable predictors of the component health over the
short/medium term
2. Are not too onerous on the code owners

Some notes:
1. Some beta components do not meet the criteria listed on the PR. This
will be the case even after the transition for some components. This PR
makes no claim as to what should happen to these components stability
(so, de facto, they will stay as is).
2. The OTLP receiver and exporters do not meet this criteria today
because they don't have listed code owners. We can solve this either by
carving out an exception or by listing code owners.
3. We need automation and templates to enforce this.

<!-- Issue number if applicable -->
#### Link to tracking issue
Fixes #11850

---------

Co-authored-by: Christos Markou <chrismarkou92@gmail.com>
This commit is contained in:
Pablo Baeyens 2025-04-14 11:00:01 +02:00 committed by GitHub
parent 2cab46e990
commit 28ca163a92
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
1 changed files with 36 additions and 0 deletions

View File

@ -260,6 +260,42 @@ To move within the 'Maintained' ladder ("graduate"), the process for doing so is
3. If approved, a PR to change the stability level should be opened and MUST be approved by all
listed code owners.
## Graduation criteria
In addition to the requirements outlined above, additional criteria should be met before a component
can graduate to a higher stability level. These ensure that the component is ready for the increased
usage and scrutiny that comes with a higher stability level, and that the community around it is
sufficiently healthy.
If the graduation criteria are not met, the approver should provide feedback on what is missing and
how to address it. The component owners can then address the feedback and re-request graduation on
the same issue.
## In development to alpha
No additional criteria are required to graduate from development to alpha.
The component still needs to meet the general requirements for alpha components.
## Alpha to beta
To graduate any signal from alpha to beta on a component:
1. The component MUST have at least two active code owners.
3. Within the 30 days prior to the graduation request, the code owners MUST have reviewed and
replied to at least 80% of the issues and pull requests opened against the component. This
excludes general PRs or issues that are not specific to the component itself (e.g. repo-wide API
updates). It is not necessary that the issues and PRs are closed or merged, but that they have
been reviewed and replied to appropriately.
## Beta to stable
To graduate any signal from beta to stable on a component:
1. The component MUST have at least three active code owners.
3. Within the 60 days prior to the graduation request, the code owners MUST have reviewed and
replied to at least 80% of the issues and pull requests opened against the component. This
excludes general PRs or issues that are not specific to the component itself (e.g. repo-wide API
updates). It is not necessary that the issues and PRs are closed or merged, but that they have
been reviewed and replied to appropriately.
## Deprecation Information
When a component is moved to deprecated, a deprecation section should indicate the date it was deprecated