Prhub

#24265 [CI] drop --prerelease allow from uv pip install suffix

原始 PR 作者 Kangyan-Zhou 合并时间 2026-05-03 03:25 文件变更 1 提交数 4 评论 2 代码增减 +1 / -1

执行摘要

删除 --prerelease allow 以提升 CI 稳定性

apache-tvm-ffi 0.1.11rc2 预发布版本因 build_inline() 中的 FileNotFoundError 导致 CI 崩溃。虽然最终发现根本原因是容器挂载缓存问题,但删除 --prerelease allow 可避免未来类似预发布版本意外引入。

该 PR 变更简单明确,可作为 CI 最佳实践的参考:显式禁止预发布版本可避免意外引入不稳定的依赖。建议同时评估是否移除 unsafe-best-match 以增强安全性。

讨论亮点

gemini-code-assist[bot] 在 review 中提出应同时移除 --index-strategy unsafe-best-match 标志,因为它可能导致依赖混淆攻击。但该建议未在 PR 中被采纳。

实现拆解

  1. 修改 scripts/ci/cuda/ci_install_dependency.sh 中的 PIP_INSTALL_SUFFIX 变量,去掉 --prerelease allow 参数。
  2. 最初同时添加了 apache-tvm-ffi < 0.1.11 版本上限,但后续回滚,仅保留标志删除。
文件 模块 状态 重要度
scripts/ci/cuda/ci_install_dependency.sh CI 脚本 modified 2.95

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

评论区精华

不建议使用 unsafe-best-match 标志 安全

gemini-code-assist[bot] 指出 `--index-strategy unsafe-best-match` 可能导致依赖混淆攻击,建议移除

结论:未被采纳,仅移除了 --prerelease allow · 未采纳

风险与影响

直接风险极低:仅更改 CI 依赖安装时的版本选择策略,不影响运行时逻辑。间接风险:若某个依赖的稳定版本存在 bug,而预发布版本包含修复,则删除该标志可能导致 CI 错过修复版本。

影响范围:仅限 CI 环境,对所有 CI 流水线的依赖安装步骤生效。影响程度:低,因为 CI 原本已在生产环境中使用 --prerelease allow,删除后会使版本选择更保守。

低风险变更 依赖版本策略调整

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论