[Docs] Rename docs_new/ to docs/ (#32123)

Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
zijiexia
2026-08-03 16:51:00 -07:00
committed by GitHub
co-authored by Claude Opus 4.8
parent c949e91f18
commit b819d2fb5b
491 changed files with 122 additions and 102 deletions
+1 -1
View File
@@ -670,7 +670,7 @@ cd test && python3 run_suite.py --hw cuda --suite base-b-kernel-benchmark-test-1
## References ## References
- `docs_new/docs/developer_guide/development_jit_kernel_guide.mdx` - `docs/docs/developer_guide/development_jit_kernel_guide.mdx`
- `test/run_suite.py` — suite names, discovery of `test/registered/`, execution entrypoint for CI - `test/run_suite.py` — suite names, discovery of `test/registered/`, execution entrypoint for CI
- `python/sglang/test/ci/ci_register.py` — `register_cuda_ci` and AST registration rules - `python/sglang/test/ci/ci_register.py` — `register_cuda_ci` and AST registration rules
- `python/sglang/kernels/jit/utils/compile.py` — `load_jit`, `make_cpp_args` - `python/sglang/kernels/jit/utils/compile.py` — `load_jit`, `make_cpp_args`
+13 -13
View File
@@ -1,6 +1,6 @@
--- ---
name: cookbook-add-model name: cookbook-add-model
description: Add a new model to the SGLang Cookbook (docs_new/, Mintlify), config-driven format — instantiate the model-agnostic template into a per-model config (+ benchmarks) JSX under src/snippets/configs/, an MDX page, the docs.json nav entry, NEW-tag hygiene, and the homepage vendor card. Interactive, multi-phase. Run with /cookbook-add-model. description: Add a new model to the SGLang Cookbook (docs/, Mintlify), config-driven format — instantiate the model-agnostic template into a per-model config (+ benchmarks) JSX under src/snippets/configs/, an MDX page, the docs.json nav entry, NEW-tag hygiene, and the homepage vendor card. Interactive, multi-phase. Run with /cookbook-add-model.
disable-model-invocation: true disable-model-invocation: true
--- ---
@@ -12,16 +12,16 @@ disable-model-invocation: true
> page (not the user) is the source of truth. > page (not the user) is the source of truth.
The cookbook is **config-driven**: two shared engines contain NO model-specific code — The cookbook is **config-driven**: two shared engines contain NO model-specific code —
`docs_new/src/snippets/_deployment.jsx` (the 5-dim deploy matrix) and `docs/src/snippets/_deployment.jsx` (the 5-dim deploy matrix) and
`_playground.jsx` (the diff-based override Playground). Adding a model = adding **data**: `_playground.jsx` (the diff-based override Playground). Adding a model = adding **data**:
a per-model `config` (+ optional `benchmarks`) consumed by both engines, plus an MDX page a per-model `config` (+ optional `benchmarks`) consumed by both engines, plus an MDX page
that imports them. No engine edits. that imports them. No engine edits.
**Instantiate the model-agnostic template** (NOT a clone of any live cookbook — the **Instantiate the model-agnostic template** (NOT a clone of any live cookbook — the
template is decoupled and covers all hardware + all axes): template is decoupled and covers all hardware + all axes):
- `templates/config.jsx.tmpl` → `docs_new/src/snippets/configs/<hf-org>/<model-slug>.jsx` - `templates/config.jsx.tmpl` → `docs/src/snippets/configs/<hf-org>/<model-slug>.jsx`
- `templates/benchmarks.jsx.tmpl` → `…/<model-slug>-benchmarks.jsx` (skip if no numbers) - `templates/benchmarks.jsx.tmpl` → `…/<model-slug>-benchmarks.jsx` (skip if no numbers)
- `templates/page.mdx.tmpl` → `docs_new/cookbook/<category>/<Vendor>/<ModelName>.mdx` - `templates/page.mdx.tmpl` → `docs/cookbook/<category>/<Vendor>/<ModelName>.mdx`
The template uses explicit `__TOKEN__` placeholders; you fill them, prune what the model The template uses explicit `__TOKEN__` placeholders; you fill them, prune what the model
lacks, and replace the EXAMPLE cells with verified recipes. DeepSeek-V4 is a populated lacks, and replace the EXAMPLE cells with verified recipes. DeepSeek-V4 is a populated
@@ -156,26 +156,26 @@ this table (RTX PRO 6000, GH200, future chips) goes in the model's own `config.h
### Site-wiring (do all three) ### Site-wiring (do all three)
- **`docs_new/docs.json`** — add the page under Cookbook → `<category>` → `<Vendor>`, at - **`docs/docs.json`** — add the page under Cookbook → `<category>` → `<Vendor>`, at
the **top** of that vendor's `pages` (root-relative, no `.mdx`: the **top** of that vendor's `pages` (root-relative, no `.mdx`:
`cookbook/<category>/<Vendor>/<Model>`). New vendor group → insert in the section's `cookbook/<category>/<Vendor>/<Model>`). New vendor group → insert in the section's
local ordering. local ordering.
- **NEW-tag hygiene** — the new page keeps `tag: NEW` (from the template). Scan the - **NEW-tag hygiene** — the new page keeps `tag: NEW` (from the template). Scan the
vendor dir for existing NEW and strip it from siblings; verify ≤1: vendor dir for existing NEW and strip it from siblings; verify ≤1:
`grep -rn 'tag: NEW' docs_new/cookbook/<category>/<Vendor>/` → at most one result. (Scan `grep -rn 'tag: NEW' docs/cookbook/<category>/<Vendor>/` → at most one result. (Scan
files; don't assume the first `docs.json` entry holds NEW.) files; don't assume the first `docs.json` entry holds NEW.)
- **Homepage card** — `docs_new/cookbook/<category>/intro.mdx`: if the org already has a - **Homepage card** — `docs/cookbook/<category>/intro.mdx`: if the org already has a
`<Card>`, update only its `href` (keep `img`). If the org is **new**, add a `<Card>` `<Card>`, update only its `href` (keep `img`). If the org is **new**, add a `<Card>`
(title = nav-group name; keep card order aligned with `docs.json`) **and create its logo**: (title = nav-group name; keep card order aligned with `docs.json`) **and create its logo**:
ask the user for the brand logo, then generate the conforming **icon-only 940×525 RGBA ask the user for the brand logo, then generate the conforming **icon-only 940×525 RGBA
transparent** PNG → `docs_new/cards/logos/<org-slug>.png` per transparent** PNG → `docs/cards/logos/<org-slug>.png` per
[references/vendor-logo.md](references/vendor-logo.md) (track with `git add -f` — `*.png` [references/vendor-logo.md](references/vendor-logo.md) (track with `git add -f` — `*.png`
is gitignored repo-wide). Never invent or copy a logo. is gitignored repo-wide). Never invent or copy a logo.
## Phase 3 — Validate ## Phase 3 — Validate
```bash ```bash
cd docs_new cd docs
mint validate # frontmatter, missing nav entries, MDX/JSX errors mint validate # frontmatter, missing nav entries, MDX/JSX errors
mint broken-links mint broken-links
mint dev # visual smoke test at http://localhost:3000/cookbook/<category>/<Vendor>/<Model> mint dev # visual smoke test at http://localhost:3000/cookbook/<category>/<Vendor>/<Model>
@@ -218,10 +218,10 @@ Always branch — never commit to main directly.
```bash ```bash
git checkout -b add-<model>-cookbook git checkout -b add-<model>-cookbook
git add docs_new/src/snippets/configs/<hf-org>/<slug>.jsx \ git add docs/src/snippets/configs/<hf-org>/<slug>.jsx \
docs_new/src/snippets/configs/<hf-org>/<slug>-benchmarks.jsx \ docs/src/snippets/configs/<hf-org>/<slug>-benchmarks.jsx \
docs_new/cookbook/<category>/<Vendor>/<Model>.mdx \ docs/cookbook/<category>/<Vendor>/<Model>.mdx \
docs_new/docs.json docs_new/cookbook/<category>/intro.mdx docs/docs.json docs/cookbook/<category>/intro.mdx
git commit -m "Add <Display-Name> cookbook" git commit -m "Add <Display-Name> cookbook"
git push -u origin add-<model>-cookbook git push -u origin add-<model>-cookbook
gh pr create --title "Add <Display-Name> cookbook" --body "..." gh pr create --title "Add <Display-Name> cookbook" --body "..."
@@ -4,8 +4,8 @@ Loaded on demand by the `cookbook-add-model` skill. This is the field-by-field
contract for when the clone needs more than a rename. The two engine files are contract for when the clone needs more than a rename. The two engine files are
the canonical specs — read their headers first: the canonical specs — read their headers first:
- [`_deployment.jsx`](../../../../docs_new/src/snippets/_deployment.jsx) — the matrix widget; its header lists every config field. Dimensions are the legacy fixed five by default, or config-declared via `matchDims` / `overlayDims` (§2.1b). - [`_deployment.jsx`](../../../../docs/src/snippets/_deployment.jsx) — the matrix widget; its header lists every config field. Dimensions are the legacy fixed five by default, or config-declared via `matchDims` / `overlayDims` (§2.1b).
- [`_playground.jsx`](../../../../docs_new/src/snippets/_playground.jsx) — the diff-based override widget; lists the `playgroundFeatures` axes + the `AXIS_HANDLERS` interface. - [`_playground.jsx`](../../../../docs/src/snippets/_playground.jsx) — the diff-based override widget; lists the `playgroundFeatures` axes + the `AXIS_HANDLERS` interface.
Engine extension (adding a new playground axis) lives in [engine-axis.md](engine-axis.md). Engine extension (adding a new playground axis) lives in [engine-axis.md](engine-axis.md).
@@ -13,7 +13,7 @@ Engine extension (adding a new playground axis) lives in [engine-axis.md](engine
## 2.1 Create the config file ## 2.1 Create the config file
**Path**: `docs_new/src/snippets/configs/<vendor>/<model>.jsx`. The vendor folder is **Path**: `docs/src/snippets/configs/<vendor>/<model>.jsx`. The vendor folder is
the HuggingFace org (`deepseek-ai`, `Qwen`, `moonshotai`, ...); the file the HuggingFace org (`deepseek-ai`, `Qwen`, `moonshotai`, ...); the file
name is a short hyphenated model id (`deepseek-v4`, `qwen3.5`, ...). name is a short hyphenated model id (`deepseek-v4`, `qwen3.5`, ...).
@@ -217,7 +217,7 @@ schemas (full reference in the `_playground.jsx` header):
## 2.4 Create the MDX page ## 2.4 Create the MDX page
Path: `docs_new/cookbook/<category>/<Vendor>/<Model>.mdx`. Import both widgets and Path: `docs/cookbook/<category>/<Vendor>/<Model>.mdx`. Import both widgets and
the per-model config, render them inside the relevant sections: the per-model config, render them inside the relevant sections:
```mdx ```mdx
@@ -1,7 +1,7 @@
# Vendor card logo (new brand only) # Vendor card logo (new brand only)
A new vendor/brand in the cookbook landing grid needs a card logo at A new vendor/brand in the cookbook landing grid needs a card logo at
`docs_new/cards/logos/<org-slug>.png`. **Ask the user for the brand's logo, then generate `docs/cards/logos/<org-slug>.png`. **Ask the user for the brand's logo, then generate
the conforming PNG** — never invent, copy, or hallucinate one, and never ship a the conforming PNG** — never invent, copy, or hallucinate one, and never ship a
non-conforming file. Reference: PR #27400 (added `tencent.png` + `poolside.png`). non-conforming file. Reference: PR #27400 (added `tencent.png` + `poolside.png`).
@@ -11,7 +11,7 @@ If the org already has a card/logo, do nothing here — only update the `<Card h
| Property | Value | | Property | Value |
|---|---| |---|---|
| Path | `docs_new/cards/logos/<org-slug>.png` — lowercase, matches the `img=` in the `<Card>` | | Path | `docs/cards/logos/<org-slug>.png` — lowercase, matches the `img=` in the `<Card>` |
| Canvas | **940 × 525** px | | Canvas | **940 × 525** px |
| Mode | **RGBA**, fully **transparent** background | | Mode | **RGBA**, fully **transparent** background |
| Content | **Icon-only** — the brand glyph/mark (the "swirl"), **no wordmark text** | | Content | **Icon-only** — the brand glyph/mark (the "swirl"), **no wordmark text** |
@@ -47,7 +47,7 @@ scale = target_h / src.height
glyph = src.resize((round(src.width * scale), target_h), Image.LANCZOS) glyph = src.resize((round(src.width * scale), target_h), Image.LANCZOS)
canvas = Image.new("RGBA", (W, H), (0, 0, 0, 0)) # transparent canvas = Image.new("RGBA", (W, H), (0, 0, 0, 0)) # transparent
canvas.paste(glyph, ((W - glyph.width) // 2, (H - glyph.height) // 2), glyph) canvas.paste(glyph, ((W - glyph.width) // 2, (H - glyph.height) // 2), glyph)
canvas.save("docs_new/cards/logos/<org-slug>.png") canvas.save("docs/cards/logos/<org-slug>.png")
``` ```
Notes: Notes:
@@ -60,7 +60,7 @@ Notes:
## 3. Verify ## 3. Verify
```bash ```bash
sips -g pixelWidth -g pixelHeight -g hasAlpha docs_new/cards/logos/<org-slug>.png sips -g pixelWidth -g pixelHeight -g hasAlpha docs/cards/logos/<org-slug>.png
# → pixelWidth: 940 pixelHeight: 525 hasAlpha: yes # → pixelWidth: 940 pixelHeight: 525 hasAlpha: yes
``` ```
@@ -71,6 +71,6 @@ sips -g pixelWidth -g pixelHeight -g hasAlpha docs_new/cards/logos/<org-slug>.pn
# <Card title="<NavGroup>" mode="card" # <Card title="<NavGroup>" mode="card"
# href="/cookbook/<category>/<Vendor>/<Model>" # href="/cookbook/<category>/<Vendor>/<Model>"
# img="/cards/logos/<org-slug>.png" /> # img="/cards/logos/<org-slug>.png" />
git add -f docs_new/cards/logos/<org-slug>.png # root .gitignore ignores *.png repo-wide git add -f docs/cards/logos/<org-slug>.png # root .gitignore ignores *.png repo-wide
cd docs_new && mint validate && mint broken-links # confirms the card href + img resolve cd docs && mint validate && mint broken-links # confirms the card href + img resolve
``` ```
@@ -1,5 +1,5 @@
// TEMPLATE — instantiate via the cookbook-add-model skill. NOT a live cookbook. // TEMPLATE — instantiate via the cookbook-add-model skill. NOT a live cookbook.
// Copy to docs_new/src/snippets/configs/<hf-org>/<model-slug>-benchmarks.jsx and // Copy to docs/src/snippets/configs/<hf-org>/<model-slug>-benchmarks.jsx and
// fill measured numbers — OR delete this file entirely if you have none yet (the // fill measured numbers — OR delete this file entirely if you have none yet (the
// MDX simply omits the `benchmarks` import/prop). // MDX simply omits the `benchmarks` import/prop).
// //
@@ -1,5 +1,5 @@
// TEMPLATE — instantiate via the cookbook-add-model skill. NOT a live cookbook. // TEMPLATE — instantiate via the cookbook-add-model skill. NOT a live cookbook.
// Copy to docs_new/src/snippets/configs/<hf-org>/<model-slug>.jsx, then: // Copy to docs/src/snippets/configs/<hf-org>/<model-slug>.jsx, then:
// 1. replace every __TOKEN__, // 1. replace every __TOKEN__,
// 2. fill cells[] with your verified recipes (the examples below show the shape), // 2. fill cells[] with your verified recipes (the examples below show the shape),
// 3. DELETE the hardware / playground axes / quantizations your model lacks. // 3. DELETE the hardware / playground axes / quantizations your model lacks.
@@ -1,6 +1,6 @@
--- ---
name: cookbook-migrate-model name: cookbook-migrate-model
description: Migrate a legacy-template SGLang cookbook page (monolithic per-model generator under docs_new/src/snippets/autoregressive/) onto the config-driven template (shared _deployment.jsx / _playground.jsx engines + per-model config). Use when asked to migrate, convert, or port an existing cookbook page — NOT for brand-new models (use cookbook-add-model for those). Run with /cookbook-migrate-model <Model page name, e.g. GLM-5.1>. description: Migrate a legacy-template SGLang cookbook page (monolithic per-model generator under docs/src/snippets/autoregressive/) onto the config-driven template (shared _deployment.jsx / _playground.jsx engines + per-model config). Use when asked to migrate, convert, or port an existing cookbook page — NOT for brand-new models (use cookbook-add-model for those). Run with /cookbook-migrate-model <Model page name, e.g. GLM-5.1>.
--- ---
# Cookbook Migrate Model # Cookbook Migrate Model
@@ -93,7 +93,7 @@ your dispatch prompt, or ask for it.
## Workflow (one model = one PR) ## Workflow (one model = one PR)
### 1. Inventory the legacy assets ### 1. Inventory the legacy assets
- Read the legacy generator (`docs_new/src/snippets/autoregressive/<slug>-deployment.jsx`) - Read the legacy generator (`docs/src/snippets/autoregressive/<slug>-deployment.jsx`)
end-to-end: every option dimension (radio vs checkbox vs dynamic), every end-to-end: every option dimension (radio vs checkbox vs dynamic), every
gate/SUPPORT matrix, the full emitted command per reachable combo (env gate/SUPPORT matrix, the full emitted command per reachable combo (env
prefixes, `# Error` pseudo-commands included). prefixes, `# Error` pseudo-commands included).
@@ -102,7 +102,7 @@ your dispatch prompt, or ask for it.
Output Examples verbatim); §5 benchmark blocks → transcribe each measured Output Examples verbatim); §5 benchmark blocks → transcribe each measured
block: deploy command used, bench command (dataset/isl/osl/num-prompts/ block: deploy command used, bench command (dataset/isl/osl/num-prompts/
concurrency), P50 (median) TTFT/TPOT, output tok/s, hardware, version string. concurrency), P50 (median) TTFT/TPOT, output tok/s, hardware, version string.
- Inbound-anchor sweep: `grep -rn "<PageName>" docs_new/ --include='*.mdx'` — - Inbound-anchor sweep: `grep -rn "<PageName>" docs/ --include='*.mdx'` —
find links/`#fragments` into this page (`mint broken-links` does NOT check find links/`#fragments` into this page (`mint broken-links` does NOT check
fragments). Fix referrers or add `<a id="old-anchor" />` shims in the same PR. fragments). Fix referrers or add `<a id="old-anchor" />` shims in the same PR.
- Check the maintainer-provided inventory notes for this model's known quirks — - Check the maintainer-provided inventory notes for this model's known quirks —
@@ -205,14 +205,14 @@ collapsible (required, DeepSeek-V4 pattern): code in an
`<Accordion title="Example Output">`; legacy pages kept them inline. `<Accordion title="Example Output">`; legacy pages kept them inline.
### 6. Delete the legacy generator ### 6. Delete the legacy generator
Remove `docs_new/src/snippets/autoregressive/<slug>-deployment.jsx` and its Remove `docs/src/snippets/autoregressive/<slug>-deployment.jsx` and its
import. `grep -rn "<slug>-deployment" docs_new/` must return nothing (config import. `grep -rn "<slug>-deployment" docs/` must return nothing (config
provenance comments must not name the deleted path). Site wiring needs **no provenance comments must not name the deleted path). Site wiring needs **no
changes**: docs.json path/title unchanged, vendor card + logo already exist. changes**: docs.json path/title unchanged, vendor card + logo already exist.
### 7. Validate ### 7. Validate
- `grep -rn '__[A-Z_]*__'` on the new files (no template tokens). - `grep -rn '__[A-Z_]*__'` on the new files (no template tokens).
- `cd docs_new && mint validate && mint broken-links` (pre-existing breaks on - `cd docs && mint validate && mint broken-links` (pre-existing breaks on
main are not yours — say so in the PR). main are not yours — say so in the PR).
- `mint dev` browser smoke: initial selection = the verified cell (first in - `mint dev` browser smoke: initial selection = the verified cell (first in
`cells[]`) with green badge; multi-node cells show the injected trio + `cells[]`) with green badge; multi-node cells show the injected trio +
+10 -10
View File
@@ -1,6 +1,6 @@
--- ---
name: cookbook-review-pr name: cookbook-review-pr
description: Review a pull request against the SGLang Cookbook (docs_new/, Mintlify) contribution checklist — the config-driven format (per-model config + benchmarks JSX consumed by the shared _deployment.jsx / _playground.jsx engines). Run with /cookbook-review-pr <PR number>. description: Review a pull request against the SGLang Cookbook (docs/, Mintlify) contribution checklist — the config-driven format (per-model config + benchmarks JSX consumed by the shared _deployment.jsx / _playground.jsx engines). Run with /cookbook-review-pr <PR number>.
--- ---
# Cookbook Review PR # Cookbook Review PR
@@ -29,9 +29,9 @@ than restating.
## Checklist ## Checklist
### 1. File hygiene ### 1. File hygiene
- A cookbook PR should only touch: `docs_new/src/snippets/configs/<vendor>/*.jsx` - A cookbook PR should only touch: `docs/src/snippets/configs/<vendor>/*.jsx`
(config + benchmarks), `docs_new/cookbook/**/*.mdx`, `docs_new/docs.json`, (config + benchmarks), `docs/cookbook/**/*.mdx`, `docs/docs.json`,
`docs_new/cookbook/<category>/intro.mdx` (vendor card), `docs_new/cards/logos/<vendor>.png` `docs/cookbook/<category>/intro.mdx` (vendor card), `docs/cards/logos/<vendor>.png`
(new vendor only). Flag stray files (`settings.local.json`, lockfiles, IDE configs). (new vendor only). Flag stray files (`settings.local.json`, lockfiles, IDE configs).
- Pages must be `.mdx`, not `.md`. Files end with a trailing newline. Check commit history - Pages must be `.mdx`, not `.md`. Files end with a trailing newline. Check commit history
for unrelated commits accidentally included. for unrelated commits accidentally included.
@@ -162,20 +162,20 @@ than restating.
other model page has. Leave `mode` unset (the Deploy/Playground panels self-cap at 900px, so other model page has. Leave `mode` unset (the Deploy/Playground panels self-cap at 900px, so
the default column holds them fine). `mode: wide` belongs only on category `intro.mdx` grids. the default column holds them fine). `mode: wide` belongs only on category `intro.mdx` grids.
- `tag: NEW` only for genuine new launches; when one is added, stale `tag: NEW` on older - `tag: NEW` only for genuine new launches; when one is added, stale `tag: NEW` on older
pages should be dropped in the same PR (`grep -RlE "^tag: NEW" docs_new/cookbook/`). pages should be dropped in the same PR (`grep -RlE "^tag: NEW" docs/cookbook/`).
- MDX imports BOTH `Deployment` and `Playground` from `/src/snippets/...` (absolute). - MDX imports BOTH `Deployment` and `Playground` from `/src/snippets/...` (absolute).
- Deploy heading slugs to `deployment` (or `deploy`), Playground to `playground` — so - Deploy heading slugs to `deployment` (or `deploy`), Playground to `playground` — so
"↑ Switch base" and "Open the Playground →" scroll. No numbered headings for these two. "↑ Switch base" and "Open the Playground →" scroll. No numbered headings for these two.
### 8. Navigation & homepage ### 8. Navigation & homepage
- New page → `docs_new/docs.json` updated: under the right vendor group inside - New page → `docs/docs.json` updated: under the right vendor group inside
`navigation` → Cookbook → Autoregressive Models, root-relative, **no `.mdx`**: `navigation` → Cookbook → Autoregressive Models, root-relative, **no `.mdx`**:
`cookbook/<category>/<Vendor>/<Model>`. `cookbook/<category>/<Vendor>/<Model>`.
- Homepage `<Card href>` in `docs_new/cookbook/<category>/intro.mdx` points to the vendor's - Homepage `<Card href>` in `docs/cookbook/<category>/intro.mdx` points to the vendor's
flagship; new vendors get a new `<Card>` + a logo at `docs_new/cards/logos/<vendor>.png` — flagship; new vendors get a new `<Card>` + a logo at `docs/cards/logos/<vendor>.png` —
**940×525 RGBA transparent, icon-only (no wordmark)**, lowercase filename, tracked via **940×525 RGBA transparent, icon-only (no wordmark)**, lowercase filename, tracked via
`git add -f` (`*.png` is gitignored repo-wide). Card order matches the `docs.json` nav order. `git add -f` (`*.png` is gitignored repo-wide). Card order matches the `docs.json` nav order.
- Don't change `docs_new/cookbook/intro.mdx` for individual model adds (top-level only). - Don't change `docs/cookbook/intro.mdx` for individual model adds (top-level only).
### 9. Links & factual ### 9. Links & factual
- HuggingFace URLs resolve to a real model. License section matches the actual HF license - HuggingFace URLs resolve to a real model. License section matches the actual HF license
@@ -232,7 +232,7 @@ than restating.
### 13. Build / validate ### 13. Build / validate
```bash ```bash
cd docs_new cd docs
mint validate mint validate
mint broken-links mint broken-links
``` ```
@@ -32,7 +32,7 @@ Use these upstream files when the workflow or behavior needs to be justified fro
## Documentation and tests ## Documentation and tests
- `docs_new/docs/developer_guide/benchmark_and_profiling.mdx` - `docs/docs/developer_guide/benchmark_and_profiling.mdx`
- canonical profiling docs - canonical profiling docs
- `test/registered/profiling/test_start_profile.py` - `test/registered/profiling/test_start_profile.py`
+3 -3
View File
@@ -2,7 +2,7 @@
/docker @Fridge003 @ispobock @HaiShaw @ishandhanani @yctseng0211 @sogalin /docker @Fridge003 @ispobock @HaiShaw @ishandhanani @yctseng0211 @sogalin
/docker/npu.Dockerfile @ping1jing2 @iforgetmyname @whybeyoung /docker/npu.Dockerfile @ping1jing2 @iforgetmyname @whybeyoung
/docs @wisclmy0611 @zijiexia @sogalin /docs @wisclmy0611 @zijiexia @sogalin
/docs_new @wisclmy0611 @zijiexia @Richardczl98 @JustinTong0323 @sogalin /docs @wisclmy0611 @zijiexia @Richardczl98 @JustinTong0323 @sogalin
/python/pyproject.toml @merrymercy @Fridge003 @ispobock /python/pyproject.toml @merrymercy @Fridge003 @ispobock
/python/sglang/kernels @DarkSharpness @BBuf @celve @HydraQYH @yuan-luo /python/sglang/kernels @DarkSharpness @BBuf @celve @HydraQYH @yuan-luo
/python/sglang/kernels/ops/diffusion @yingluosanqian @BBuf @mickqian /python/sglang/kernels/ops/diffusion @yingluosanqian @BBuf @mickqian
@@ -97,8 +97,8 @@
/python/sglang/srt/models/gemma4_*.py @kpham-sgl @pyc96 /python/sglang/srt/models/gemma4_*.py @kpham-sgl @pyc96
/python/sglang/srt/multimodal/processors/gemma4.py @kpham-sgl @pyc96 /python/sglang/srt/multimodal/processors/gemma4.py @kpham-sgl @pyc96
/python/sglang/test/ascend @ping1jing2 @ssshinigami @e-martirosian /python/sglang/test/ascend @ping1jing2 @ssshinigami @e-martirosian
/docs_new/cookbook/autoregressive/Google/Gemma4.mdx @wisclmy0611 @zijiexia @Richardczl98 @kpham-sgl @pyc96 /docs/cookbook/autoregressive/Google/Gemma4.mdx @wisclmy0611 @zijiexia @Richardczl98 @kpham-sgl @pyc96
/docs_new/src/snippets/autoregressive/gemma4-deployment.jsx @wisclmy0611 @zijiexia @Richardczl98 @kpham-sgl @pyc96 /docs/src/snippets/autoregressive/gemma4-deployment.jsx @wisclmy0611 @zijiexia @Richardczl98 @kpham-sgl @pyc96
/python/sglang/srt/speculative/ngram_*.py @hnyls2002 @Qiaolin-Yu @kpham-sgl /python/sglang/srt/speculative/ngram_*.py @hnyls2002 @Qiaolin-Yu @kpham-sgl
/python/sglang/srt/speculative/adaptive_*.py @Qiaolin-Yu @alphabetc1 /python/sglang/srt/speculative/adaptive_*.py @Qiaolin-Yu @alphabetc1
/python/sglang/srt/speculative/cpp_ngram @hnyls2002 @Qiaolin-Yu @kpham-sgl /python/sglang/srt/speculative/cpp_ngram @hnyls2002 @Qiaolin-Yu @kpham-sgl
+1 -1
View File
@@ -26,7 +26,7 @@ documentation:
- '**/*.mdx' - '**/*.mdx'
- 'docs/**/*' - 'docs/**/*'
- 'README*' - 'README*'
- 'docs_new/**/*' - 'docs/**/*'
# Dependencies # Dependencies
dependencies: dependencies:
+2 -2
View File
@@ -2,8 +2,8 @@ name: Bot Bump Docs Version
# #
# Bumps the "install from source" release-branch version pinned in the docs # Bumps the "install from source" release-branch version pinned in the docs
# (the `git clone -b v<version> ...sglang.git` line in # (the `git clone -b v<version> ...sglang.git` line in
# docs_new/docs/get-started/install.mdx "Method 2: From source" and # docs/docs/get-started/install.mdx "Method 2: From source" and
# docs_new/docs/hardware-platforms/amd_gpu.mdx) whenever a release tag is # docs/docs/hardware-platforms/amd_gpu.mdx) whenever a release tag is
# pushed, and opens a PR with the change. # pushed, and opens a PR with the change.
# #
# Triggers mirror release-docker.yml: a pushed `v*` tag (the release), or a # Triggers mirror release-docker.yml: a pushed `v*` tag (the release), or a
+20 -4
View File
@@ -13,6 +13,22 @@ jobs:
with: with:
fetch-depth: 0 fetch-depth: 0
# Fail-fast gate: docs_new/ was renamed to docs/ (#32123). git's rename
# detection silently re-adds NEW files under docs_new/ on merge without a
# conflict, which would resurrect the directory. We check the checked-out
# tree directly (git ls-files) rather than diffing against the base ref —
# a presence check needs no merge-base and sidesteps the shallow-checkout
# / silent-diff failures that plagued the old legacy-docs/ gate.
- name: Forbid docs_new/ (renamed to docs/)
run: |
set -euo pipefail
matches="$(git ls-files -- docs_new)"
if [ -n "$matches" ]; then
echo "::error::docs_new/ was renamed to docs/. Move these files under docs/ instead:"
echo "$matches"
exit 1
fi
- name: Set up Python - name: Set up Python
uses: actions/setup-python@v4 uses: actions/setup-python@v4
with: with:
@@ -39,7 +55,7 @@ jobs:
with: with:
args: --config .github/linters/lychee.toml README.md args: --config .github/linters/lychee.toml README.md
# docs_new/ (Mintlify) internal-link check. Runs only in CI — contributors # docs/ (Mintlify) internal-link check. Runs only in CI — contributors
# are NOT required to install `mint` for local pre-commit. External links # are NOT required to install `mint` for local pre-commit. External links
# are covered separately by the nightly lychee job (no --check-external here). # are covered separately by the nightly lychee job (no --check-external here).
- name: Set up Node - name: Set up Node
@@ -47,13 +63,13 @@ jobs:
with: with:
node-version: "20" node-version: "20"
# Hard gate: docs_new internal links/anchors/redirects must resolve. # Hard gate: docs internal links/anchors/redirects must resolve.
# mint is pinned for reproducibility (its heading-slug rules are # mint is pinned for reproducibility (its heading-slug rules are
# version-sensitive); bump deliberately after re-verifying locally. # version-sensitive); bump deliberately after re-verifying locally.
- name: Check docs_new links (Mintlify broken-links) - name: Check docs links (Mintlify broken-links)
run: | run: |
npm install -g mint@4.2.559 npm install -g mint@4.2.559
cd docs_new cd docs
mint broken-links --check-anchors --check-redirects mint broken-links --check-anchors --check-redirects
- name: Run sgl-kernel clang-format checks - name: Run sgl-kernel clang-format checks
+3 -3
View File
@@ -112,14 +112,14 @@ jobs:
VERSION=$(echo "$BRANCH_NAME" | sed 's/release\///') VERSION=$(echo "$BRANCH_NAME" | sed 's/release\///')
# Update git clone version references in docs # Update git clone version references in docs
sed -i "s/git clone -b v[0-9]\+\.[0-9]\+\.[0-9]\+\.\?post\?[0-9]*/git clone -b $VERSION/" docs_new/docs/get-started/install.mdx sed -i "s/git clone -b v[0-9]\+\.[0-9]\+\.[0-9]\+\.\?post\?[0-9]*/git clone -b $VERSION/" docs/docs/get-started/install.mdx
sed -i "s/git clone -b v[0-9]\+\.[0-9]\+\.[0-9]\+\.\?post\?[0-9]*/git clone -b $VERSION/" docs_new/docs/hardware-platforms/amd_gpu.mdx sed -i "s/git clone -b v[0-9]\+\.[0-9]\+\.[0-9]\+\.\?post\?[0-9]*/git clone -b $VERSION/" docs/docs/hardware-platforms/amd_gpu.mdx
# Check if any changes were made # Check if any changes were made
if git diff --quiet; then if git diff --quiet; then
echo "No version references needed updating" echo "No version references needed updating"
else else
git add docs_new/docs/get-started/install.mdx docs_new/docs/hardware-platforms/amd_gpu.mdx git add docs/docs/get-started/install.mdx docs/docs/hardware-platforms/amd_gpu.mdx
git commit -m "docs: update version references to $VERSION" git commit -m "docs: update version references to $VERSION"
echo "Updated version references to $VERSION" echo "Updated version references to $VERSION"
fi fi
@@ -25,7 +25,7 @@ jobs:
- name: Sync blog cards - name: Sync blog cards
env: env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
run: python docs_new/scripts/update_lmsys_sglang_blogs.py run: python docs/scripts/update_lmsys_sglang_blogs.py
- name: Open or update pull request - name: Open or update pull request
env: env:
@@ -33,7 +33,7 @@ jobs:
run: | run: |
set -euo pipefail set -euo pipefail
if git diff --quiet -- docs_new/index.mdx; then if git diff --quiet -- docs/index.mdx; then
echo "No blog card changes; nothing to do." echo "No blog card changes; nothing to do."
exit 0 exit 0
fi fi
@@ -45,7 +45,7 @@ jobs:
# Recreate the bot branch as "current main + card diff" and overwrite # Recreate the bot branch as "current main + card diff" and overwrite
# any previous state, so the PR always shows a clean single-commit diff. # any previous state, so the PR always shows a clean single-commit diff.
git checkout -B "$BRANCH" git checkout -B "$BRANCH"
git add docs_new/index.mdx git add docs/index.mdx
git commit -m "docs: sync LMSYS SGLang blog cards" git commit -m "docs: sync LMSYS SGLang blog cards"
git push --force origin "$BRANCH" git push --force origin "$BRANCH"
@@ -56,5 +56,5 @@ jobs:
--base main \ --base main \
--head "$BRANCH" \ --head "$BRANCH" \
--title "docs: sync LMSYS SGLang blog cards" \ --title "docs: sync LMSYS SGLang blog cards" \
--body $'Automated sync of the LMSYS SGLang blog cards in `docs_new/index.mdx`.\n\n🤖 Generated with GitHub Actions' --body $'Automated sync of the LMSYS SGLang blog cards in `docs/index.mdx`.\n\n🤖 Generated with GitHub Actions'
fi fi
+1 -7
View File
@@ -71,9 +71,6 @@ instance/
# Scrapy stuff: # Scrapy stuff:
.scrapy .scrapy
# Sphinx documentation
docs/_build/
# PyBuilder # PyBuilder
.pybuilder/ .pybuilder/
target/ target/
@@ -168,9 +165,6 @@ cython_debug/
# Vim # Vim
*.swp *.swp
# Documentation
docs/_build
# SGL # SGL
benchmark/mmlu/data benchmark/mmlu/data
benchmark/mmlu/data.tar benchmark/mmlu/data.tar
@@ -192,7 +186,7 @@ work_dirs/
*.csv *.csv
!logo.png !logo.png
!docs_new/images/*.png !docs/images/*.png
# Prerequisites # Prerequisites
*.d *.d
+13 -3
View File
@@ -37,7 +37,7 @@ repos:
args: args:
- --select=F401,F821,UP037 - --select=F401,F821,UP037
- --fix - --fix
files: ^(benchmark/|docs_new/|examples/|python/sglang/|sgl-model-gateway/py_*|test/) files: ^(benchmark/|docs/|examples/|python/sglang/|sgl-model-gateway/py_*|test/)
exclude: | exclude: |
(?x)^( (?x)^(
.*/__init__\.py$| .*/__init__\.py$|
@@ -73,6 +73,16 @@ repos:
- '--extra-keys=metadata.kernelspec metadata.language_info.version' - '--extra-keys=metadata.kernelspec metadata.language_info.version'
- repo: local - repo: local
hooks: hooks:
- id: forbid-docs-new-path
name: forbid docs_new/ (renamed to docs/)
# docs_new/ was renamed to docs/ in #32123. `language: fail` fires only
# when a staged path matches `files:` below, then prints the offending
# paths — no shell/merge-base logic, so none of the shallow-checkout or
# silent-diff pitfalls of the old legacy-docs/ gate apply here.
entry: >-
docs_new/ was renamed to docs/. Move these changes under docs/ instead.
language: fail
files: ^docs_new/
- id: check-chinese-characters - id: check-chinese-characters
name: check chinese characters in multimodal_gen name: check chinese characters in multimodal_gen
entry: >- entry: >-
@@ -134,8 +144,8 @@ repos:
files: ^rust/.*\.rs$ files: ^rust/.*\.rs$
pass_filenames: false pass_filenames: false
- id: mint-broken-links - id: mint-broken-links
name: check docs_new links (Mintlify; opt-in, requires `mint` on PATH) name: check docs links (Mintlify; opt-in, requires `mint` on PATH)
entry: bash -c 'cd docs_new && mint broken-links --check-anchors --check-redirects' entry: bash -c 'cd docs && mint broken-links --check-anchors --check-redirects'
language: system language: system
pass_filenames: false pass_filenames: false
always_run: true always_run: true
View File
+3 -3
View File
@@ -42,7 +42,7 @@ Pages are `.mdx` files with YAML frontmatter. Navigation is defined in `docs.jso
# Install the CLI # Install the CLI
npm i -g mint npm i -g mint
# From docs_new/ (where docs.json lives), start the dev server (hot reload) # From docs/ (where docs.json lives), start the dev server (hot reload)
mint dev mint dev
``` ```
@@ -71,7 +71,7 @@ We welcome contributions! Whether you want to add a recipe for a new model, impr
```bash ```bash
# 1. Fork sgl-project/sglang and clone your fork # 1. Fork sgl-project/sglang and clone your fork
git clone https://github.com/<YOUR_USERNAME>/sglang.git git clone https://github.com/<YOUR_USERNAME>/sglang.git
cd sglang/docs_new cd sglang/docs
# 2. Create a branch # 2. Create a branch
git checkout -b my-changes git checkout -b my-changes
@@ -130,7 +130,7 @@ import { benchmarks } from "/src/snippets/configs/deepseek-ai/deepseek-v4-benchm
``` ```
Keep `tag: NEW` on the new page and strip it from same-vendor siblings (≤1 per vendor), then Keep `tag: NEW` on the new page and strip it from same-vendor siblings (≤1 per vendor), then
validate from `docs_new/`: `mint validate`, `mint broken-links`, and `mint dev` for a visual validate from `docs/`: `mint validate`, `mint broken-links`, and `mint dev` for a visual
smoke test. smoke test.
> Diffusion / omni / specbundle pages follow their own category structure — don't force the > Diffusion / omni / specbundle pages follow their own category structure — don't force the

Before

Width:  |  Height:  |  Size: 683 KiB

After

Width:  |  Height:  |  Size: 683 KiB

Before

Width:  |  Height:  |  Size: 646 KiB

After

Width:  |  Height:  |  Size: 646 KiB

Before

Width:  |  Height:  |  Size: 124 KiB

After

Width:  |  Height:  |  Size: 124 KiB

Before

Width:  |  Height:  |  Size: 702 KiB

After

Width:  |  Height:  |  Size: 702 KiB

Before

Width:  |  Height:  |  Size: 175 KiB

After

Width:  |  Height:  |  Size: 175 KiB

Before

Width:  |  Height:  |  Size: 704 KiB

After

Width:  |  Height:  |  Size: 704 KiB

Before

Width:  |  Height:  |  Size: 618 KiB

After

Width:  |  Height:  |  Size: 618 KiB

Before

Width:  |  Height:  |  Size: 2.9 KiB

After

Width:  |  Height:  |  Size: 2.9 KiB

Before

Width:  |  Height:  |  Size: 714 KiB

After

Width:  |  Height:  |  Size: 714 KiB

Before

Width:  |  Height:  |  Size: 637 KiB

After

Width:  |  Height:  |  Size: 637 KiB

Before

Width:  |  Height:  |  Size: 951 KiB

After

Width:  |  Height:  |  Size: 951 KiB

Before

Width:  |  Height:  |  Size: 475 KiB

After

Width:  |  Height:  |  Size: 475 KiB

Before

Width:  |  Height:  |  Size: 349 KiB

After

Width:  |  Height:  |  Size: 349 KiB

Before

Width:  |  Height:  |  Size: 376 B

After

Width:  |  Height:  |  Size: 376 B

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Before

Width:  |  Height:  |  Size: 8.8 KiB

After

Width:  |  Height:  |  Size: 8.8 KiB

Before

Width:  |  Height:  |  Size: 7.1 KiB

After

Width:  |  Height:  |  Size: 7.1 KiB

Before

Width:  |  Height:  |  Size: 93 KiB

After

Width:  |  Height:  |  Size: 93 KiB

Before

Width:  |  Height:  |  Size: 74 KiB

After

Width:  |  Height:  |  Size: 74 KiB

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 39 KiB

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 98 KiB

Before

Width:  |  Height:  |  Size: 92 KiB

After

Width:  |  Height:  |  Size: 92 KiB

Before

Width:  |  Height:  |  Size: 6.3 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

Before

Width:  |  Height:  |  Size: 825 B

After

Width:  |  Height:  |  Size: 825 B

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before

Width:  |  Height:  |  Size: 8.7 KiB

After

Width:  |  Height:  |  Size: 8.7 KiB

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 22 KiB

Before

Width:  |  Height:  |  Size: 3.5 KiB

After

Width:  |  Height:  |  Size: 3.5 KiB

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Before

Width:  |  Height:  |  Size: 3.7 KiB

After

Width:  |  Height:  |  Size: 3.7 KiB

Before

Width:  |  Height:  |  Size: 9.5 KiB

After

Width:  |  Height:  |  Size: 9.5 KiB

Before

Width:  |  Height:  |  Size: 84 KiB

After

Width:  |  Height:  |  Size: 84 KiB

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Before

Width:  |  Height:  |  Size: 72 KiB

After

Width:  |  Height:  |  Size: 72 KiB

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Before

Width:  |  Height:  |  Size: 68 KiB

After

Width:  |  Height:  |  Size: 68 KiB

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 26 KiB

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 85 KiB

Before

Width:  |  Height:  |  Size: 30 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Before

Width:  |  Height:  |  Size: 85 KiB

After

Width:  |  Height:  |  Size: 85 KiB

@@ -89,7 +89,7 @@ import { benchmarks } from "/src/snippets/configs/deepseek-ai/deepseek-v4-benchm
<Deployment config={config} benchmarks={benchmarks} /> <Deployment config={config} benchmarks={benchmarks} />
<Note> <Note>
For a runnable end-to-end example, see the [DeepSeek-V4-Flash demo notebook](https://github.com/sgl-project/sglang/blob/main/docs_new/demo/deepseek_v4_flash.ipynb). For a runnable end-to-end example, see the [DeepSeek-V4-Flash demo notebook](https://github.com/sgl-project/sglang/blob/main/docs/demo/deepseek_v4_flash.ipynb).
</Note> </Note>
<div style={{fontSize: "0.85em", lineHeight: "1.55", color: "#6b7280", margin: "0.5rem 0 1rem 0"}}> <div style={{fontSize: "0.85em", lineHeight: "1.55", color: "#6b7280", margin: "0.5rem 0 1rem 0"}}>

Some files were not shown because too many files have changed in this diff Show More