Prhub

#31442 ci: add MLX to coverage report backend display order

原始 PR 作者 alisonshao 合并时间 2026-07-18 08:32 文件变更 1 提交数 1 评论 1 代码增减 +2 / -2

执行摘要

修复 CI 覆盖率报告缺少 MLX 后端

PR #31442 的 body 指出,自从 #30121 将 MLX 加入 HWBackend 后,夜间 CI Coverage Overview 作业持续失败。失败根因在于 ci_coverage_report.py 中的断言要求 BACKEND_DISPLAY_ORDER 必须覆盖 HWBackend 的所有成员,而该元组未及时同步更新。

该 PR 是常规维护,技术层面无需精读。作为 CI 基础设施的快速修复,其设计模式(使用元组+断言强制同步 HWBackend 枚举)值得在类似场景中参考。

讨论亮点

无实质性技术讨论。仅有一条来自 gemini-code-assist[bot] 的自动评论,表示没有反馈意见。

实现拆解

scripts/ci/utils/ci_coverage_report.pyBACKEND_DISPLAY_ORDER 元组末尾添加字符串 "MLX",并修改注释使其与当前后端列表一致。该元组本是用于控制覆盖率报告表格中各后端列的顺序,断言同时充当同步检查。变更使断言通过,覆盖率报告恢复正常渲染。

文件 模块 状态 重要度
scripts/ci/utils/ci_coverage_report.py CI 工具 modified 3.21

关键源码片段

scripts/ci/utils/ci_coverage_report.py infrastructure

唯一变更文件。在 BACKEND_DISPLAY_ORDER 元组中添加 MLX,修复断言失败。

# scripts/ci/utils/ci_coverage_report.py# BACKEND_DISPLAY_ORDER 控制覆盖率报告中各后端的列顺序。
# 其内容必须与 HWBackend 枚举完全一致,否则下方的 assert 会失败。
# 这种设计强迫开发者在新增后端时同步更新此处,避免遗漏。
BACKEND_DISPLAY_ORDER = (
    "CUDA", "AMD", "NPU", "CPU", "XPU", "MUSA", "MLX" # 新增 MLX
)# 运行时断言:若不一致则抛出 AssertionError,
# 从根源上防止新后端被静默忽略。
assert set(BACKEND_DISPLAY_ORDER) == {b.name for b in HWBackend}, \
    "BACKEND_DISPLAY_ORDER is out of sync with HWBackend"

评论区精华

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

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

风险与影响

风险极低:仅修改 CI 工具脚本中的列表末尾,不改变任何核心逻辑或运行时行为。若 MLX 后端不再存在或名称变更,该元组将再次不同步,但断言会及时暴露问题。

直接修复夜间 CI 覆盖率报告生成失败问题。MLX 后端相关的 12 个注册项现在会正确展示在覆盖率表格中。对用户和其他系统无影响。

关联 Issue

未识别关联 Issue

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

完整报告

参与讨论