From 50104db5f3b7988a5be63092f62f967f0694729e Mon Sep 17 00:00:00 2001 From: Pablo Baeyens Date: Thu, 19 Dec 2024 12:26:26 +0100 Subject: [PATCH] [chore][docs/component-stability.md] Add a 'Moving between stability levels' section (#11937) #### Description Split off from #11864, describes how the graduation would work without any additional criteria. Rendered 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) ``` --------- Co-authored-by: Christos Markou --- docs/component-stability.md | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) diff --git a/docs/component-stability.md b/docs/component-stability.md index 831945a453a..599ae6978f6 100644 --- a/docs/component-stability.md +++ b/docs/component-stability.md @@ -188,6 +188,36 @@ 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. +## Moving between stability levels + +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. +2. An approver is assigned in a rotating basis to evaluate the request and provide feedback. For + vendor specific components, the approver should be from a different employer to the one owning + the component. +3. If approved, a PR to change the stability level should be opened and MUST be approved by all + listed code owners. + ## 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.