This document explains the structure and roles of the Kata Review Team.
The Kata Containers project runs a rolling rota of members and volunteers who donate their time to assess, review, move forward, and reduce any PR and issue backlogs across the repositories.
Informally, this team is sometimes referred to as the "Kat Herding Team".
The rota is maintained in the community wiki, which is updated frequently.
Anybody can participate. You do not have to be a subject matter expert or Kata expert to help. All contributions are welcome.
Joining the team is a great way to expand your knowledge of the project and your skill set. Sometimes all you need to move a PR forward is for a community member to read the list of open PRs and ask the appropriate subject matter expert to review or help with the relevant PR.
Note that you must agree to our code of conduct if you want to become involved.
To participate and be added to the the rota, notify the Kata team through one of the contact methods listed on https://katacontainers.io before you edit this page. Be sure to include your contact details in the Rota table, preferably your GitHub name.
Before you join the team, we strongly recommend that you read the contribution guide. We suggest you also read the PR review guide for tips to consider as you review pull requests.
We suggest you read the documentation requirements and documentation review process to help you review documentation changes.
This section lists which activities the team should focus on.
If you are on the review team, we suggest you hang out on Slack or IRC in order to chat with each other. Nobody knows everything so do not hesitate to ask other folks on the team if you need help.
There is a useful wiki page that lists areas of interest for various members of the community.
We also have a
central GitHub CODEOWNERS
file.
This file type
defines individuals or teams that are responsible for code in a repository.
This can help identify the appropriate group of people to contact about
certain file changes.
See the GitHub reports for a list of open PRs.
Read the reviews section in the contributing guide to learn how to "ack" a PR.
See the Controlling the CI document.
When you review a PR, look at any CI failures shown at the bottom of the PR page. If any CI tests fail, review the logs to see if there are obvious issues.
Add a comment and a brief summary of the error message or issue to explain which CIs failed.
If a PR has not been touched for a while, add a comment to ask the author if they intend to update the pull request.
If the author does not respond, we may decide to use the assisted PR workflow, which you can also take part in.
See this section in the contributing guide.
If a PR is just a fix, add the stable-candidate
label and ask the author to
backport the fix to the last two
stable branches.
See the GitHub report for a list of issues that need a review.
All the repositories use a
standard set
of GitHub labels. For example, here are the runtime
repositories labels:
Review the list and become familiar with the labels, and then read on.
Notes:
All labels have a description to explain their use.
There are a lot of labels but only to cover as many scenarios as possible. Most issues only need a small number of labels to be applied to them.
Read each new issue carefully. Each issue is an arbitrary description of the problem or request, so we want to add meaningful labels to each for easier categorization and search.
If you are unsure of which labels to apply to an issue, talk to the rest of the Rota team or just ask on Slack/IRC.
Here is some general advice:
-
Security issue
Use the Vulnerability Management Process (VMP) to handle serious security issues.
However, immediately contact the team for advice if you notice a user has raised a normal issue (i.e. does not follow the VMP) that appears to be a security issue. The
security
label should be added to the issue if it does not need to follow the VMP. -
"Crasher bug"
If an issue reports a crash or catastrophic error scenario add one or more of the following relevant labels:
crash
data-loss
hang
resource-leak
unreliable
If you add one of the previous labels, contact the team to make them aware of the issues as soon as possible.
-
Top priority
Add the
highest-priority
label to flag and alert the team of extremely urgent issues. This indicates to the team that the issue should be fixed as soon as possible. -
Release gating
Add the
release-gating
label if you think the issue should be fixed before the next release. -
Important medium / long term task
Add the
highest-severity
label if the issue is very important but not time-critical. -
Simple task for new contributors
Add the
good-first-issue
label if you think the issue is simple with a quick resolution and "self-contained." This marks it as suitable for a new contributor. -
Invalid
Add the
invalid
label if you think the issue is not appropriate. -
Duplicate
Add the
duplicate
label along with a comment referencing the original issue if you find a duplicated issue. -
Limitation
Add the
limitation
label if the issue describes a system limitation.If the issue is a known limitation, close the issue with a comment referencing the original limitation issue number so the issue author understands why the issue was closed.
-
Teams
Add one of the
team/*
labels if you know which team the issue should be assigned to. Note, while some team names are the same as the respective repository, some are general (e.g.team/developer
).Add a comment to include the name of the team (use the
@team-name
syntax) if you know the GitHub team a particular label relates to. All teams are listed here. Contact the team if you do not have access to this list. They will either grant you access or tell you which team to specify. -
Related project
Add one of the
related/*
labels if the issue relates to another project. -
Issue is lacking something
Add one of the the
needs-*
labels if you think the issue is incomplete somehow.
We use
GitHub issue templates
to help guide users to raising the correct type of issue. All these templates
also automatically add a needs-review
label to the issues.
The idea of this label is to highlight issues that have not yet been reviewed by the team.
Therefore, after you review an issue with this label, which potentially
results in the application of additional labels, remove the needs-review
label to signal that the issue has been reviewed.
The more PRs you look at, the more likely you are to notice patterns or
anomalies of CI test failures.
Raising issues in the tests
repository
helps us to identify "flaky" tests and prioritize the problematic bugs that
make review/merges slower.
Search for the key failure message in all issues (open and closed) before you raise an issue. This allows you to see if the issue has been raised before:
-
https://github.com/kata-containers
Enter an error message in the search box and press enter.
If an issue has already been raised, add a comment on the PR to reference it. If it has not, raise a new issue and provide details of the failure. Add a PR comment to reference it.
The Team should discuss amongst themselves and nominate someone to write a brief summary of what the team accomplished in the week. Post the summary to the public mailing list.
Even if the week is quiet, a brief email is beneficial to show the community that we continue to progress PRs.
While there is no strict format for the weekly summary, it should mention significant PRs that have landed or been progressed. The summary does not need to be highly detailed or particularly long but it does help to include PR URLs to allow readers to find out further information.
The following link provides a template if you prefer to use one:
Other things to consider adding to the summary include:
- Were you particularly impressed with a piece of work (or team work)?
- Did you face any particular problems?
- Is there anything that can be done to make the process easier?
You can look at previous weekly reports on the mailing list for examples.