Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

SIG Node contributor ladder review guidance #6725

Merged

Conversation

derekwaynecarr
Copy link
Member

Which issue(s) this PR fixes:
Fixes #6612

As noted in the document, the SIG had a desire to establish transparent criteria for how it evaluates requests for reviewer and approver rights. This document has been reviewed by existing SIG Node and CI sub-project leads with input suggested over past many months.

To highlight a key desire for the SIG, top-level approval rights in the kubelet sub-project have a strong preference to acquiring prior approval rights in an intermediate sub-folder or sub-system or adjacent area like e2e testing or CRI (client or server) side. Since kubelet has intersection with both storage and networking code paths given our current project approach, making this explicit in our guidance felt appropriate given our project maturity.

Our goals are to maintain a high bar for security and reliability going forward, suggestions welcome!

@k8s-ci-robot k8s-ci-robot added cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. size/L Denotes a PR that changes 100-499 lines, ignoring generated files. labels Jun 30, 2022
@k8s-ci-robot k8s-ci-robot added approved Indicates a PR has been approved by an approver from all required OWNERS files. sig/node Categorizes an issue or PR as relevant to SIG Node. labels Jun 30, 2022
@derekwaynecarr
Copy link
Member Author

/cc @Random-Liu @dchen1107 @yujuhong @sjenning @mrunalp @klueska @ehashman @endocrimes @SergeyKanzhelev

Emeritus perspectives appreciated across key subsystems.
@dashpole @vishh @tallclair

@derekwaynecarr
Copy link
Member Author

ensuring time for additional feedback.

/hold

@k8s-ci-robot k8s-ci-robot added the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jun 30, 2022
@dchen1107
Copy link
Member

dchen1107 commented Jun 30, 2022

/lgtm

I reviewed and approved the original doc a while back. Waiting for others' feedback.

@mrunalp
Copy link
Contributor

mrunalp commented Jul 1, 2022

/lgtm

This is great!

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jul 1, 2022
@klueska
Copy link
Contributor

klueska commented Jul 1, 2022

Same as @dchen1107

I reviewed and approved the original doc a while back and see that my comments on that doc have been addressed in this PR.

/lgtm

We anticipate providing opportunities for emerging contributors to make these contributions where they express their desire for long term maintenance. This is facilitated during release planning when pairing approvers with contributors for new feature work and/or e2e health with more testing focused specific contributions as we maintain CI. Helping maintain our CI and test suite is a great way of demonstrating competency!

### Reviewer
Reviewer status is an indication that the person is committed to the SIG activities, technically sound, has accumulated enough context, and is overall trustworthy to help inform approvers and aid contributors. The requirements listed in the [membership document](../community-membership.md#reviewer) highlight this as well.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Maybe explicitly comment that you don't have to be a reviewer to add a review / comment on a PR.
Under what circumstances are informal reviews helpful?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Added following:

Reviewer status is an indication that the person is committed to the SIG activities, technically sound, has accumulated enough context, and is overall trustworthy to help inform approvers and aid contributors by applying an lgtm. Anyone is welcome to review a PR with a comment or feedback even if they do not have rights to apply an lgtm.

Copy link
Contributor

@swatisehgal swatisehgal left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks for working on this. This would be great source for existing and future contributors! I appreciate that the central theme of this document is how a potential contributor can establish and demonstrate trust in the community.


## New Contributors

SIG Node welcomes new contributors to the community, help is always desired. Not all contributors are able to provide sustained contribution, but each contribution is always welcome. This document intends to capture a leadership path for contributors that intend to provide sustain contribution to the SIG and its associated code base by taking on reviewer and approver responsibilities at various levels.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Might be worth providing a link to SIG Node subprojects and capturing some workstreams here like E2E testing, kubelet runtime, storage, resource management, pleg and networking to name a few. Given that Kubelet code base is large, new contributors could potentially benefit by focussing on a smaller set of sub projects and developing a level of expertise on subprojects as a step towards getting a grasp of Kubelet's code base in the long run.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

great suggestion, added a link.

Comment on lines 31 to 44
The following is the breakdown of requirements listed in the membership document broken down to these categories:

- Committed - proof of sustained contributions
- member for at least 3 months
- Technically sound
- Primary reviewer for at least 5 PRs to the codebase
- Reviewed or merged at least 20 substantial PRs to the codebase
- Has enough context
- Knowledgeable about the codebase
- Trustworthy - established trust with the community
- Sponsored by a subproject approver
- With no objections from other approvers
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I think it would be good to assign a mentorship / shadowing program for folks who want to become a reviewer if wanted. This will lower the bar for new folks to get into the SIG and the code as well.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We had one of these briefly in 2020. I'd love us to do the same again, but I'm not sure how effectively we could staff it :(


SIG Node approvers have a lot of responsibilities and it is a very demanding role as the project keeps expanding in capability. It is expected that the SIG Node approver keeps the codebase quality high by giving feedback, thoroughly reviewing code, and giving recommendations to SIG members and reviewers. SIG Node approvers are essentially gatekeepers to keep the code base at high quality. SIG Node maintains a rigidly high bar for becoming a SIG Node approver by developing trust in a community and demonstrating expertise with a bias towards initial code contributions over reviewing PRs.

SIG Node approver role is not based on a volume of ongoing work, there is no absolute quota. Approver role is based on accumulated trust and knowledge and it is not expected to require 100% full time commitment from any individual member. The expectation is that an active (non emeritus) approver is responsive to a direct ask to review a complex PR or KEP in their area of expertise when solicited. It is encouraged for a top-level approver to opt out of a review where another approver is more appropriate.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Do we want to handle the emeritus approvers handling here as well? At which point do we consider an approver as emeritus? I guess the easiest way would be to defer it to the global community cleanup like kubernetes/org#3094

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@saschagrunert i prefer to keep the current PR on how to grow scope.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Sounds good!

Copy link
Member

@kikisdeliveryservice kikisdeliveryservice left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

A few comments and clarifications as a reader.


## Goal

This document intends to define a standard for supporting community members to grow responsibility in the SIG. The SIG has a goal to scale individual participation using transparent criteria. It is aspirational, and should be re-evaluated to ensure we can meet the needs of the project with the resources available to participate. It is expected that it provides the SIG a log for future evolution of decision making criteria.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
This document intends to define a standard for supporting community members to grow responsibility in the SIG. The SIG has a goal to scale individual participation using transparent criteria. It is aspirational, and should be re-evaluated to ensure we can meet the needs of the project with the resources available to participate. It is expected that it provides the SIG a log for future evolution of decision making criteria.
This document intends to define a standard for supporting community members to grow responsibility in the SIG. The SIG has a goal to scale individual participation using transparent criteria. It is aspirational, and should be re-evaluated periodically to ensure we can meet the needs of the project with the resources available to participate. It is expected that it provides the SIG a log for future evolution of decision making criteria.


## SIG Node reviewers and approvers

SIG Node maintains Kubernetes components that are running large amounts of workloads across clouds, and standalone deployments. Changes in these components have a drastic effect on workload availability. This sets a high bar for SIG Node contributions and puts a lot of emphasis on reliability and security of these changes. Practices and policies of earlier stages of Kubernetes need to be adjusted to the current maturity level of Kubernetes.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I'm a little unclear on what the last sentence "Practices and policies..." is saying here in the context of this doc?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

earlier in the project, if you contributed a handful of PRs to a particular sub-project, it was very likely you had a broad context over that component because the component was much smaller in scope.


As a high level guidance, SIG Node reviewers and approvers must have a bias to say “no” in reviews and design discussions, and an initial bias towards coding over reviews to demonstrate a baseline for konwledge of code base. This high level guidance is dictated by the maturity stage of Kubernetes. It is better to have inefficiencies or known bugs than break existing workloads. It is also important to keep the codebase healthy and maintainable.

We anticipate providing opportunities for emerging contributors to make these contributions where they express their desire for long term maintenance. This is facilitated during release planning when pairing approvers with contributors for new feature work and/or e2e health with more testing focused specific contributions as we maintain CI. Helping maintain our CI and test suite is a great way of demonstrating competency!

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
We anticipate providing opportunities for emerging contributors to make these contributions where they express their desire for long term maintenance. This is facilitated during release planning when pairing approvers with contributors for new feature work and/or e2e health with more testing focused specific contributions as we maintain CI. Helping maintain our CI and test suite is a great way of demonstrating competency!
We anticipate providing opportunities for emerging contributors to make these contributions where they express their desire for long term maintenance. This is facilitated during release planning when pairing approvers with contributors for new feature work and/or specific contributions focused on testing and e2e health as we maintain our CI. Helping maintain our CI and test suite is a great way of demonstrating competency!

We anticipate providing opportunities for emerging contributors to make these contributions where they express their desire for long term maintenance. This is facilitated during release planning when pairing approvers with contributors for new feature work and/or e2e health with more testing focused specific contributions as we maintain CI. Helping maintain our CI and test suite is a great way of demonstrating competency!

### Reviewer
Reviewer status is an indication that the person is committed to the SIG activities, technically sound, has accumulated enough context, and is overall trustworthy to help inform approvers and aid contributors. The requirements listed in the [membership document](../community-membership.md#reviewer) highlight this as well.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Reviewer status is an indication that the person is committed to the SIG activities, technically sound, has accumulated enough context, and is overall trustworthy to help inform approvers and aid contributors. The requirements listed in the [membership document](../community-membership.md#reviewer) highlight this as well.
Reviewer status is an indication that the person is committed to the SIG activities, demonstrates technical depth, has accumulated enough context, and is overall trustworthy to help inform approvers and aid contributors. The requirements listed in the [membership document](../community-membership.md#reviewer) highlight this as well.

sig-node/sig-node-contributor-ladder.md Outdated Show resolved Hide resolved

There are different ways to earn trust:

**Deep expertise across multiplate sub-systems**

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
**Deep expertise across multiplate sub-systems**
**Deep expertise across multiple sub-systems**

- Making the most of reviews in a single area is a good indication that a subdirectory reviewer role may be preferred or top-level node reviewer. Finding the right balance helps balance the nominees future workload.
- A primary reviewer should drive the review of the PR without significant input / guidance from the approver or other reviewers.

**Has enough context**

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

As a reader, it feels like having context blends in with the technical depth/being "technically sound" above?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Agree, combined the sections.

- “alpha” - design proposal and discussions
- “beta” - initial customer feedback collection
- “GA/deprecation” - stabilizing feature, following PRRs, or managing deprecation.
- Demonstrate ability to stage changes and pass PRRs keeping end users experience and Kubernetes reliability as top priorities.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
- Demonstrate ability to stage changes and pass PRRs keeping end users experience and Kubernetes reliability as top priorities.
- Demonstrate ability to stage changes and pass PRRs keeping the end user experience and Kubernetes reliability as top priorities.

sig-node/sig-node-contributor-ladder.md Outdated Show resolved Hide resolved
Actively triage issues and PRs, provide support to contributors to drive their PRs to completion.

**Be present**
Participate in SIG Node meetings by speaking about KEPs or improvements driven, or find some other way to prove the identity behind GitHub handle.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
Participate in SIG Node meetings by speaking about KEPs or improvements driven, or find some other way to prove the identity behind GitHub handle.
Participate in SIG Node meetings by speaking about KEPs or improvements driven, or find some other way to engage SIG member outside of Github activities.

Is this closer to what you're looking for? I presume it's about engagement and not verifying identity?

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@kikisdeliveryservice it is about knowing there is a real person behind the GitHub handle. there is some context for this request based on past requests for membership growth. as a community, we do want to ensure we know the person by some visible engagement in a meeting, meet-up, conference, call, etc.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

gotcha, thanks for the clarification!

Copy link
Contributor

@sjenning sjenning left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

lgtm, thanks!

sig-node/sig-node-contributor-ladder.md Outdated Show resolved Hide resolved
@k8s-ci-robot
Copy link
Contributor

[APPROVALNOTIFIER] This PR is APPROVED

This pull-request has been approved by: derekwaynecarr, sjenning

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:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@k8s-ci-robot k8s-ci-robot removed the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jul 8, 2022
@derekwaynecarr
Copy link
Member Author

I pushed updates per the feedback.

Thanks everyone.

Removing the hold per feedback.

/hold cancel

@k8s-ci-robot k8s-ci-robot removed the do-not-merge/hold Indicates that a PR should not merge because someone has issued a /hold command. label Jul 8, 2022
@mrunalp
Copy link
Contributor

mrunalp commented Jul 8, 2022

/lgtm

@k8s-ci-robot k8s-ci-robot added the lgtm "Looks good to me", indicates that a PR is ready to be merged. label Jul 8, 2022
@k8s-ci-robot k8s-ci-robot merged commit 327a7d0 into kubernetes:master Jul 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
approved Indicates a PR has been approved by an approver from all required OWNERS files. cncf-cla: yes Indicates the PR's author has signed the CNCF CLA. lgtm "Looks good to me", indicates that a PR is ready to be merged. sig/node Categorizes an issue or PR as relevant to SIG Node. size/L Denotes a PR that changes 100-499 lines, ignoring generated files.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

sig-node: Document Reviewer/Approver requirements