Prhub

#7622 [doc] fix: update broken external links

原始 PR 作者 tardis-key 合并时间 2026-08-31 11:00 文件变更 16 提交数 1 评论 0 代码增减 +20 / -20

执行摘要

扫描 758 个外部链接,修复 15 类失效链接(16 个文档文件)

PR body 开篇即说明:“Scanned all 758 external URLs across docs/ and fixed 15 categories of broken links whose new locations were confirmed (16 files). Every replacement URL has been verified with HTTP 200.” 失效根因多样且具典型性:上游文档持续重组(Ray 把 direct-transport 页面移入 direct-transport/ 子目录、vLLM optimization 文档搬迁到 configuration/optimization/、sglang 把 docs_new/ 改名 docs/、vLLM Grafana dashboard 移入 observability/);仓库内文件移动与改名(Dockerfile.rocm 移入 docker/rocm/verl/utils/reward_score/math.py 改名 math_reward.pyrun_sft_engine_gsm8k.sh 改名 run_sft_engine.sh);外部分支合并删除(uni-agent 的 rlinsight 分支已并入 main)。文档中的失效外链会直接误导读者(例如按旧路径找不到 Dockerfile 无法构建镜像、SFT 脚本改名后旧链接 404),因此需要系统性清理。

该 PR 无代码,不值得精读源码,但建议文档维护者通读 PR body——它演示了一种高质量的外链维护方式:全量扫描、根因分类、逐条验证、对“不可盲改”的链接显式留待决策。值得关注的设计决策是作者对 dapo.md 中语义相关的链接保持克制、没有机械替换。建议跟进 Needs decision 列表,把 5 类遗留问题转成 issue 或在下一个文档清理 PR 中处理;长期看可为仓库引入 CI 链接检查(如 lychee)以遏制同类问题复发。

讨论亮点

该 PR 没有 review 评论,wuxibin89 直接 APPROVED(评论为空)。实质性的“讨论”发生在 PR 正文的 Needs decision 部分——作者把无法直接替换的失效链接显式列出并给出候选方案。最有价值的判断是作者没有机械替换 docs/algo/dapo.md 第 173/175 行:

“lines 173/175 of the same file reference the same URL but involve the semantics of the now-missing recipe/dapo branch, so they were not blindly changed”

这说明“链接修复也要尊重内容语义”。另外两处被明确标注的失效场景:

“the experiments branch still exists, but these bsz64_*-lorarank32-score*.log files were deleted”
“the entire aoshen524/verl fork repository has been deleted”

五个待决策项合计 15 处失效引用,作者均未擅动,全部留待维护者决策。

实现拆解

整个变更是一条纯文档清理流水线,按以下步骤展开:

  1. 全量审计与根因分类:扫描 docs/ 下全部 758 个外部 URL,按失效原因归为 15 类可修复链接与 5 类“需维护者决策”的链接。这一步的关键产出是分类方法——把“上游重组”“文件改名”“分支删除”“拼写错误”分开处理,避免一刀切替换。
  2. 逐类确认新位置并替换:对每一类先确认目标 URL 的准确新位置,再统一替换,且每个替换链接都通过 HTTP 200 验证。主要替换动作如下表:
类别 代表文件 变更内容
上游目录重组 docs/data/transfer_queue.md Ray direct-transport 链接更新为 en/latest/ray-core/direct-transport/direct-transport.html;TransferQueue 教程 05_streaming_dataloader.py 顺延为 06_
上游目录重组 docs/perf/perf_tuning.rstdocs/advance/grafana_prometheus.md vLLM 文档与 Grafana dashboard 新路径
仓库内文件移动 docs/start/install.rstdocs/start/multinode.rst docker/Dockerfile.rocm 改为 docker/rocm/Dockerfile.rocm,链接、正文与 bash 代码块共 4 处同步
仓库内文件改名 docs/workers/model_engine.rstdocs/preparation/reward_function.rstdocs/examples/ppo_code_architecture.rst run_sft_engine_gsm8k.shrun_sft_engine.shmath.pymath_reward.py
外部分支合并删除 docs/advance/rl_insight.md uni-agent 链接从已删除的 rlinsight 分支指向 main
拼写与历史引用错误 docs/perf/device_tuning.rstdocs/ascend_tutorial/zh/model_support/examples/ascend_vllm_best_practices.rst qwen2-14bqwen2_14b;commit c98cb8cc 下不存在的 ascend_vllm_best_pratice.rst 改为指向 main 当前路径
目录扁平化 docs/algo/dapo.mddocs/low_precision/fp8.md verl-recipe 目录结构变化的 tree URL
  1. 区分“可修复”与“需决策”:对没有直接替代的失效链接(verl-data 实验日志 7 处、aoshen524 fork 图片 4 处引用、作者个人站点、recipe/dapo 分支 2 处、ubecc about 页)不盲改,逐项列出候选方案(重新上传 / 指向最近资源 / 删除链接 / 重写 FAQ)等维护者拍板。
  2. 验证与配套:无源码、测试或配置改动;替换链接全部通过 HTTP 200 验证,文档内部路径(install.rst 与 multinode.rst 的 Dockerfile 引用)保持一致。
文件 模块 状态 重要度
docs/workers/model_engine.rst 引擎文档 modified 2.18
docs/start/install.rst 安装部署 modified 2.02
docs/ascend_tutorial/zh/model_support/examples/ascend_vllm_best_practices.rst 昇腾教程 modified 1.89
docs/ascend_tutorial/zh/dev_guide/model_dev/transfer_to_npu_guide.md 昇腾教程 modified 1.89
docs/advance/grafana_prometheus.md 进阶文档 modified 1.82
docs/data/transfer_queue.md 数据文档 modified 1.82
docs/start/multinode.rst 安装部署 modified 1.81
docs/algo/dapo.md 算法文档 modified 1.56
docs/advance/fully_async.md 进阶文档 modified 1.52
docs/advance/rl_insight.md 进阶文档 modified 1.52
docs/ascend_tutorial/zh/get_start/quick_start.rst 昇腾教程 modified 1.52
docs/examples/ppo_code_architecture.rst 示例文档 modified 1.52
docs/low_precision/fp8.md 低精度文档 modified 1.52
docs/perf/device_tuning.rst 性能文档 modified 1.52
docs/perf/perf_tuning.rst 性能文档 modified 1.52
docs/preparation/reward_function.rst 准备文档 modified 1.52

关键源码片段

docs/start/install.rst documentation

AMD ROCm 相关 3 处引用(链接、正文、bash 构建命令)同步 `Dockerfile.rocm` 移入 `docker/rocm/` 的新路径,是本次唯一涉及多上下文一致性的修复。

Find the docker for AMD ROCm: `docker/rocm/Dockerfile.rocm <https://github.com/verl-project/verl/blob/main/docker/rocm/Dockerfile.rocm>`_.. code-block:: bash
​
   # Build the docker in the repo dir:
   # docker build -f docker/rocm/Dockerfile.rocm -t verl-rocm:03.04.2015 ... 修复说明(本注释为分析辅助,不参与渲染):
   本次共同步 4 处引用。除了上面的链接与构建命令,install.rst 正文第 167 行附近
   和 multinode.rst 的 slurm 示例脚本(第 582 行)也把 docker/Dockerfile.rocm
   改为 docker/rocm/Dockerfile.rocm,因为该文件已移入 docker/rocm/ 子目录。
   若不同步更新,读者按文档执行 docker build 会直接得到文件不存在的错误。

评论区精华

verl-data 实验日志文件被删除(7 处链接) question

来自 PR 正文 Needs decision 部分(无 review 评论):`experiments` 分支仍存在,但 7 个 `bsz64_*-lorarank32-score*.log` 文件已被删除,剩余日志为其他实验(bsz256 命名、deepseek、gemma 等),无直接替代链接。

结论:作者给出 3 个选项(请作者重新上传 / 链接最接近的现存实验日志 / 移除对比链接),等待维护者决策,本次未改动。 · unresolved

aoshen524 fork 仓库整体删除导致 3 张图片失效 question

来自 PR 正文 Needs decision 部分:`docs/start/multinode.rst` 中 4 处引用 `aoshen524/verl` 仓库的 PNG 图片(raw=true 链接),该 fork 仓库已被作者整个删除。

结论:提出两个选项(在 verl 仓库或官方数据仓库重新托管图片 / 重新截图),未解决。 · unresolved

dapo.md FAQ 中 recipe/dapo 分支引用未盲改 question

来自 PR 正文 Needs decision 部分:`docs/algo/dapo.md` 第 173/175 行仍引用 `verl-recipe/tree/main/dapo/recipe/dapo`,目录扁平化后该分支不复存在;作者特意说明不盲改是因为涉及 FAQ 条目的语义(“involve the semantics of the now-missing recipe/dapo branch”)。

结论:需重写或删除该 FAQ 条目,或恢复历史分支后更新链接,未解决。 · unresolved

作者个人站点与 about 页 404 question

来自 PR 正文 Needs decision 部分:`docs/start/ray_debug_tutorial.rst` 引用的 `aoshen524.github.io` 与 `docs/workers/sglang_worker.rst` 引用的 `ubecc.github.io/about/` 均返回 404(后者站点根路径可用)。

结论:可改为链接到 GitHub 主页、站点根路径或直接移除作者链接,未解决。 · unresolved

风险与影响

1) 外部依赖持续漂移:本次替换的链接虽已 HTTP 200 验证,但 Ray、vLLM、sglang、TransferQueue 等上游文档仍在快速重组,同类问题会持续复发;仓库当前没有 CI 链接检查机制兜底,此 PR 是一次性清理而非长效机制。
2) 遗留失效链接:5 类共 15 处链接(7 个 verl-data 实验日志、4 张 multinode.rst 图片引用、dapo.md 2 处、ray_debug_tutorial.rst 与 sglang_worker.rst 各 1 处作者链接)仍然 404,读者会继续踩坑,且其中 docs/algo/dapo.md 的 FAQ 条目本身语义已过时。
3) docs/start/multinode.rst 中的图片链接来自已删除的 fork 仓库,视觉效果缺失。
4) 无任何编码变更,不存在回归、性能或安全问题。

影响范围严格限定在文档层:16 个文档文件中 20 处链接恢复可用,覆盖安装(docs/start/install.rstmultinode.rst)、NPU 迁移(ascend_tutorial 下 4 个文件)、性能调优(device_tuning.rstperf_tuning.rst)、算法(dapo.md)、数据(transfer_queue.md)、监控(grafana_prometheus.md)、RL-Insight(rl_insight.md)等主要阅读路径,社区用户按文档上手时的 404 中断明显减少。对运行时、API、配置零影响;对团队的收益是文档健康度提升,且 PR body 本身提供了一套可复用的外部链接审计模板(全量扫描 → 按根因分类 → HTTP 200 验证 → 不可修复项单独列出),后续清理可直接照搬。

纯文档变更 外部文档持续漂移 遗留 15 处失效链接待决策 无 CI 链接检查兜底

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论