From 4d59761623c18ac4a73131fca2802befe0e235e8 Mon Sep 17 00:00:00 2001 From: Lianmin Zheng Date: Sun, 16 Nov 2025 20:43:12 -0800 Subject: [PATCH] [Doc] Update CI oncall list (#13396) Co-authored-by: sglang-bot Co-authored-by: Ying Sheng --- .github/MAINTAINER.md | 59 +++++++++++++++++++++++--------------- .github/workflows/lint.yml | 1 + 2 files changed, 37 insertions(+), 23 deletions(-) diff --git a/.github/MAINTAINER.md b/.github/MAINTAINER.md index 09fca2edf..baf81fa3e 100644 --- a/.github/MAINTAINER.md +++ b/.github/MAINTAINER.md @@ -1,40 +1,53 @@ # SGLang Code Maintenance Model -This documentation describes the code maintenance model for the SGLang project. +This document describes the code maintenance model for the SGLang project. Since SGLang is a large project involving multiple organizations and hardware platforms, we designed this model with the following goals: - Ensure a responsive and smooth review process. -- Allow fast iteration, so maintainers can sometimes bypass flaky CI tests for important PRs. +- Allow for fast iteration, so maintainers can sometimes bypass flaky CI tests for important PRs. ## Role Descriptions -There are four important roles in this maintenance model. Some are custom roles, while the others are roles predefined by GitHub. +There are four roles in this maintenance model. Some are custom roles, while others are predefined by GitHub. -- *Area Maintainer*: The person who drives the PR merge process. They have strong area expertise and hold a high code quality bar. +- **Merge Oncall**: The person who drives the PR merge process. They have strong area-specific expertise and uphold a high bar for code quality. - Permission: Merge PRs. Bypass branch protection rules if needed. - - Responsibility: Shepherd the merge of PRs assigned to your area. Revert or hotfix any issues related to your merge (especially if you bypass). -- *Codeowner*: The person who protects critical code. Without bypass, each PR needs at least one Codeowner approval for each modified file. Please note that this role is not an honor but a great responsibility because PRs cannot be merged without your approval (except when bypassed by an Area Maintainer). - - Permission: Approve PRs, allowing them to be merged without bypass. + - Responsibility: Shepherd the merge of PRs assigned to their area. Revert or hotfix any issues related to their merge (especially if they bypass). +- **Codeowner**: The person who protects critical code. Without a bypass, each PR needs at least one Codeowner approval for each modified file protected by [CODEOWNERS](./CODEOWNERS). Please note that this role is not an honor but a significant responsibility because PRs cannot be merged without your approval (except when bypassed by a Merge Oncall). + - Permission: Approve PRs, allowing them to be merged without a bypass. - Responsibility: Review PRs in a timely manner. -- *Write*: The person with write permission to the sglang repo. +- **Write**: A person with write permission to the SGLang repo. - Permission: Merge PRs if they have passed required tests and been approved by Codeowners. This role cannot bypass branch protection rules. - Responsibility: Review and merge PRs in a timely manner. -- *CI Maintainer*: The person who manages CI runners for specific hardware platforms. +- **CI Oncall**: A person who manages CI runners for specific hardware platforms. - Permission: Add CI runners. - Responsibility: Keep the CI runners up and running. -Note: Difference between Area Maintainer and Codeowner -- Area Maintainer is an active role who actively try to help merge PRs and can bypass CI if urgent. -- Codeowner is a passive protection rule provided by GitHub; it prevents accidental changes to critical code. -- The list of Area Maintainer is attached below. The list of Codeowner is in [CODEOWNERS](./CODEOWNERS) file. +__Note__: Difference between Merge Oncall and Codeowner +- The Merge Oncall is an active role held by someone who actively tries to help merge PRs and can bypass CI if needed. +- The Codeowner is a passive protection role provided by GitHub; it prevents accidental changes to critical code. +- The list of Merge Oncalls is attached below. The list of Codeowners is in the [CODEOWNERS](./CODEOWNERS) file. ## Pull Request Merge Process -1. Author submits a pull request (PR) and fills out the PR checklist. -2. A bot assigns this PR to an Area Maintainer and @-mention them. At the same time, GitHub will auto-request reviews from Codeowners. -3. The Area Maintainer coordinates the review (asking people to review) and approves the PR; the Codeowner approves the PR. -4. We can now merge the code: - - Ideal case: For each modified file, one Codeowner approves the PR. It also passes the required CI. Then anyone with write permission can merge the code. - - In cases where it is difficult to meet all requirements due to flaky CI or slow responses, an Area Maintainer can bypass branch protection to merge the PR. +1. The author submits a pull request (PR) and fills out the PR checklist. +2. A bot assigns this PR to a Merge Oncall and @-mentions them. At the same time, GitHub will automatically request reviews from Codeowners. +3. The Merge Oncall coordinates the review (e.g., asking people to review) and approves the PR; the relevant Codeowners also approve the PR. +4. The code can now be merged: + - **Ideal case:** For each modified file, one Codeowner has approved the PR. The PR has also passed the required CI tests. Then, anyone with write permission can merge the PR. + - **Exception:** In cases where it is difficult to meet all requirements (due to flaky CI or slow responses), a Merge Oncall can bypass branch protection to merge the PR. -## The List of Area Maintainers and Reviewers -TODO +## The List of Merge Oncalls and Reviewers -## The List of CI Maintainers -TODO +This list is based on the current situation. If you or someone you know would like to take on more responsibility and are qualified, please ping @Lianmin Zheng and @Ying Sheng in the Slack channel. They will start a nomination and internal review process. + +## The List of CI Oncalls +The format is @github-username (Slack username). + +### NVIDIA GPUs +@merrymercy (Lianmin Zheng), @Kangyan-Zhou (Kangyan Zhou), @ch-wan (Cheng Wan), @HanHan009527 (hanhan), @ishandhanani (Ishan Dhanani), @key4ng (Keyang Ru), @slin1237 (Simo Lin), @ShangmingCai (Shangming Cai) + +### AMD GPUs +@saienduri (Sai Enduri), @HaiShaw (Henry HAI) + +### Intel CPU and XPU +@mingfeima (Mingfei Ma), @DiweiSun (Diwei Sun) + +### Ascend NPUs +@iforgetmyname (Even Zhou) diff --git a/.github/workflows/lint.yml b/.github/workflows/lint.yml index 51ca181e4..b5ae13430 100644 --- a/.github/workflows/lint.yml +++ b/.github/workflows/lint.yml @@ -5,6 +5,7 @@ on: branches: [main] pull_request: branches: [main] + types: [synchronize, labeled] jobs: lint: