diff --git a/generators/cmd/sigs/sig-list.gomd b/generators/cmd/sigs/sig-list.gomd
index 601c41a3..1434bdce 100644
--- a/generators/cmd/sigs/sig-list.gomd
+++ b/generators/cmd/sigs/sig-list.gomd
@@ -55,6 +55,15 @@ Each group's material is in its subdirectory in this project.
{{ end }}
{{end}}
+{{ if $.Sigs.Workinggroups }}
+### Working Groups
+
+| Name | Label [1] | Chairs [2] | Contact | Meetings |
+|------|-----------|---------|---------|----------|
+{{ range $wg := $.Sigs.Workinggroups }}{{ template "group" $wg }}
+{{ end }}
+{{end}}
+
{{ if $.Sigs.Committees }}
### Committees
diff --git a/pkg/sigs/types.go b/pkg/sigs/types.go
index ab7bb2bf..d379e043 100644
--- a/pkg/sigs/types.go
+++ b/pkg/sigs/types.go
@@ -20,26 +20,28 @@
package sigs
type Sigs struct {
- Sigs []*Group `yaml:"sigs"`
- Usergroups []*Group `yaml:"usergroups"`
- Committees []*Group `yaml:"committees"`
+ Sigs []*Group `yaml:"sigs"`
+ Workinggroups []*Group `yaml:"workinggroups"`
+ Usergroups []*Group `yaml:"usergroups"`
+ Committees []*Group `yaml:"committees"`
}
type Group struct {
Dir string
Name string
- MissionStatement string `yaml:"mission_statement,omitempty"`
- Label string `yaml:",omitempty"`
- Leadership *Leadership `yaml:",omitempty"`
- Meetings []*Meeting `yaml:",omitempty"`
- Contact *Contact `yaml:",omitempty"`
- SubProjects []*SubProjects `yaml:",omitempty"`
+ MissionStatement string `yaml:"mission_statement,omitempty"`
+ Label string `yaml:",omitempty"`
+ Leadership *Leadership `yaml:",omitempty"`
+ Meetings []*Meeting `yaml:",omitempty"`
+ Contact *Contact `yaml:",omitempty"`
+ SubProjects []*SubProject `yaml:",omitempty"`
}
type Contact struct {
- Slack string `yaml:"slack"`
- MailingList string `yaml:"mailing_list"`
- Teams []*Team `yaml:"teams"`
+ Slack string `yaml:"slack"`
+ MailingList string `yaml:"mailing_list"`
+ Teams []*Team `yaml:"teams"`
+ Liaison *OrgMember `yaml:"liaison"`
}
type Team struct {
@@ -59,16 +61,18 @@ type Meeting struct {
}
type Leadership struct {
- Chairs []*Chair
+ Chairs []*OrgMember
}
-type Chair struct {
+type OrgMember struct {
Github string
Name string
- Company string
+ Company string `yaml:",omitempty"`
}
-type SubProjects struct {
- Name string
- Owners []string
+type SubProject struct {
+ Name string
+ Description string `yaml:",omitempty"`
+ Owners []string
+ Leads []*OrgMember `yaml:",omitempty"`
}
diff --git a/sig-list.md b/sig-list.md
index f1886910..5f91e17c 100644
--- a/sig-list.md
+++ b/sig-list.md
@@ -43,6 +43,15 @@ Each group's material is in its subdirectory in this project.
+### Working Groups
+
+| Name | Label [1] | Chairs [2] | Contact | Meetings |
+|------|-----------|---------|---------|----------|
+|[Code-Quality Working Group](wg-code-quality/charter.md) |[wg/code-quality](https://github.com/kubevirt/kubevirt/labels/wg/code-quality)|
- [Edward Haas](https://github.com/EdDev), Red Hat
|[Slack](kubevirt-dev)
[Mailing List](https://groups.google.com/forum/#!forum/kubevirt-dev) |- KubeVirt Code-Quality Working Group meeting: [ Thu at 09:00 UTC (biweekly) ](https://zoom.us/j/93168599900)
|
+
+
+
+
[1]: https://github.com/kubevirt/project-infra/blob/main/docs/labels.md
[2]: https://github.com/kubevirt/community/blob/main/membership_policy.md
diff --git a/sigs.yaml b/sigs.yaml
index 891418e4..1a2744d0 100644
--- a/sigs.yaml
+++ b/sigs.yaml
@@ -205,6 +205,34 @@ sigs:
teams:
- name: kubevirt-community
description: General Discussion
+workinggroups:
+- dir: wg-code-quality
+ name: Code-Quality Working Group
+ mission_statement: |
+ The Code-Quality Working Group aims to create an inter-SIG process for identifying, agreeing on and addressing code quality issues
+ label: wg/code-quality
+ leadership:
+ chairs:
+ - github: EdDev
+ name: Edward Haas
+ company: Red Hat
+ meetings:
+ - description: KubeVirt Code-Quality Working Group meeting
+ day: Thu
+ time: "09:00"
+ tz: UTC
+ frequency: biweekly
+ url: https://zoom.us/j/93168599900
+ archive_url: https://docs.google.com/document/d/1fBgXan7AQ1LZOmQpNq38H11MmtfuWxOz9DPypyV9UL0/edit
+ contact:
+ slack: kubevirt-dev
+ mailing_list: https://groups.google.com/forum/#!forum/kubevirt-dev
+ teams:
+ - name: wg-code-quality
+ description: Code-Quality Working Group
+ liaison:
+ github: dhiller
+ name: "Daniel Hiller"
usergroups:
- dir: kubevirt-community
name: KubeVirt Community
diff --git a/wg-code-quality/wg-charter.md b/wg-code-quality/wg-charter.md
new file mode 100644
index 00000000..5bfd756f
--- /dev/null
+++ b/wg-code-quality/wg-charter.md
@@ -0,0 +1,59 @@
+# WG Code-Quality Charter
+
+## Scope
+
+The Code-Quality Working Group has two goals:
+
+* (short-term) **focus on the improvement of code quality** and
+* (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.
+ * Through automation and active intervention in code reviews.
+ * Through codebase infrastructure. E.g reusable libraries.
+* Management:
+ * Prioritizing tasks.
+ * Focusing on selected topics.
+* Monitoring and identification of code-quality issues.
+
+The WG will therefore work on processes through which the above goals can be achieved.
+
+## Stakeholders
+
+### Special Interest Groups
+
+* All SIGS claiming code ownership and producing code, currently
+ * SIG Compute,
+ * SIG Network and
+ * SIG Storage
+* sig-ci
+ * automation purposes of code-quality measures
+
+### Roles and responsibilities
+
+#### Chairs [1]
+- @EdDev
+- @your-github-handle-2
+
+#### Liaisons
+- @dhiller
+
+## Deliverables
+
+The inter-SIG process definition will be manifested in one or more documents that define processes or other means, also how and when these 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 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
\ No newline at end of file