[Docs] Rename docs_new/ to docs/ (#32123)
Co-authored-by: Claude Opus 4.8 <noreply@anthropic.com>
@@ -670,7 +670,7 @@ cd test && python3 run_suite.py --hw cuda --suite base-b-kernel-benchmark-test-1
|
||||
|
||||
## 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
|
||||
- `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`
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
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
|
||||
---
|
||||
|
||||
@@ -12,16 +12,16 @@ disable-model-invocation: true
|
||||
> page (not the user) is the source of truth.
|
||||
|
||||
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**:
|
||||
a per-model `config` (+ optional `benchmarks`) consumed by both engines, plus an MDX page
|
||||
that imports them. No engine edits.
|
||||
|
||||
**Instantiate the model-agnostic template** (NOT a clone of any live cookbook — the
|
||||
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/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
|
||||
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)
|
||||
|
||||
- **`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`:
|
||||
`cookbook/<category>/<Vendor>/<Model>`). New vendor group → insert in the section's
|
||||
local ordering.
|
||||
- **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:
|
||||
`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.)
|
||||
- **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>`
|
||||
(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
|
||||
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`
|
||||
is gitignored repo-wide). Never invent or copy a logo.
|
||||
|
||||
## Phase 3 — Validate
|
||||
|
||||
```bash
|
||||
cd docs_new
|
||||
cd docs
|
||||
mint validate # frontmatter, missing nav entries, MDX/JSX errors
|
||||
mint broken-links
|
||||
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
|
||||
git checkout -b add-<model>-cookbook
|
||||
git add docs_new/src/snippets/configs/<hf-org>/<slug>.jsx \
|
||||
docs_new/src/snippets/configs/<hf-org>/<slug>-benchmarks.jsx \
|
||||
docs_new/cookbook/<category>/<Vendor>/<Model>.mdx \
|
||||
docs_new/docs.json docs_new/cookbook/<category>/intro.mdx
|
||||
git add docs/src/snippets/configs/<hf-org>/<slug>.jsx \
|
||||
docs/src/snippets/configs/<hf-org>/<slug>-benchmarks.jsx \
|
||||
docs/cookbook/<category>/<Vendor>/<Model>.mdx \
|
||||
docs/docs.json docs/cookbook/<category>/intro.mdx
|
||||
git commit -m "Add <Display-Name> cookbook"
|
||||
git push -u origin add-<model>-cookbook
|
||||
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
|
||||
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).
|
||||
- [`_playground.jsx`](../../../../docs_new/src/snippets/_playground.jsx) — the diff-based override widget; lists the `playgroundFeatures` axes + the `AXIS_HANDLERS` interface.
|
||||
- [`_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/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).
|
||||
|
||||
@@ -13,7 +13,7 @@ Engine extension (adding a new playground axis) lives in [engine-axis.md](engine
|
||||
|
||||
## 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
|
||||
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
|
||||
|
||||
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:
|
||||
|
||||
```mdx
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
# Vendor card logo (new brand only)
|
||||
|
||||
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
|
||||
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 |
|
||||
|---|---|
|
||||
| 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 |
|
||||
| Mode | **RGBA**, fully **transparent** background |
|
||||
| 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)
|
||||
canvas = Image.new("RGBA", (W, H), (0, 0, 0, 0)) # transparent
|
||||
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:
|
||||
@@ -60,7 +60,7 @@ Notes:
|
||||
## 3. Verify
|
||||
|
||||
```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
|
||||
```
|
||||
|
||||
@@ -71,6 +71,6 @@ sips -g pixelWidth -g pixelHeight -g hasAlpha docs_new/cards/logos/<org-slug>.pn
|
||||
# <Card title="<NavGroup>" mode="card"
|
||||
# href="/cookbook/<category>/<Vendor>/<Model>"
|
||||
# img="/cards/logos/<org-slug>.png" />
|
||||
git add -f docs_new/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
|
||||
git add -f docs/cards/logos/<org-slug>.png # root .gitignore ignores *.png repo-wide
|
||||
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.
|
||||
// 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
|
||||
// MDX simply omits the `benchmarks` import/prop).
|
||||
//
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
// 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__,
|
||||
// 2. fill cells[] with your verified recipes (the examples below show the shape),
|
||||
// 3. DELETE the hardware / playground axes / quantizations your model lacks.
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
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
|
||||
@@ -93,7 +93,7 @@ your dispatch prompt, or ask for it.
|
||||
## Workflow (one model = one PR)
|
||||
|
||||
### 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
|
||||
gate/SUPPORT matrix, the full emitted command per reachable combo (env
|
||||
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
|
||||
block: deploy command used, bench command (dataset/isl/osl/num-prompts/
|
||||
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
|
||||
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 —
|
||||
@@ -205,14 +205,14 @@ collapsible (required, DeepSeek-V4 pattern): code in an
|
||||
`<Accordion title="Example Output">`; legacy pages kept them inline.
|
||||
|
||||
### 6. Delete the legacy generator
|
||||
Remove `docs_new/src/snippets/autoregressive/<slug>-deployment.jsx` and its
|
||||
import. `grep -rn "<slug>-deployment" docs_new/` must return nothing (config
|
||||
Remove `docs/src/snippets/autoregressive/<slug>-deployment.jsx` and its
|
||||
import. `grep -rn "<slug>-deployment" docs/` must return nothing (config
|
||||
provenance comments must not name the deleted path). Site wiring needs **no
|
||||
changes**: docs.json path/title unchanged, vendor card + logo already exist.
|
||||
|
||||
### 7. Validate
|
||||
- `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).
|
||||
- `mint dev` browser smoke: initial selection = the verified cell (first in
|
||||
`cells[]`) with green badge; multi-node cells show the injected trio +
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
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
|
||||
@@ -29,9 +29,9 @@ than restating.
|
||||
## Checklist
|
||||
|
||||
### 1. File hygiene
|
||||
- A cookbook PR should only touch: `docs_new/src/snippets/configs/<vendor>/*.jsx`
|
||||
(config + benchmarks), `docs_new/cookbook/**/*.mdx`, `docs_new/docs.json`,
|
||||
`docs_new/cookbook/<category>/intro.mdx` (vendor card), `docs_new/cards/logos/<vendor>.png`
|
||||
- A cookbook PR should only touch: `docs/src/snippets/configs/<vendor>/*.jsx`
|
||||
(config + benchmarks), `docs/cookbook/**/*.mdx`, `docs/docs.json`,
|
||||
`docs/cookbook/<category>/intro.mdx` (vendor card), `docs/cards/logos/<vendor>.png`
|
||||
(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
|
||||
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
|
||||
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
|
||||
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).
|
||||
- Deploy heading slugs to `deployment` (or `deploy`), Playground to `playground` — so
|
||||
"↑ Switch base" and "Open the Playground →" scroll. No numbered headings for these two.
|
||||
|
||||
### 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`**:
|
||||
`cookbook/<category>/<Vendor>/<Model>`.
|
||||
- Homepage `<Card href>` in `docs_new/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` —
|
||||
- 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/cards/logos/<vendor>.png` —
|
||||
**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.
|
||||
- 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
|
||||
- HuggingFace URLs resolve to a real model. License section matches the actual HF license
|
||||
@@ -232,7 +232,7 @@ than restating.
|
||||
|
||||
### 13. Build / validate
|
||||
```bash
|
||||
cd docs_new
|
||||
cd docs
|
||||
mint validate
|
||||
mint broken-links
|
||||
```
|
||||
|
||||
@@ -32,7 +32,7 @@ Use these upstream files when the workflow or behavior needs to be justified fro
|
||||
|
||||
## Documentation and tests
|
||||
|
||||
- `docs_new/docs/developer_guide/benchmark_and_profiling.mdx`
|
||||
- `docs/docs/developer_guide/benchmark_and_profiling.mdx`
|
||||
- canonical profiling docs
|
||||
|
||||
- `test/registered/profiling/test_start_profile.py`
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
/docker @Fridge003 @ispobock @HaiShaw @ishandhanani @yctseng0211 @sogalin
|
||||
/docker/npu.Dockerfile @ping1jing2 @iforgetmyname @whybeyoung
|
||||
/docs @wisclmy0611 @zijiexia @sogalin
|
||||
/docs_new @wisclmy0611 @zijiexia @Richardczl98 @JustinTong0323 @sogalin
|
||||
/docs @wisclmy0611 @zijiexia @Richardczl98 @JustinTong0323 @sogalin
|
||||
/python/pyproject.toml @merrymercy @Fridge003 @ispobock
|
||||
/python/sglang/kernels @DarkSharpness @BBuf @celve @HydraQYH @yuan-luo
|
||||
/python/sglang/kernels/ops/diffusion @yingluosanqian @BBuf @mickqian
|
||||
@@ -97,8 +97,8 @@
|
||||
/python/sglang/srt/models/gemma4_*.py @kpham-sgl @pyc96
|
||||
/python/sglang/srt/multimodal/processors/gemma4.py @kpham-sgl @pyc96
|
||||
/python/sglang/test/ascend @ping1jing2 @ssshinigami @e-martirosian
|
||||
/docs_new/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/cookbook/autoregressive/Google/Gemma4.mdx @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/adaptive_*.py @Qiaolin-Yu @alphabetc1
|
||||
/python/sglang/srt/speculative/cpp_ngram @hnyls2002 @Qiaolin-Yu @kpham-sgl
|
||||
|
||||
@@ -26,7 +26,7 @@ documentation:
|
||||
- '**/*.mdx'
|
||||
- 'docs/**/*'
|
||||
- 'README*'
|
||||
- 'docs_new/**/*'
|
||||
- 'docs/**/*'
|
||||
|
||||
# Dependencies
|
||||
dependencies:
|
||||
|
||||
@@ -2,8 +2,8 @@ name: Bot Bump Docs Version
|
||||
#
|
||||
# Bumps the "install from source" release-branch version pinned in the docs
|
||||
# (the `git clone -b v<version> ...sglang.git` line in
|
||||
# docs_new/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/get-started/install.mdx "Method 2: From source" and
|
||||
# docs/docs/hardware-platforms/amd_gpu.mdx) whenever a release tag is
|
||||
# pushed, and opens a PR with the change.
|
||||
#
|
||||
# Triggers mirror release-docker.yml: a pushed `v*` tag (the release), or a
|
||||
|
||||
@@ -13,6 +13,22 @@ jobs:
|
||||
with:
|
||||
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
|
||||
uses: actions/setup-python@v4
|
||||
with:
|
||||
@@ -39,7 +55,7 @@ jobs:
|
||||
with:
|
||||
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 covered separately by the nightly lychee job (no --check-external here).
|
||||
- name: Set up Node
|
||||
@@ -47,13 +63,13 @@ jobs:
|
||||
with:
|
||||
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
|
||||
# version-sensitive); bump deliberately after re-verifying locally.
|
||||
- name: Check docs_new links (Mintlify broken-links)
|
||||
- name: Check docs links (Mintlify broken-links)
|
||||
run: |
|
||||
npm install -g mint@4.2.559
|
||||
cd docs_new
|
||||
cd docs
|
||||
mint broken-links --check-anchors --check-redirects
|
||||
|
||||
- name: Run sgl-kernel clang-format checks
|
||||
|
||||
@@ -112,14 +112,14 @@ jobs:
|
||||
VERSION=$(echo "$BRANCH_NAME" | sed 's/release\///')
|
||||
|
||||
# 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_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/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/hardware-platforms/amd_gpu.mdx
|
||||
|
||||
# Check if any changes were made
|
||||
if git diff --quiet; then
|
||||
echo "No version references needed updating"
|
||||
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"
|
||||
echo "Updated version references to $VERSION"
|
||||
fi
|
||||
|
||||
@@ -25,7 +25,7 @@ jobs:
|
||||
- name: Sync blog cards
|
||||
env:
|
||||
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
|
||||
env:
|
||||
@@ -33,7 +33,7 @@ jobs:
|
||||
run: |
|
||||
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."
|
||||
exit 0
|
||||
fi
|
||||
@@ -45,7 +45,7 @@ jobs:
|
||||
# Recreate the bot branch as "current main + card diff" and overwrite
|
||||
# any previous state, so the PR always shows a clean single-commit diff.
|
||||
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 push --force origin "$BRANCH"
|
||||
|
||||
@@ -56,5 +56,5 @@ jobs:
|
||||
--base main \
|
||||
--head "$BRANCH" \
|
||||
--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
|
||||
|
||||
@@ -71,9 +71,6 @@ instance/
|
||||
# Scrapy stuff:
|
||||
.scrapy
|
||||
|
||||
# Sphinx documentation
|
||||
docs/_build/
|
||||
|
||||
# PyBuilder
|
||||
.pybuilder/
|
||||
target/
|
||||
@@ -168,9 +165,6 @@ cython_debug/
|
||||
# Vim
|
||||
*.swp
|
||||
|
||||
# Documentation
|
||||
docs/_build
|
||||
|
||||
# SGL
|
||||
benchmark/mmlu/data
|
||||
benchmark/mmlu/data.tar
|
||||
@@ -192,7 +186,7 @@ work_dirs/
|
||||
*.csv
|
||||
|
||||
!logo.png
|
||||
!docs_new/images/*.png
|
||||
!docs/images/*.png
|
||||
|
||||
# Prerequisites
|
||||
*.d
|
||||
|
||||
@@ -37,7 +37,7 @@ repos:
|
||||
args:
|
||||
- --select=F401,F821,UP037
|
||||
- --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: |
|
||||
(?x)^(
|
||||
.*/__init__\.py$|
|
||||
@@ -73,6 +73,16 @@ repos:
|
||||
- '--extra-keys=metadata.kernelspec metadata.language_info.version'
|
||||
- repo: local
|
||||
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
|
||||
name: check chinese characters in multimodal_gen
|
||||
entry: >-
|
||||
@@ -134,8 +144,8 @@ repos:
|
||||
files: ^rust/.*\.rs$
|
||||
pass_filenames: false
|
||||
- id: mint-broken-links
|
||||
name: check docs_new links (Mintlify; opt-in, requires `mint` on PATH)
|
||||
entry: bash -c 'cd docs_new && mint broken-links --check-anchors --check-redirects'
|
||||
name: check docs links (Mintlify; opt-in, requires `mint` on PATH)
|
||||
entry: bash -c 'cd docs && mint broken-links --check-anchors --check-redirects'
|
||||
language: system
|
||||
pass_filenames: false
|
||||
always_run: true
|
||||
|
||||
@@ -42,7 +42,7 @@ Pages are `.mdx` files with YAML frontmatter. Navigation is defined in `docs.jso
|
||||
# Install the CLI
|
||||
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
|
||||
```
|
||||
|
||||
@@ -71,7 +71,7 @@ We welcome contributions! Whether you want to add a recipe for a new model, impr
|
||||
```bash
|
||||
# 1. Fork sgl-project/sglang and clone your fork
|
||||
git clone https://github.com/<YOUR_USERNAME>/sglang.git
|
||||
cd sglang/docs_new
|
||||
cd sglang/docs
|
||||
|
||||
# 2. Create a branch
|
||||
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
|
||||
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.
|
||||
|
||||
> 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} />
|
||||
|
||||
<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>
|
||||
|
||||
<div style={{fontSize: "0.85em", lineHeight: "1.55", color: "#6b7280", margin: "0.5rem 0 1rem 0"}}>
|
||||