Skip to content

Commit

Permalink
SONiC quality guarantee definition (sonic-net#1370)
Browse files Browse the repository at this point in the history
Quality guarantee definition following TSC discussion and recommendation.
  • Loading branch information
liat-grozovik authored Sep 12, 2023
1 parent 361b1b9 commit 0bec71c
Showing 1 changed file with 71 additions and 0 deletions.
71 changes: 71 additions & 0 deletions doc/SONiC feature quality definition.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,71 @@
# SONiC Feature Quality Definition
This document defines the different quality level of SONiC features.
The document does not cover the SONiC development flow, but defines what is needed for a feature to qualified with a specific quality level.

The following qualify levels are defined:
- Alpha
- Beta
- General Availability (aka GA)

## Qualify level definition

### Alpha level
- Code PRs must come with unit tests (VS tests if applicable) aligned to code coverage
- For standalone feature it is required to have enabled/disabled via config_db and set to disabled
- Can go to master branch only
- For feature based on ASIC vendor SAI implementation: SAI is not available yet
- For feature based on Platform vendor API implementation: not available yet
- Should not cause any degradation on available features. Need to run and ensure sonic-mgmt test suits is passing with no degradation
- New sonic-mgmt test plan has been reviewed

### Beta level
- Code PRs must come with unit tests aligned to code coverage
- For standalone feature it is required to have enabled/disabled via config_db and set to disable
- Can go to master branch only
- For features based on ASIC vendor SAI implementation: SAI is available for at least 1 vendor
- For feature based on Platform vendor API implementation: available for at least 1 vendor
- Should not cause any degradation on production features use relevant sonic-mgmt. tests to confirm
- New sonic-mgmt test plan has been reviewed but partially implemented

### GA level
- Code PRs must come unit tests aligned to code coverage
- For standalone feature it is required to have enabled/disabled via config_db and set to enabled if HLD claims for it
- Can go to master branch and can be considered as backport feature if must
- For features based on ASIC vendor SAI implementation: SAI is available for at least 1 vendor
- For feature based on Platform vendor API implementation: available for at least 1 vendor
- Should not cause any degradation on production features use relevant sonic-mgmt tests to confirm
- New sonic-mgmt test plan has been signed off and fully implemented

## Quality level exposed in SONiC Release Notes
Extend the SONiC Release Notes which already covers the new features added to a release, with the quality release.
Adding that info the the Release Note will allow
- One way to declare features quality
- Contribution awareness for quality guarantee and aim for GA level
- Clear and simple way for SONiC end users (who are not in the details of the code itself)

So, instead of large list, use a table in the following format:

| Feature Name | Feature Description | HLD PR / PR Tracking | Maturity |
|:--------------|:------------|:------------|:-----------|

- If Beta/GA level maturity, ensure to provide a sonic-mgmt. PR or code as reference.
- If sonic-mgmt. tests comes after the Release note is released, it can still be modified
- Maturity to be approved by sonic test subgroup based on the availability of the test and the coverage it expects to gain
**Note:** quality can be provided only on tests results availability, and this is out of the scope of this discussion

## Action items
- Suggest improving HLD template and include a section for memory consumption. Notes to be taken:
- No memory consumption expected when the feature is disabled via compilation
- No growing memory consumption while feature is disabled by configuration
- Feature should be delivered with the following ON/OFF flags
- Feature can be runtime disabled/enabled via configuration
- Disabled while work in progress and majority is not GA
- Can be enabled by default (if agreed on HLD review) only in GA level only
- 202305 Release note should be aligned with the new suggestion. It will be used for sharing information on features and availability of the tests.
- Once TSC approves suggestion, take to SONiC community and inform contributors to align on 202311 feature contribution
- sonic-mgmt. group to decide on quality guarantee template. Ying Xie (Microsoft) and Roy Sror (Nvidia) to lead





0 comments on commit 0bec71c

Please sign in to comment.