CI 增量构建或单测的变更列表包含已删除的算子源文件时,parse_compile_changed_files.py 和 parse_changed_files.py 都因路径不存在而跳过该记录。若算子仍在 ops_config.txt 中注册,删除其一个源文件后,该算子及反向依赖可能未被选入增量编译或单测。
parse_compile_changed_files.py
parse_changed_files.py
ops_config.txt
tmp/ops_config.txt
OP_CATEGORY;reliability;OP_NAME;demo
reliability/demo/op_host/
kept.cpp
deleted.cpp
BASE_PATH
BUILD_PATH
scripts/util/parse_changed_files.py
scripts/util/parse_compile_changed_files.py
实际:删除文件时两者分别输出空结果和 :;存在文件时分别输出 op_host_ut:demo:demo 和 demo:demo。
:
op_host_ut:demo:demo
demo:demo
预期:对于仍注册的算子,删除文件也应触发同一算子的增量选择;对于已不再注册的算子,应继续忽略其删除记录。
Linux x86_64、Python 3.12;在临时目录运行仓库原始脚本复现。未执行 NPU 设备端构建。
修复 PR:https://gitcode.com/cann/ops-ras/merge_requests/186
问题描述
CI 增量构建或单测的变更列表包含已删除的算子源文件时,
parse_compile_changed_files.py和parse_changed_files.py都因路径不存在而跳过该记录。若算子仍在ops_config.txt中注册,删除其一个源文件后,该算子及反向依赖可能未被选入增量编译或单测。复现方式
tmp/ops_config.txt中写入OP_CATEGORY;reliability;OP_NAME;demo。reliability/demo/op_host/下保留kept.cpp,并将不存在的deleted.cpp路径写入变更文件列表。BASE_PATH和BUILD_PATH,分别运行scripts/util/parse_changed_files.py与scripts/util/parse_compile_changed_files.py,将结果与变更列表中使用kept.cpp的情况对比。实际:删除文件时两者分别输出空结果和
:;存在文件时分别输出op_host_ut:demo:demo和demo:demo。预期:对于仍注册的算子,删除文件也应触发同一算子的增量选择;对于已不再注册的算子,应继续忽略其删除记录。
环境与验证范围
Linux x86_64、Python 3.12;在临时目录运行仓库原始脚本复现。未执行 NPU 设备端构建。
修复 PR:https://gitcode.com/cann/ops-ras/merge_requests/186