Prhub

#39346 chore: bump sglang-kernel version to 0.4.7

原始 PR 作者 sglang-bot 合并时间 2026-09-14 11:49 文件变更 3 提交数 2 评论 0 代码增减 +3 / -3

执行摘要

sglang-kernel 依赖升至 0.4.7,同步三处引用

PR body 明确说明:sglang-kernel 版本已在 python/sglang/kernels/aot/pyproject.toml 中更新为 0.4.7,本 PR 确保主仓库所有引用该依赖的文件同步对齐("bumps the sglang-kernel version to 0.4.7 across SGLang files to match the version defined in python/sglang/kernels/aot/pyproject.toml")。若不同步,pip 安装的 kernel 版本、引擎启动时的强制校验版本和 Docker 镜像内构建的 kernel 版本会产生漂移,导致同一代码库在不同安装方式下行为不一致。

不值得精读,属于机械的依赖升版 PR。值得关注的不是代码本身,而是版本管理流程:aot 侧 pyproject.toml 作为版本定义源头,bot 自动同步主仓库三方引用。合入前需重点确认 CI Extra 车道的失败是否与 0.4.7 相关。

讨论亮点

本 PR 无任何 review 评论与讨论线程,Fridge003 直接给出 APPROVED 后合入。值得留意的是 PR body 中 CI 状态:Extra 测试车道显示失败(Run #34800369674),但未看到与本次升版直接关联的失败原因讨论。

实现拆解

  1. 更新依赖声明:python/pyproject.toml 第 80 行将 sglang-kernel==0.4.6.post1 改为 sglang-kernel==0.4.7,锁定 pip/uv 安装的精确版本。
  2. 更新启动校验:python/sglang/srt/entrypoints/engine.py 的 _set_envs_and_config 函数中,CUDA 分支调用 assert_pkg_version("sglang-kernel", "0.4.7", ...),启动时若检测到本地安装版本不匹配会提示用户执行 pip install sglang-kernel --force-reinstall;该校验仅在 _is_cuda 为真时生效,非 CUDA 平台不受影响。
  3. 更新 Docker 构建参数:docker/Dockerfile 中 ARG SGL_KERNEL_VERSION 默认值由 0.4.6.post1 改为 0.4.7,保证镜像构建时安装与主仓库一致的 kernel 版本。
  4. 配套与演进:本 PR 无测试文件变更,共 2 个 commit,第一个为 bot 的升版提交,第二个为 Fridge003 合入 main 分支的 merge commit;PR 自带 CI 中 Extra 车道显示失败(:x:),Base 车道为跳过状态,AMD ROCm 10 车道当时仍在运行。
文件 模块 状态 重要度
python/sglang/srt/entrypoints/engine.py 启动入口 modified 4.53
python/pyproject.toml 依赖声明 modified 3.07
docker/Dockerfile 镜像构建 modified 2.38

关键符号

_set_envs_and_config

关键源码片段

python/sglang/srt/entrypoints/engine.py core-logic

启动阶段对 sglang-kernel 版本的强制校验点,CUDA 路径下若版本不匹配会直接中断启动并提示重装,是本次升版对运行时行为唯一有感知的文件。

# python/sglang/srt/entrypoints/engine.py —— _set_envs_and_config 中的版本校验段
# 整个校验块可通过 SGLANG_SKIP_SGL_KERNEL_VERSION_CHECK 环境变量跳过,便于特殊环境绕行
if not get_bool_env_var("SGLANG_SKIP_SGL_KERNEL_VERSION_CHECK"):
    # flashinfer 后端的版本契约:启用 flashinfer 时固定要求 0.6.18
    if (
        "flashinfer" in attention_backends_of(resolved_view(cfg))
        or cfg.dsa_topk_backend == "flashinfer"
        or cfg.speculative_dsa_topk_backend == "flashinfer"
    ):
        assert_pkg_version(
            "flashinfer_python",
            "0.6.18",
            "Please uninstall the old version and "
            "reinstall the latest version by following the instructions "
            "at https://docs.flashinfer.ai/installation.html.",
        )
    # 仅 CUDA 平台强制校验 sglang-kernel 版本,本次由 0.4.6.post1 升到 0.4.7
    if _is_cuda:
        assert_pkg_version(
            "sglang-kernel",
            "0.4.7",
            "Please reinstall the latest version with `pip install sglang-kernel --force-reinstall`",
        )

评论区精华

没有提炼出高价值讨论线程

当前评论区没有形成足够清晰的争议点或结论,后续有更多讨论时会体现在这里。

风险与影响

  1. 版本一致性风险:sglang-kernel 版本在 python/sglang/kernels/aot/pyproject.toml、python/pyproject.toml、engine.py、docker/Dockerfile 四处分散维护,虽然本次由 bot 自动对齐,但未来任何一处遗漏升级都会造成安装版本与启动校验版本不一致,且缺少测试兜底。
  2. 兼容性风险:0.4.7 若尚未在 PyPI 发布或依赖的二进制不完整,pip 安装与 Docker 构建会直接失败;本 PR 依赖 39324 已先完成 aot 侧版本定义,预期版本已可获取。
  3. CI 风险:Extra 测试车道失败未确认根因,若与 kernel 0.4.7 的行为变化相关,则可能存在回归,需要人工确认后才能完全放心发布。
  4. 用户侧影响:已有 0.4.6.post1 环境的用户在升级 sglang 后启动会被 engine.py 拦截并提示重装 kernel,这是预期行为但可能造成短暂困扰。

对用户:所有通过 pip 安装 sglang 或使用 Docker 镜像的用户将统一获取 sglang-kernel 0.4.7,属于向后兼容的 minor 版本升级,无 API 或行为变更。对系统:依赖解析、启动时版本断言和镜像构建参数三处保持一致,降低了因版本漂移导致的隐性故障。对团队:展示了 sglang-kernel 版本发布的自动化流程(先改 aot 包定义,再由 bot 自动对齐主仓库引用),后续维护者应沿用此机制保持版本同步。

依赖版本多处分散维护 CI Extra 车道失败未确认 无测试配套

关联 Issue

未识别关联 Issue

当前没有检测到明确关联的 Issue 链接,后续同步到相关引用后会出现在这里。

完整报告

参与讨论