From 2d2c61fcb88b52c6c9941dedd7f8ee2318155e05 Mon Sep 17 00:00:00 2001 From: Daniel Hiller Date: Thu, 10 Oct 2024 10:48:33 +0200 Subject: [PATCH] WIP: create wg-code-quality Create wg charter, adjust md generator to add working groups, update types definition to latest requirements. Update sig-list.md to reflect changes. Signed-off-by: Daniel Hiller --- generators/cmd/sigs/sig-list.gomd | 9 +++++++ pkg/sigs/types.go | 40 +++++++++++++++++-------------- sig-list.md | 9 +++++++ sigs.yaml | 32 +++++++++++++++++++++++++ wg-code-quality/README.md | 37 ++++++++++++++++++++++++++++ wg-code-quality/wg-charter.md | 34 ++++++++++++++++++++++++++ 6 files changed, 143 insertions(+), 18 deletions(-) create mode 100644 wg-code-quality/README.md create mode 100644 wg-code-quality/wg-charter.md 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 691d2d06..54cd6a44 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)|
  1. [? ?](https://github.com/?), ?
  2. [Daniel Hiller](https://github.com/dhiller), Red Hat
|[Slack](kubevirt-dev)
[Mailing List](https://groups.google.com/forum/#!forum/kubevirt-dev) | | + + + + [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 18b48388..564c8fd3 100644 --- a/sigs.yaml +++ b/sigs.yaml @@ -201,6 +201,38 @@ 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: "?" + name: "? ?" + company: "?" + - github: dhiller + name: "Daniel Hiller" + company: Red Hat + meetings: + - description: KubeVirt Code-Quality Working Group meeting + day: Thu + time: "09:00" + tz: UTC + frequency: weekly + url: https://meet.google.com/dyc-ocnp-vww + archive_url: https://docs.google.com/document/d/1fBgXan7AQ1LZOmQpNq38H11MmtfuWxOz9DPypyV9UL0/edit + recordings_url: https://www.youtube.com/watch?v=2Jdb1uJSSs4&list=PLnLpXX8KHIYxs1c4QT0ohCOblKFa6dsIv + 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/README.md b/wg-code-quality/README.md new file mode 100644 index 00000000..bf0c3fc3 --- /dev/null +++ b/wg-code-quality/README.md @@ -0,0 +1,37 @@ +# Working Group Responsibilities + +All KubeVirt Working Groups (WGs) must define a charter. + +- The scope must define: + - what problem the WG is solving + - what deliverable(s) will be produced, and to whom + - when the problem is expected to be resolved +- The governance must outline: + - the responsibilities within the WG + - the roles owning those responsibilities + - which SIGs are stakeholders + +## Steps to create a WG charter + +1. Copy [the template][WG Template] into a new file under community/wg-*YOURWG*/charter.md +2. Fill out the template for your WG +3. Update [sigs.yaml] with the individuals holding the roles as defined in the template. +4. Create a pull request with a draft of your `charter.md` and `sigs.yaml` changes. Communicate it within your WG and the stakeholder SIGs and get feedback as needed. +5. Send the WG Charter out for review to kubevirt-dev@googlegroups.com. Include the subject "WG Charter Proposal: YOURWG" + and a link to the PR in the body. +6. Typically expect feedback within a week of sending your draft. Expect longer time if it falls over an + event such as KubeCon/CloudNativeCon or holidays. Make any necessary changes. +7. Once accepted, the maintainers will ratify the PR by merging it. + +## How to use the templates + +WGs should use [the template][WG Template] as a starting point. + + +## Goals + +The primary goal of the charters is to define the scope of the WG within KubeVirt and how the WG can determine whether it has achieved their solution. A majority of the effort should be spent on these concerns. + +[WG Template]: wg-charter +[sigs.yaml]: ../sigs.yaml + diff --git a/wg-code-quality/wg-charter.md b/wg-code-quality/wg-charter.md new file mode 100644 index 00000000..0f34e3a7 --- /dev/null +++ b/wg-code-quality/wg-charter.md @@ -0,0 +1,34 @@ +# WG Code-Quality Charter + +## Goals + +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 above mentioned process is implemented and executed as required. + +## Deliverables + +The inter-SIG process definition will be manifested in a document that defines the process itself, also how and when it is executed. + +## Governance + +### Stakeholder SIGs + +* 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 +- @your-github-handle-1 +- @your-github-handle-2 + +#### Liaisons +- @dhiller \ No newline at end of file