diff --git a/.github/PULL_REQUEST_TEMPLATE/apply_to_be_a_member.md b/.github/PULL_REQUEST_TEMPLATE/apply_to_be_a_member.md index c4ee6ef..c04e8fc 100644 --- a/.github/PULL_REQUEST_TEMPLATE/apply_to_be_a_member.md +++ b/.github/PULL_REQUEST_TEMPLATE/apply_to_be_a_member.md @@ -16,4 +16,4 @@ Requirements: - [ ] In this PR, I have added my GitHub username to the `orgs.kgateway-dev.members` list in [org.yaml](https://github.com/kgateway-dev/community/blob/main/org.yaml) (maintaining alphabetical order) - [ ] In this PR, I have added my GitHub username to the `orgs.kgateway-dev.teams.org-members.members` list in [org.yaml](https://github.com/kgateway-dev/community/blob/main/org.yaml) (maintaining alphabetical order) -Provide a link to at least one PR that you have successfully pushed to one of the project's repos: +Provide a link to at least five PRs that you have successfully pushed to one of the project's repos: diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 8098334..055daa6 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -8,6 +8,8 @@ Here are some of the ways you can contribute: - [Report Security Vulnerabilities](#report-security-vulnerabilities) - [File issues](#file-issues) - [Find something to work on](#find-something-to-work-on) + - [Guidelines for First Contributions](#guidelines-for-first-contributions) + - [Guidelines for LFX Mentorship Program Candidates](#guidelines-for-lfx-mentorship-program-candidates) - [Community Assignments](#community-assignments) - [Assignment Process](#assignment-process) - [Stale Assignment Policy](#stale-assignment-policy) @@ -54,6 +56,44 @@ Additionally, the project has a [milestone](https://github.com/kgateway-dev/kgat Flaky tests are a common source of issues and a good place to start contributing to the project. You can find these issues by filtering with the `Type: CI Test Flake` label. If you see a test that is failing regularly, you can leave a comment asking if someone is working on it. +### Guidelines for First Contributions + +Welcome! If this is your first time contributing to kgateway, we’re excited to have you here! + +To help maintainers give you timely and thoughtful feedback, we have a few simple guidelines: + +1. **Maximum of THREE PRs at a time** + Non-organization members may have only **three open PRs under active review** in the `kgateway-dev/kgateway` repository at a time. + This helps us focus on providing constructive feedback on your contribution. The limit applies to all open PRs (including draft PRs). + Organization members are not subject to this limit. + +2. **Applying for organization membership** + After you have **five PRs merged** into the repository, you can apply for kgateway organization membership. This allows + you to open multiple PRs without being subject to the three-PR limit. See the [contributor ladder guide](CONTRIBUTOR_LADDER.md) + for details on roles and how to apply. + +3. **Not sure what to work on?** + A great place to start is issues labeled [`good first issue`](https://github.com/kgateway-dev/kgateway/issues?q=is%3Aissue+is%3Aopen+label%3A%22Good+First+Issue%22). + These issues are intentionally scoped to be approachable and are well-suited for first-time contributors. + +### Guidelines for LFX Mentorship Program Candidates + +kgateway has participated in the [Linux Foundation's LFX Mentorship Program](https://lfx.linuxfoundation.org/tools/mentorship) for several cycles. + +Candidates are expected to follow **all general contribution guidelines**, including the [Guidelines for First Contributions](#guidelines-for-first-contributions). + +Additional expectations for LFX applicants: + +- We _strongly_ encourage you to focus on one high-quality PR for an issue you have been assigned instead of opening +multiple PRs simultaneously. This ensures fair review capacity across all applicants. +- Please follow the community guidelines for issue assignment. **Do not self-assign issues.** Many issues require +maintainer triage and scoping before they are ready to be worked on. +- Post your PRs in the [`#kgateway-contributors`](https://cloud-native.slack.com/archives/C09LVSV2TV3) Slack channel to get early feedback from maintainers. +- Not following the [AI policy](/CODE-OF-CONDUCT.md#generative-ai-policy) may result in your LFX application being dismissed. + +Once you have five PRs merged into the repo, you may apply for organization membership, which removes the limit on open PRs. +See the [contributor ladder guide](CONTRIBUTOR_LADDER.md) for details on roles and how to apply. + ## Community Assignments We welcome community contributions and encourage members to work on issues. To maintain an active and healthy development environment, we have the following policies: diff --git a/CONTRIBUTOR_LADDER.md b/CONTRIBUTOR_LADDER.md index b558458..121eb27 100644 --- a/CONTRIBUTOR_LADDER.md +++ b/CONTRIBUTOR_LADDER.md @@ -38,7 +38,7 @@ An Organization Member must meet the responsibilities and has the requirements o * Responsibilities include: * Continues to contribute regularly, as demonstrated by having at least 3 GitHub contributions per year, as shown by [devstats](https://devstats.cncf.io/). * Requirements: - * Must have successful contributions to the project, including at least one merged PR. + * Must have successful contributions to the project, including at least _five_ merged PRs. * Must be member of the [`#kgateway`](https://cloud-native.slack.com/archives/C080D3PJMS4) and [`#kgateway-contributors`](https://cloud-native.slack.com/archives/C09LVSV2TV3) channels on the [CNCF Slack](https://slack.cncf.io). * Must have [2FA](https://docs.github.com/en/authentication/securing-your-account-with-two-factor-authentication-2fa) enabled on your GitHub account. * Privileges: