执行摘要
本 PR 修复了 CI 中 CUDA 测试依赖安装时的 protobuf 与 opentelemetry-proto 版本死锁问题。通过降级 opentelemetry-proto 至 1.35.0、升级 protobuf 至 6.33.6,并修改预提交钩子生成命令加入 common.txt 约束,解决了依赖解析失败。这是一个低风险的构建基础设施修复,提升了新贡献者的本地开发体验。
功能与动机
根据 PR body 和 Issue 评论,uv pip install -r requirements/common.txt -r requirements/dev.txt --torch-backend=auto 命令在本地 WSL 环境中因依赖死锁失败。该命令是官方贡献指南推荐的测试环境搭建步骤。CI 可能因增量安装未触发全局解析而逃过此问题,但新贡献者在本地首次安装时会遇到障碍。
实现拆解
-
更新预提交钩子生成命令(.pre-commit-config.yaml):在 pip-compile 命令中增加 -c requirements/common.txt 约束,确保生成的 requirements/test.txt 自动考虑公共依赖的版本限制。这是根本解决方案,避免了手动编辑自动生成文件。
-
降级 opentelemetry-proto(requirements/test.txt):从 1.36.0 降至 1.35.0,与 opentelemetry-sdk==1.35.0 对齐,消除版本冲突。
-
升级 protobuf(requirements/test.txt):从 6.33.2 升至 6.33.6,解决与其他依赖(如 opentelemetry-esporter-otlp-proto-grpc)的兼容性问题。
-
更新注释与元数据:在 requirements/test.txt 中添加 -c requirements/common.txt 注释标记,并调整相关依赖的 via 注释,保持文件元信息的准确性。
评论区精华
gemini-code-assist[bot] (高优先级评论):虽然版本更改正确,但 requirements/test.txt 是自动生成文件,手动编辑不可持续,会被覆盖。建议更新生成命令以包含约束文件。
yurun00 (作者):已采纳建议,更新了 .pre-commit-config.yaml 并重新生成文件。
审核者 hmellor 对作者的说明表示认可,并批准了 PR。
风险与影响
- 风险:极低。变更仅涉及依赖版本和生成命令,不触及核心代码。未来若更新依赖,可能需再次验证兼容性。
- 影响:范围限定在 CI 构建环境(CUDA)。修复了新贡献者本地安装测试依赖的阻塞问题,提升开发体验。对生产部署无影响。
关联脉络
本 PR 未关联其他 Issue 或 PR,属于独立的构建基础设施优化。但可视为 vLLM 持续改善开发者入门体验系列工作的一部分。
参与讨论