Prhub

#23749 [CI] release-whl-kernel: strip +cu129 local version before PyPI upload

原始 PR 作者 Kangyan-Zhou 合并时间 2026-04-26 13:14 文件变更 1 提交数 1 评论 1 代码增减 +32 / -1

执行摘要

修复 PyPI 上传因 +cu129 版本号被拒

PR #23587 为 cu129 wheel 添加了 +cu129 本地版本标签,但 PyPI 拒绝任何包含 PEP 440 local version label 的上传(HTTP 400),导致 release-whl-kernel.yml 的 twine upload 失败。需要在不影响本地安装和 whl 索引的前提下,为 PyPI 上传生成干净的版本。

该 PR 是典型的 CI 故障修复,值得快速合并。对于团队而言,建议关注未来新增硬件平台 wheel 版本号时,是否会产生类似的 PyPI 兼容性问题。

讨论亮点

没有 review 评论或讨论。PR 由作者单人提交并合并,仅有一条 gemini-code-assist 的配额警告,不涉及技术讨论。

实现拆解

  1. .github/workflows/release-whl-kernel.ymlbuild-cu129-matrix job 中新增步骤:在 Upload to PyPI 之前插入 Strip +cu129 local version for PyPI upload。该步骤使用 python3 -m wheel unpack 解压 wheel,替换 METADATA 中的 Version 字段(去除 +cu129),重命名 dist-info 目录,然后用 python3 -m wheel pack 重新打包到 dist-pypi/ 目录。
  2. 调整 PyPI 上传路径:将 twine upload 的目标从 dist/* 改为 dist-pypi/*,确保上传的是剥离后的 wheel。
  3. 保留原 dist/ 目录dist-pypi/ 是全新生成的,dist/ 保持不变,从而不影响后续 Upload artifactsrelease-cu129 → update_kernel_whl_index.py 流程(该脚本兼容带 +cu129 和不带 +cu129 的文件名)。
  4. 该步骤仅对 cu129 生效,因为 cu130 矩阵不执行 PyPI 上传(已有注释说明),故无需改动。
文件 模块 状态 重要度
.github/workflows/release-whl-kernel.yml CI 脚本 modified 5.17

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

评论区精华

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

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

风险与影响

  1. 兼容性风险(低)update_kernel_whl_index.py:check_wheel_cuda_version 已确认兼容带和不带 +cu129 的文件名,但需验证是否还有其他地方依赖 +cu129 标识。
  2. 流程断裂风险(低):剥离过程在 CI 中运行,若 wheel 解压/打包失败,整个工作流会失败;但 CI 已有 e2e 验证通过。
  3. 无直接业务风险:变更仅涉及 CI 脚本,不修改任何运行时代码。
  • 用户/外部依赖方:无直接影响,PyPI 上的 sgl-kernel 版本号将不再包含 +cu129,符合 PyPI 规范。
  • 系统:修复了 release 流水线的断裂,确保 PyPI 上传继续可用。
  • 团队:CI 维护者需要注意未来版本号变更时类似问题的处理。影响范围小,仅限 CU129 矩阵的 PyPI 上传步骤。
CI 流程变更 依赖上传脚本兼容性

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论