# WG Code-Quality Charter

## Scope

The Code-Quality Working Group has two goals:

* (short-term) **focus on the improvement of code quality**
* (long-term) **create an inter-SIG process for identifying, agreeing on and addressing code quality issues**

The long-term goal is achieved when the process is implemented and executed as required.

## In scope

The main objective of this effort is to continuously improve the quality of the project codebase.

With this in mind, there is a need to define a clear scope on which areas and through what means this can be accomplished.

* Create and maintain code-quality guidelines, best practices and standards.
* Assure distribution of knowledge in regard to code quality.
  * This may include presentations, documentation, lectures, certifications, linters, etc.
* Enforcement of selected standards via the following methods:
  * Automation and active intervention in code reviews.
  * Codebase infrastructure. E.g reusable libraries.
* Management:
  * Prioritizing tasks.
  * Focusing on selected topics.
* Monitoring and identification of code-quality issues.

The WG will work on facilitating and managing the quality effort until enough tooling, documentation, code structure, reviewer and maintainer awareness is achieved.

## Stakeholders

### Special Interest Groups

* All SIGs claiming code ownership and producing code, currently
  * SIG Compute
  * SIG Network
  * SIG Storage
* SIG CI
  * automation purposes of code-quality measures

### Roles and responsibilities

#### Chairs [1]
- @EdDev
- @iholder101
- @{vacant}

#### Liaisons
- @dhiller

## Deliverables

The inter-SIG process definition will be manifested in one or more documents that define the quality effort:
* The tooling and documentation required
* The code structure metrics to be established and how they will be implemented
* How reviewer and maintainer awareness will be achieved

Also those documents will include how and when effective measures are executed.

## Timelines and Disbanding

The WG will decide at a certain point that the basic goal is achieved - when there is good enough documentation, tooling and metrics about the targets described above available. In that case it can decide to disband itself.

[1]: https://github.com/kubevirt/community/blob/main/membership_policy.md#working-group-wg-chair
