Prhub

#21656 [Fix] Handle pre-release tags in nightly wheel version parsing

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

执行摘要

修复 nightly wheel 构建中预发布标签解析失败的问题。

根据 PR body,nightly wheel 构建(build-nightly-wheel 任务)在最新 git 标签包含预发布后缀(如 v0.5.10rc0)时失败,因为 cut -d. -f3 提取 10rc0,bash 算术 $((10rc0 + 1)) 报错 value too great for base,产生无效版本字符串并引发 packaging.version.InvalidVersion。修复目的是处理所有预发布后缀(rc、post、alpha、beta 等),确保构建成功。

该 PR 变更简单,建议快速审查以熟悉 CI 版本解析逻辑,无需深入阅读。

讨论亮点

没有 review 评论,因此无讨论摘要。

实现拆解

修改了 .github/workflows/release-pypi-nightly.yml 文件中的版本解析逻辑:

  1. PATCH 变量重命名为 PATCH_RAW 以保留原始 patch 部分。
  2. 使用 sed 命令 s/[^0-9].*//PATCH_RAW 中剥离非数字后缀,得到纯数字 PATCH
  3. 递增 PATCH 以计算 NEXT_PATCH,并构建下一个版本字符串。
文件 模块 状态 重要度
.github/workflows/release-pypi-nightly.yml CI/CD modified 5.0

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

评论区精华

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

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

风险与影响

风险较低:

  • sed 命令假设所有预发布后缀都以非数字字符开始,可能未覆盖所有变体(如 v0.5.10-rc0),但测试计划已验证常见格式。
  • 版本解析逻辑变更仅影响 CI 流程,不触及核心代码,但若未来标签格式变化可能导致构建失败。
  • 依赖 bash 算术和外部命令,在非标准环境中可能有问题,但该文件仅用于 GitHub Actions 工作流。

影响范围仅限于 nightly wheel 构建流程:

  • 修复了 CI 失败,确保持续集成正常工作,对用户透明。
  • 不影响系统核心功能或用户接口,但维护了版本发布的可信性。
  • 变更简单,易于理解和维护,无性能或安全影响。
版本解析逻辑变更 依赖外部命令 sed

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论