kubernetes-sigs / release-team-shadow-stats

Kubernetes release team shadow program application analysis
Apache License 2.0
14 stars 6 forks source link

Rebuild project in go #23

Closed leonardpahlke closed 10 months ago

leonardpahlke commented 10 months ago

This PR introduces a rebuild of the project in go.

The project has two uses:

  1. create readable markdown files from the shadow application form. So team leads and the EA can work through them easily
  2. create diagrams based on the shadow application data. The plan was to release some of the data to the community for transparency. This never happened and its does not seem like the overall community is not very interested in this kind of data.

The rebuild just adds the first feature, but improves on it.

  1. In the past it was required to add the configuration in the python file. This was a barrier for some that are not that comfortable with python. The configuration is now managed over a yaml file. (config.yaml)
  2. The application form changed from release to release and the python code was in some parts not decoupled enough to support the changing config without changing parts in the code. For example, in 1.30 there is no question about newcomers and returnees (have you served in the release team before) - usually this was asked and seperate files were generated. E.g. Comms-Newcomer applicants, Comms-Returnee applicants. The python code does not support this and requires the split. The go code is more flexible see example below.
# config for 1.30
# ...
SplitFilesBy:
  - Identifiers:
      - "Which release roles are you interested in?"
    Alias: {}
    PossibleOptions:
      - "Enhancements"
      - "Documentation"
      - "Release Notes"
      - "Communications"
      - "Release Signal"

# config for 1.28 and 1.29
# …
SplitFilesBy:
  - Identifiers:
      - "Have you previously served on a Kubernetes Release Team?"
    Alias:
      "Yes": "Returner"
      "No": "Newcomer"
    PossibleOptions:
      - "Yes"
      - "No"
  - Identifiers:
      - "Which Release Team roles are you interested in?"
      - "Which Release Team roles are you interested in?.1"
    Alias: {}
    PossibleOptions:
      - "CI Signal"
      - "Enhancements"
      - "Documentation"
      - "Release Notes"
      - "Communications"
      - "Bug Triage"

Happy to expand on only of this. We could merge this code base now to k/release.

cc @puerco @saschagrunert @justaugustus @jeremyrickard @cpanato

leonardpahlke commented 10 months ago

Could someone take a look or put it on their todo list -- @puerco @saschagrunert @justaugustus @jeremyrickard @cpanato Thanks!

cpanato commented 10 months ago

i will do tomorrow

k8s-ci-robot commented 10 months ago

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: cpanato, leonardpahlke

The full list of commands accepted by this bot can be found here.

The pull request process is described here

Needs approval from an approver in each of these files: - ~~[OWNERS](https://github.com/kubernetes-sigs/release-team-shadow-stats/blob/main/OWNERS)~~ [cpanato] Approvers can indicate their approval by writing `/approve` in a comment Approvers can cancel approval by writing `/approve cancel` in a comment