Prhub

#19742 Add Lychee Doc Links Check to Local and CI

原始 PR 作者 JiaxinD 合并时间 2026-03-25 04:48 文件变更 25 提交数 24 评论 18 代码增减 +154 / -32

执行摘要

添加 Lychee 文档链接检查至本地和 CI,提升文档可靠性并修复 broken 链接。

PR body中说明:'This PR improves documentation link reliability while keeping contributor workflow lightweight:

  • CI enforces full link checks (offline references + online external links) - Local lychee is manual-only to avoid blocking local commits by platform/network issues',并跟随@zijiexia的修复方向,以减少broken链接对用户体验的影响。

建议技术管理者关注CI工作流设计中的权衡(如离线vs在线检查),工程师可精读lychee配置文件和夜间工作流,学习如何平衡检查频率与开发者体验。

讨论亮点

review中的核心讨论包括:

  • zijiexia建议将在线链接检查从lint工作流移至夜间CI('imho, I think a nightly link check ci might be a better choice'),以避免CI延迟,最终被采纳并新增nightly-link-check.yml。
  • 讨论不必要更改,如.gitignore添加文件、structured_outputs.ipynb的格式化修改,经确认后部分修复或移除。
  • zijiexia提出pin lychee-action到commit SHA for supply chain安全('Maybe we need to pin lychee-action to a commit SHA for supply chain safety'),在后续提交中实施。
  • 对lychee-ci.toml中正则表达式的检查('Can you double check on this regex?'),作者JiaxinD确认并修复。

实现拆解

实现拆分为六个关键部分:

1) 本地lychee配置(.github/linters/lychee.toml),设置offline=true进行快速离线检查;
2) CI lychee配置(.github/linters/lychee-ci.toml),设置offline=false进行在线验证,并排除不可达端点;
3) pre-commit集成(.pre-commit-config.yaml),将lychee钩子设置为manual阶段,避免阻塞本地提交;
4) lint工作流(.github/workflows/lint.yml),添加离线链接检查步骤;
5) 新增夜间工作流(.github/workflows/nightly-link-check.yml),执行在线链接检查;
6) 贡献者文档更新(docs/developer_guide/contribution_guide.md)和多个文档文件的链接修复。

文件 模块 状态 重要度
.github/linters/lychee-ci.toml CI/ 工具 added 8.0
.github/linters/lychee.toml CI/ 工具 added 7.0
.github/workflows/lint.yml CI modified 7.0
.github/workflows/nightly-link-check.yml CI added 7.0
docs/developer_guide/contribution_guide.md 文档 modified 6.0

分析完成后,这里会展示 LLM 生成的相对完整源码片段和详细注释。

评论区精华

移动在线链接检查至夜间 CI 设计

zijiexia 建议在线链接检查从 lint 工作流移至夜间 CI,以避免 CI 延迟和网络问题。

结论:采纳建议,新增 nightly-link-check.yml 工作流,并调整 lint.yml 仅保留离线检查。 · 已解决

不必要更改和代码风格 style

zijiexia 指出 .gitignore 添加文件、structured_outputs.ipynb 格式化修改等可能不必要。

结论:作者修复或移除了部分更改,保持 PR 焦点在功能上。 · 已解决

Supply chain 安全 安全

zijiexia 建议 pin lychee-action 到 commit SHA 以增强依赖安全性。

结论:在后续提交中实施,将 lychee-action 版本固定为特定 SHA。 · 已解决

风险与影响

技术风险包括:

1) CI工作流变更(.github/workflows/lint.yml和nightly-link-check.yml)可能导致lint失败,影响PR合并流程。
2) 链接检查依赖lychee工具,排除列表(lychee-ci.toml)若未覆盖所有噪声端点,可能产生误报。
3) 依赖lychee-action外部版本,存在supply chain风险,已通过pin到commit SHA缓解。
4) 本地检查为手动,贡献者可能忽略,导致链接问题未在早期发现。

影响范围:

  • 对用户:贡献者需更新工作流,使用新命令进行本地链接检查(如pre-commit run --hook-stage manual lychee),但本地提交不受阻塞,CI作为最终验证。
  • 对系统:提升文档质量,减少broken链接,增强CI健壮性。
  • 对团队:自动化链接验证降低维护负担,夜间检查避免干扰日常开发。影响程度中等,不涉及核心运行时代码。
CI 工作流变更 依赖安全 误报风险

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论