Skip to content

Commit 0985ffe

Browse files
authored
Merge branch 'main' into dev/sbo.public
2 parents 576f833 + ba9102f commit 0985ffe

File tree

205 files changed

+8669
-2671
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

205 files changed

+8669
-2671
lines changed

.github/CI_PERMISSIONS.json

Lines changed: 776 additions & 0 deletions
Large diffs are not rendered by default.

.github/CODEOWNERS

Lines changed: 16 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,28 +1,26 @@
1-
.github @merrymercy @Fridge003 @ispobock
2-
/docker @Fridge003 @ispobock @HaiShaw @ByronHsu
3-
/docker/npu.Dockerfile @ping1jing2
1+
.github @merrymercy @Fridge003 @ispobock @Kangyan-Zhou
2+
/docker @Fridge003 @ispobock @HaiShaw @ishandhanani
3+
/docker/npu.Dockerfile @ping1jing2 @iforgetmyname
44
/python/pyproject.toml @merrymercy @Fridge003 @ispobock
5-
/python/sglang/* @merrymercy @Ying1123 @Fridge003 @ispobock @hnyls2002
65
/python/sglang/multimodal_gen @mickqian
7-
/python/sglang/srt/constrained @hnyls2002
8-
/python/sglang/srt/disaggregation @ByronHsu @hnyls2002
9-
/python/sglang/srt/disaggregation/mooncake @ShangmingCai
10-
/python/sglang/srt/disaggregation/ascend @ping1jing2
11-
/python/sglang/srt/distributed @yizhang2077 @merrymercy
6+
/python/sglang/srt/constrained @hnyls2002 @DarkSharpness
7+
/python/sglang/srt/disaggregation @ByronHsu @hnyls2002 @ShangmingCai
8+
/python/sglang/srt/disaggregation/ascend @ping1jing2 @iforgetmyname
9+
/python/sglang/srt/distributed @yizhang2077 @merrymercy @ch-wan
1210
/python/sglang/srt/entrypoints @ispobock @CatherineSue @slin1237 @merrymercy @JustinTong0323
13-
/python/sglang/srt/eplb @fzyzcjy
11+
/python/sglang/srt/eplb @fzyzcjy @ch-wan
1412
/python/sglang/srt/function_call @CatherineSue @JustinTong0323
1513
/python/sglang/srt/layers @merrymercy @Ying1123 @Fridge003 @ispobock @HaiShaw @ch-wan @BBuf @kushanam @Edwardf0t1
16-
/python/sglang/srt/layers/quantization @ch-wan @BBuf @Edwardf0t1 @FlamingoPg
17-
/python/sglang/srt/layers/attention/ascend_backend.py @ping1jing2
14+
/python/sglang/srt/layers/quantization @ch-wan @BBuf @Edwardf0t1 @FlamingoPg @AniZpZ
15+
/python/sglang/srt/layers/attention/ascend_backend.py @ping1jing2 @iforgetmyname
1816
/python/sglang/srt/lora @Ying1123 @Fridge003 @lifuhuang
19-
/python/sglang/srt/managers @merrymercy @Ying1123 @zhyncs @hnyls2002 @xiezhq-hermann
17+
/python/sglang/srt/managers @merrymercy @Ying1123 @hnyls2002 @xiezhq-hermann @zhyncs
2018
/python/sglang/srt/mem_cache @merrymercy @Ying1123 @hnyls2002 @xiezhq-hermann
21-
/python/sglang/srt/mem_cache/allocator_ascend.py @ping1jing2
19+
/python/sglang/srt/mem_cache/allocator_ascend.py @ping1jing2 @iforgetmyname
2220
/python/sglang/srt/model_executor @merrymercy @Ying1123 @hnyls2002 @Fridge003 @ispobock
23-
/python/sglang/srt/model_executor/npu_graph_runner.py @ping1jing2
24-
/python/sglang/srt/multimodal @mickqian @JustinTong0323
25-
/python/sglang/srt/speculative @Ying1123 @merrymercy @kssteven418
21+
/python/sglang/srt/model_executor/npu_graph_runner.py @ping1jing2 @iforgetmyname
22+
/python/sglang/srt/multimodal @mickqian @JustinTong0323 @yhyang201
23+
/python/sglang/srt/speculative @Ying1123 @merrymercy @hnyls2002
2624
/sgl-kernel @zhyncs @ispobock @BBuf @yizhang2077 @merrymercy @FlamingoPg @HaiShaw
2725
/sgl-router @slin1237 @ByronHsu @CatherineSue
2826
/sgl-router/benches @slin1237
@@ -40,5 +38,5 @@
4038
/sgl-router/src/routers @CatherineSue @key4ng @slin1237
4139
/sgl-router/src/tokenizer @slin1237 @CatherineSue
4240
/sgl-router/src/tool_parser @slin1237 @CatherineSue
41+
/test/srt/ascend @ping1jing2 @iforgetmyname
4342
/test/srt/test_modelopt* @Edwardf0t1
44-
/test/srt/ascend @ping1jing2

.github/FOLDER_README.md

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
# Maintenance Tools
2+
3+
This folder contains tools and workflows for automating maintenance tasks.
4+
5+
## CI Permissions
6+
7+
`CI_PERMISSIONS.json` defines the CI permissions granted to each user.
8+
Maintainers can directly edit the file to add entries with `"reason": "custom override"`.
9+
Maintainers can also run `update_ci_permission.py` to update it with some auto rules (e.g., top contributors in the last 90 days get full permissions).
10+
11+
## Others
12+
- `MAINTAINER.md` defines the code maintenance model.
Lines changed: 11 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: 🐞 Bug report
2-
description: Create a report to help us reproduce and fix the bug
2+
description: Report a bug to help us reproduce and fix it.
33
title: "[Bug] "
44
labels: ['Bug']
55

@@ -8,31 +8,28 @@ body:
88
attributes:
99
label: Checklist
1010
options:
11-
- label: 1. I have searched related issues but cannot get the expected help.
12-
- label: 2. The bug has not been fixed in the latest version.
13-
- label: 3. Please note that if the bug-related issue you submitted lacks corresponding environment info and a minimal reproducible demo, it will be challenging for us to reproduce and resolve the issue, reducing the likelihood of receiving feedback.
14-
- label: 4. If the issue you raised is not a bug but a question, please raise a discussion at https://github.com/sgl-project/sglang/discussions/new/choose Otherwise, it will be closed.
15-
- label: 5. Please use English, otherwise it will be closed.
11+
- label: I searched related issues but found no solution.
12+
- label: The bug persists in the latest version.
13+
- label: Issues without environment info and a minimal reproducible demo are hard to resolve and may receive no feedback.
14+
- label: If this is not a bug report but a general question, please start a discussion at https://github.com/sgl-project/sglang/discussions. Otherwise, it will be closed.
15+
- label: Please use English. Otherwise, it will be closed.
1616
- type: textarea
1717
attributes:
1818
label: Describe the bug
19-
description: A clear and concise description of what the bug is.
19+
description: A clear, concise description of the bug.
2020
validations:
2121
required: true
2222
- type: textarea
2323
attributes:
2424
label: Reproduction
25-
description: |
26-
What command or script did you run? Which **model** are you using?
27-
placeholder: |
28-
A placeholder for the command.
25+
description: Command/script run and model used.
26+
placeholder: Paste the command here.
2927
validations:
3028
required: true
3129
- type: textarea
3230
attributes:
3331
label: Environment
34-
description: |
35-
Please provide necessary environment information here with `python3 -m sglang.check_env`. Otherwise the issue will be closed.
36-
placeholder: Environment here.
32+
description: Run `python3 -m sglang.check_env` and paste output here. Issues without this will be closed.
33+
placeholder: Paste environment output here.
3734
validations:
3835
required: true

.github/ISSUE_TEMPLATE/2-feature-request.yml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,17 +7,17 @@ body:
77
attributes:
88
label: Checklist
99
options:
10-
- label: 1. If the issue you raised is not a feature but a question, please raise a discussion at https://github.com/sgl-project/sglang/discussions/new/choose Otherwise, it will be closed.
11-
- label: 2. Please use English, otherwise it will be closed.
10+
- label: If this is not a feature request but a general question, please start a discussion at https://github.com/sgl-project/sglang/discussions. Otherwise, it will be closed.
11+
- label: Please use English. Otherwise, it will be closed.
1212
- type: textarea
1313
attributes:
1414
label: Motivation
1515
description: |
16-
A clear and concise description of the motivation of the feature.
16+
Clearly and concisely describe the feature's motivation.
1717
validations:
1818
required: true
1919
- type: textarea
2020
attributes:
2121
label: Related resources
2222
description: |
23-
If there is an official code release or third-party implementations, please also provide the information here, which would be very helpful.
23+
Provide official releases or third-party implementations if available.

.github/MAINTAINER.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
# SGLang Code Maintenance Model
2+
This document describes the code maintenance model for the SGLang project.
3+
Since SGLang is a large project involving multiple organizations and hardware platforms, we designed this model with the following goals:
4+
- Ensure a responsive and smooth review process.
5+
- Allow for fast iteration, so maintainers can sometimes bypass flaky CI tests for important PRs.
6+
7+
## Role Descriptions
8+
There are four roles in this maintenance model. Some are custom roles, while others are predefined by GitHub.
9+
10+
- **Merge Oncall**: The person who drives the PR merge process. They have strong area-specific expertise and uphold a high bar for code quality.
11+
- Permission: Merge PRs. Bypass branch protection rules if needed.
12+
- Responsibility: Shepherd the merge of PRs assigned to their area. Revert or hotfix any issues related to their merge (especially if they bypass).
13+
- **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).
14+
- Permission: Approve PRs, allowing them to be merged without a bypass.
15+
- Responsibility: Review PRs in a timely manner.
16+
- **Write**: A person with write permission to the SGLang repo.
17+
- Permission: Merge PRs if they have passed required tests and been approved by Codeowners. This role cannot bypass branch protection rules.
18+
- Responsibility: Review and merge PRs in a timely manner.
19+
- **CI Oncall**: A person who manages CI runners for specific hardware platforms.
20+
- Permission: Add CI runners.
21+
- Responsibility: Keep the CI runners up and running.
22+
23+
__Note__: Difference between Merge Oncall and Codeowner
24+
- The Merge Oncall is an active role held by someone who actively tries to help merge PRs and can bypass CI if needed.
25+
- The Codeowner is a passive protection role provided by GitHub; it prevents accidental changes to critical code.
26+
- The list of Merge Oncalls is attached below. The list of Codeowners is in the [CODEOWNERS](./CODEOWNERS) file.
27+
28+
__Note__: The permissions to trigger CI tests are defined separately according to these [rules](https://docs.sglang.ai/developer_guide/contribution_guide.html#how-to-trigger-ci-tests).
29+
30+
31+
## Pull Request Merge Process
32+
1. The author submits a pull request (PR) and fills out the PR checklist.
33+
2. A bot assigns this PR to a Merge Oncall and @-mentions them. At the same time, GitHub will automatically request reviews from Codeowners.
34+
3. Someone tags the PR with a `run-ci` label ([help](https://docs.sglang.ai/developer_guide/contribution_guide.html#how-to-trigger-ci-tests)). Then the author can trigger CI by pushing new commits.
35+
4. The Merge Oncall coordinates the review (e.g., asking people to review) and approves the PR; the Codeowners also approve the PR. If the assigned Merge Oncall is not responsive, the author can ping other related Merge Oncalls and Reviewers in the list below.
36+
5. The code can now be merged:
37+
- **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.
38+
- **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.
39+
40+
If you meet any issues during the merge, you can discuss in [slack channels](https://slack.sglang.ai/): #dev, #pull-request, and #ci-cd-build-release.
41+
42+
## The List of Merge Oncalls and Reviewers
43+
The format is @github-username (Slack username).
44+
45+
TODO: fill in the list.
46+
47+
Now we have many Merge Oncalls mainly because the CI is flaky and the CODEOWNERS is too coarse-grained.
48+
In the future, we hope the CI can be improved and we only need bypass rarely. After that, most Merge Oncalls can be converted back to Write and CODEOWNERS.
49+
50+
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.
51+
52+
## The List of CI Oncalls
53+
The format is @github-username (Slack username).
54+
55+
### NVIDIA GPUs
56+
@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)
57+
58+
### AMD GPUs
59+
@saienduri (Sai Enduri), @HaiShaw (Henry HAI)
60+
61+
### Intel CPU and XPU
62+
@mingfeima (Mingfei Ma), @DiweiSun (Diwei Sun)
63+
64+
### Ascend NPUs
65+
@iforgetmyname (Even Zhou)
66+
67+
This list is based on the current situation. If you or someone you know would like to donate machines for CI, they can serve as the CI oncalls for their machines. Please ping @Lianmin Zheng and @Ying Sheng in the Slack channel. They will start a nomination and internal review process.

.github/REVIEWERS.md

Lines changed: 0 additions & 54 deletions
This file was deleted.

.github/labeler.yml

Lines changed: 5 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ dependencies:
2626
- '**/requirements*.txt'
2727
- '**/Cargo.toml'
2828
- '**/Cargo.lock'
29-
- '**/pyproject.toml'
29+
- '**/pyproject*.toml'
3030
- '**/setup.py'
3131
- '**/poetry.lock'
3232
- '**/package.json'
@@ -36,31 +36,27 @@ dependencies:
3636
Multi-modal:
3737
- changed-files:
3838
- any-glob-to-any-file:
39-
- '**/vision/**/*'
40-
- '**/multimodal/**/*'
41-
- '**/vlm/**/*'
39+
- '**/*multimodal*'
40+
- '**/*vision*'
41+
- '**/*vlm*'
4242

4343
# LoRA
4444
lora:
4545
- changed-files:
4646
- any-glob-to-any-file:
47-
- '**/lora/**/*'
4847
- '**/*lora*'
4948

5049
# Quantization
5150
quant:
5251
- changed-files:
5352
- any-glob-to-any-file:
54-
- '**/quant/**/*'
5553
- '**/*quant*'
56-
- '**/awq/**/*'
57-
- '**/gptq/**/*'
54+
- '**/*quantization*'
5855

5956
# Speculative decoding
6057
speculative-decoding:
6158
- changed-files:
6259
- any-glob-to-any-file:
63-
- '**/speculative/**/*'
6460
- '**/*speculative*'
6561

6662
# AMD specific
@@ -80,5 +76,4 @@ deepseek:
8076
hicache:
8177
- changed-files:
8278
- any-glob-to-any-file:
83-
- '**/hicache/**/*'
8479
- '**/*hicache*'

.github/pull_request_template.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,3 +22,5 @@
2222
- [ ] Add unit tests according to the [Run and add unit tests](https://docs.sglang.ai/developer_guide/contribution_guide.html#run-and-add-unit-tests).
2323
- [ ] Update documentation according to [Write documentations](https://docs.sglang.ai/developer_guide/contribution_guide.html#write-documentations).
2424
- [ ] Provide accuracy and speed benchmark results according to [Test the accuracy](https://docs.sglang.ai/developer_guide/contribution_guide.html#test-the-accuracy) and [Benchmark the speed](https://docs.sglang.ai/developer_guide/contribution_guide.html#benchmark-the-speed).
25+
- [ ] Follow the SGLang code style [guidance](https://docs.sglang.ai/developer_guide/contribution_guide.html#code-style-guidance).
26+
- [ ] Work with maintainers to merge your PR. See the [PR Merge Process](https://github.com/sgl-project/sglang/blob/main/.github/MAINTAINER.md#pull-request-merge-process)

0 commit comments

Comments
 (0)