Skip to content

Commit

Permalink
[chore][docs/component-stability.md] Add a 'Moving between stability …
Browse files Browse the repository at this point in the history
…levels' section
  • Loading branch information
mx-psi committed Dec 17, 2024
1 parent dc12edb commit cf39cdc
Showing 1 changed file with 20 additions and 40 deletions.
60 changes: 20 additions & 40 deletions docs/component-stability.md
Original file line number Diff line number Diff line change
Expand Up @@ -188,9 +188,27 @@ they have no active code owners from the vendor even if there are other code own
owners may petition for its continued maintenance if they want, at which point the component will no
longer be considered vendor-specific.

## Graduating between stability levels
## Moving between stability levels

Components can graduate between stability levels. The process for doing so is as follows:
Components can move between stability levels. The valid transitions are described in the following diagram:

```mermaid
stateDiagram-v2
state Maintained {
InDevelopment --> Alpha
Alpha --> Beta
Beta --> Stable
}
InDevelopment: In Development
Maintained --> Unmaintained
Unmaintained --> Maintained
Maintained --> Deprecated
Deprecated --> Maintained: (should be rare)
```

To move within the 'Maintained' ladder ("graduate"), the process for doing so is as follows:

1. One of the component owners should file an issue with the 'Graduation' issue template to request
the graduation.
Expand All @@ -200,44 +218,6 @@ Components can graduate between stability levels. The process for doing so is as
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.
2. The code owners for non-vendor-specific components SHOULD have at least two different employers.
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.
2. The code owners for non-vendor-specific components SHOULD have at least two different employers.
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.

## Versioning

Components are Go modules and as such follow [semantic versioning](https://semver.org/). Go API stability guarantees are covered in the [VERSIONING.md](../VERSIONING.md) document.
Expand Down

0 comments on commit cf39cdc

Please sign in to comment.