已合并
feat: add asc-comm development run package #61
Hyunbin创建于 7月31日
feat: add asc-comm development run package #61
已合并
Hyunbin创建于 7月31日
Hyunbin
Hyunbin成员
7月31日

Was This PR authored or co-authored using generative AI tooling?

[x] No
[ ] Yes
__1. AI Agent :
__2. AI Model :
__3. Prompt :

What this PR does / why we need it:

Which issue this PR fixes

(optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #

Special notes for your reviewer:

Change Type / 改动类型

Testing / 测试信息

Checklist / 检查清单

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 Hyunbin 的贡献)
HyunbinHyunbin成员
7月31日 创建了 pull request,commit 23aa0423
atomgit-bot
atomgit-bot
7月31日 评论:

变更摘要

此 PR 新增了 asc-comm 开发运行包(development run package)的构建与安装体系。通过新增的 build_package.sh 构建脚本,将项目中的公共头文件(include/aicore/hcomm)和实现细节头文件(src/aicore/hcomm/detail)打包为自解压的 .run 归档文件;同时提供了完整的安装器 install.sh,支持在 CANN 环境中安装、卸载、校验补丁,并具备事务性回滚、基线备份、版本兼容检查及本地修改保护机制。build.sh 中新增 --pkg/--package 参数以触发打包流程。

主要改动

  • 新增 build.sh 中的 --pkg/--package 参数: 在 build.sh 中新增 PACKAGE 变量及对应的命令行解析分支,当指定 --pkg 时跳过 clean_build 并调用 scripts/package/build_package.sh 构建运行包,同时抑制非测试模式下的提示日志。
  • 新增 scripts/package/build_package.sh 构建脚本: 实现打包核心逻辑:解析 CANN 路径、输出目录、版本号等参数,将公共头文件映射至 asc/include/adv_api/hcomm、细节头文件映射至 asc/impl/adv_api/detail/hcomm,生成 SHA256 清单(manifest.sha256)和版本元数据(version.info),通过 makeself 生成自解压 .run 文件。
  • 新增 scripts/package/install.sh 安装器: 嵌入运行包的安装脚本,支持 --install/--uninstall/--check 操作;包含 CANN 根路径自动探测(resolve_cann_root)、架构与 asc-devkit 版本校验(validate_package)、事务性快照与回滚(snapshot_transaction/rollback_transaction)、基线文件备份与恢复(record_new_baselines/restore_baseline),以及已修改文件的强制覆盖保护。
  • 新增 scripts/package/help.info 帮助信息: 为自解压包提供 --install、--uninstall、--check、--install-path、--force 等选项的使用说明,注明仅管理包清单内的路径而非全目录镜像。
  • 新增 tests/package/test_run_package.sh 集成测试: 验证构建产物的完整性(清单文件计数、头文件内容比对),并在模拟 CANN 环境中测试安装/卸载/重装循环、本地修改保护(修改后拒绝卸载/重装除非 --force)、版本不兼容时拒绝修改 CANN 树的正确性。
likedislike
不准确?
atomgit-bot
atomgit-bot
7月31日 评论:

代码审查

我已经逐文件审查了全部 12 个变更文件。以下是我的审查结论:


审查总结

逐文件审查结果:

文件 审查结论
.gitignore 无问题 — 仅添加 build_out/ 到忽略列表
README.md 无问题 — 新增开发验证 run 包使用说明,链接正确
README_en.md 无问题 — 英文版同步更新,内容一致
build.sh 无问题 — 新增 --pkg/--package 参数,条件逻辑(clean_build 跳过、日志屏蔽、与 -t 组合)均正确
docs/README.md 无问题 — 表格描述更新为"开发验证run包"
docs/README_en.md 无问题 — 英文版同步更新
docs/en/guide/build_and_test.md 无问题 — 新增完整的开发 run 包构建、安装、卸载文档,无危险指令
docs/zh/guide/build_and_test.md 无问题 — 中文版同步,内容准确完整
scripts/package/build_package.sh 无问题 — 新制包脚本:set -euo pipefail,路径校验,架构规范化,git dirty 检测,makeself 调用均正确
scripts/package/help.info 无问题 — makeself 帮助文本,内容准确
scripts/package/install.sh 无问题 — 新安装脚本:事务性安全(snapshot/rollback),路径白名单校验(is_allowed_path 中 case 的 * 在 bash 模式匹配中可跨越 /,正确处理子目录),校验和验证,版本/架构检查,属主检查,--force 支持
tests/package/test_run_package.sh 无问题 — 覆盖提取、安装、重复安装、文件保护、卸载恢复、兼容性失败场景

发现数量:P0: 0, P1: 0, P2: 0, P3: 0

整体风险判断:低风险。此 PR 新增了 Hcomm 开发验证 run 包的完整工具链(制包、安装、卸载、测试),代码质量高,Shell 脚本遵循最佳实践(set -euo pipefail、变量引号保护、事务回滚、路径白名单校验),文档详尽准确。可以合入。

类型 数量
🔴 阻塞 0
🟡 建议 1

💬 仅评论

likedislike
不准确?
CANN-robotCANN-robot成员
7月31日 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
7月31日 评论:

Thanks for your pull-request.
The full list of commands accepted by me can be found at here.
You can get sig-info at here.
For more, you also can visit HICANN.


PR Approval Progress

✅ Congratulations! All modules have met the lgtm and approve requirements.

Module Approval Details

module lgtm status approve status
docs ✅ YeZZzzz1, zhanghao_0689 (2/2) ✅ zhanghao_0689 (1/1)
repo-cann/asc-comm ✅ zhanghao_0689, jiangxinyu3, YeZZzzz1 (3/2) ✅ zhanghao_0689, jiangxinyu3 (2/1)
tests ✅ jiangxinyu3, YeZZzzz1, zhanghao_0689 (3/2) ✅ jiangxinyu3 (1/1)

💡 Tip:

  • Committer can comment /approve or /lgtm
  • Commenting /approve implies both code review (lgtm) and intent to merge (approve)

CLA Signature Pass

hbhdhd, thanks for your pull request. All authors of the commits have signed the CLA. 👍

likedislike
此处折叠了130条消息 查看更多
YeZZzzz1成员
8月19日 评论:

/lgtm

likedislike
izanaami
izanaami成员
8月19日 评论:

/approve

likedislike
zhanghao_0689
zhanghao_0689成员
8月19日 评论:

/approve

/lgtm

likedislike
CANN-robotCANN-robot成员
8月19日 添加了label:lgtmapproved
CANN-robotCANN-robot成员
8月19日 合入了pull request