执行摘要
- 一句话:修复 AMD AITER 检出失败问题
- 推荐动作:值得合并,修复明确、风险低。但建议关注 AITER 上游是否彻底迁移 CSV 到 LF,届时可恢复为普通 checkout 以保留额外安全保护。
功能与动机
AMD AITER scout job 在 Install dependencies 步骤中因 git checkout 检测到本地修改(实际是克隆后 smudge filter 造成的 CRLF/LF 幻象差异)而失败。作者在 PR body 中详细分析了根本原因,并引用外部仓库 ROCm/aiter#3370 作为根因。
实现拆解
- 修改检出命令:在
scripts/ci/amd/amd_ci_install_dependency.sh 中将 git checkout 替换为 git checkout -f。
- 添加解释注释:新增多行注释说明为什么需要强制检出,以及为什么丢弃所谓“本地修改”是安全的。
- 无其他文件变更:仅单文件 6 行新增、1 行删除。
关键文件:
scripts/ci/amd/amd_ci_install_dependency.sh(模块 CI脚本;类别 infra;类型 infrastructure): 核心变更文件,修改了 AITER 重建块中的 git checkout 命令,添加了解释注释。
关键符号:未识别
关键源码片段
scripts/ci/amd/amd_ci_install_dependency.sh
核心变更文件,修改了 AITER 重建块中的 git checkout 命令,添加了解释注释。
# Use `checkout -f` so the smudge-filter-induced "dirty" working tree from
# AITER's .gitattributes (*.csv text eol=lf, added in ROCm/aiter#3370) does
# not block switching to commits that predate that rule. The working tree
# was just produced by `rm -rf` + fresh `git clone` above, so there are no
# real user changes to preserve.
git checkout -f ${REPO_AITER_COMMIT} && \
评论区精华
无。该 PR 没有 review 评论或争议,直接被合并者批准。
风险与影响
- 风险:风险极低。变更仅影响 CI 中的特定 AITER 重建分支路径,且
checkout -f 丢弃的仅是由 smudge filter 产生的幻象 dirty 状态,不会丢失真实修改。但若未来 AITER 仓库的 .gitattributes 规则被移除或变更,此强制覆盖行为可能掩盖其他真实问题。
- 影响:仅影响 AMD CI 中触发 AITER 重建的作业。修复后,当
AITER_COMMIT_OVERRIDE 指向一个早于 cb84b78a1 的 commit 时,不会再因假 dirty 状态而失败。对其他平台或非 AITER 路径无影响。
- 风险标记:低风险, 基础设施变更
关联脉络
- PR #26487 feat: convert mm_hashes to str in encode_server for Mooncake key compat: 同属 AMD 相关修复,但技术领域不同。
- PR #26383 [AMD][DSV4] DSV4 MTP graph + sparse triton attn optimizations: 同为 AMD 平台的 CI/构建问题修复,但非直接依赖。
参与讨论