已合并
refactor: PackageManager 消除循环依赖与反向分层依赖(#787) #3970
DevLeev创建于 7月30日
refactor: PackageManager 消除循环依赖与反向分层依赖(#787) #3970
已合并
DevLeev创建于 7月30日
DevLeev成员
7月30日

Pull Request

描述

重构 TSD PackageManager 及包管理内部组件,消除循环依赖和反向分层依赖:

  • 新增 PackageContext,集中管理响应码、设备状态、重试标志和 host/device check code 等共享状态。
  • 移除 PackageLoaderPackageSenderPackageCheckCodeServicePackageManager 的回指,改为显式依赖协作。
  • 收敛 PackageManager 中仅用于内部转发的接口,保留现有对外入口。
  • ProfilingModeRunningModeChipType_tResponseCode 下沉到 basic_define.h,消除 basic_componenttsdclient 的反向 include。
  • 同步调整 TSD 单元测试和相关 mock,不改变现有对外接口签名。

变更类型

请选择本次引入的变更类型:

关联的Issue

#787

如何测试

  1. 执行 TSD 相关单元测试,提交记录显示 824 个 UT 全部通过。
  2. 编译验证 PackageManagerPackageLoaderPackageSenderPackageCheckCodeServicetsdclient 的声明与实现一致。
  3. 回归包配置加载、host/device check code 比较、包发送、插件版本比较及关闭后状态重置场景。

核对清单

其他信息

本次重构保持对外接口签名不变,主要调整 TSD 包管理模块内部依赖关系和状态归属。

likedislike
Pull Request已成功合入, 合并人@CANN-robot
(感谢 DevLeev 的贡献)
DDevLeev成员
7月30日 添加了label:enhancement
DDevLeev成员
7月30日 创建了 pull request,commit ff67cb11
atomgit-bot
atomgit-bot
7月30日 评论:

变更摘要

本次 PR 对 package_manager 模块进行了重构,核心目标是解除各组件对 PackageManager 单体类的强耦合。通过引入 PackageContext 统一管理共享状态、将各子组件(PackageLoaderPackageSenderPackageCheckCodeServicePluginVersionManager)的依赖从 PackageManager 改为各自所需的细粒度依赖,同时把通用枚举类型从 client_manager.h 迁移到 basic_define.h,提升模块的内聚性与可维护性。

主要改动

  • 引入 PackageContext 类(新增 package_context.h:将原本散落在 PackageManager 各处的状态字段(pkgRspCodedeviceIdlegetCheckCodeRetrySupportloadPackageErrorMsgaicpuPackageExistInDevicepeerCheckCode[]hostCheckCode[])集中到一个独立的数据类中,由各子组件通过引用持有和共享。

  • 解耦 PackageLoaderPackageSenderPackageCheckCodeServicePluginVersionManagerPackageManager:这四个组件的构造函数不再接收 PackageManager&,改为接收各自所需的 PackageContext&、其他服务类引用等细粒度依赖;原来通过 mgr_.xxx() 的间接调用改为直接调用持有的服务实例。

  • 精简 PackageManager:移除了大量转发方法(CheckPackageExistsSendAICPUPackageLoadSinglePackageToDevice 等约 30+ 个)和公开的引用别名成员(aicpuPackageExistInDevice_packagePeerCheckCode_ 等),仅保留核心的 Open/Close 流程入口和少量状态查询方法。

  • 封装性增强PackageEnvInfo 的公有数组成员改为私有,新增 getter/setter(GetPackageNameRefGetPackagePathRefGetPackagePatternRefGetHostSoPath 等);PackageHashStore 的 map 成员改为私有并提供访问器;PluginVersionManager 的状态字段增加公有 getter/setter。

  • 通用枚举迁移至 basic_define.hProfilingModeRunningModeChipType_tResponseCodeclient_manager.h 移至公共头文件,client_manager.h 中不再重复定义。

likedislike
atomgit-bot
atomgit-bot
7月30日 评论:

代码审查

✅ 未发现问题

likedislike
CANN-robotCANN-robot成员
7月30日 添加了label:cann-cla/yes
CANN-robotCANN-robot成员
7月30日 添加了label:stat/needs-squash
CANN-robot
CANN-robot成员
7月30日 评论:

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


PR Approval Progress

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

Module Approval Details

module lgtm status approve status
src/tsd ZhaiPeiChao, 卢煜坤 (2/2) ZhaiPeiChao (1/1)
tests/ut/tsd 卢煜坤, ZhaiPeiChao (2/2) ZhaiPeiChao (1/1)

💡 Tip:

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

CLA Signature Pass

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

likedislike
CANN-robotCANN-robot成员
7月30日 将wangtao43,zhangpengpeng8,yanmingxiang,ZhaiPeiChao,Reyn52166,ykl999,houyanbao,tingwood设为评审人
此处折叠了8条事件消息 查看更多
CANN-robotCANN-robot成员
7月30日 添加了label:cann-cla/yes
CANN-robot
CANN-robot成员
7月30日 评论:

Notification

This pull request has been changed(code update) or closed, so removes the following label(s): stat/needs-squash.

likedislike
DevLeev成员
7月30日 评论:

compile

likedislike
DDevLeev成员
7月30日 update merge request[project id: 8810053, iid: 3970, commit_id: 2d5d5c69f50693c28259089cf784090924c71e0b] virtual merging success
CANN-robotCANN-robot成员
7月30日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
7月30日 评论:

流水线任务触发成功
任务链接 [8f56e5c0ff474ad1b2314cbc697331b4][流水线指导]

任务名称状态日志下载链接
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
pre_comment ✅ SUCCESS >>>>>
Compile_Ascend_X86_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM_ubuntu24 ✅ SUCCESS >>>>> >>>>>
UT_Test_acl ✅ SUCCESS >>>>>
UT_Test_rts_v201 ✅ SUCCESS >>>>>
UT_Test_rts_c ✅ SUCCESS >>>>>
UT_Test_rts_david ✅ SUCCESS >>>>>
UT_Test_rts_910b ✅ SUCCESS >>>>>
UT_Test_rts_common ✅ SUCCESS >>>>>
UT_Test_platform ✅ SUCCESS >>>>>
UT_Test_qs ✅ SUCCESS >>>>>
UT_Test_aicpusd ✅ SUCCESS >>>>>
UT_Test_tsd ✅ SUCCESS >>>>>
UT_Test_error_manager ✅ SUCCESS >>>>>
UT_Test_slog ✅ SUCCESS >>>>>
UT_Test_atrace ✅ SUCCESS >>>>>
UT_Test_msprof_part1 ✅ SUCCESS
UT_Test_msprof_part2 ✅ SUCCESS
UT_Test_adump ✅ SUCCESS >>>>>
UT_Test_mmpa ✅ SUCCESS >>>>>
UT_Test_camodel_check ✅ SUCCESS
API_Check ✅ SUCCESS >>>>>
PreSmoke_A900_npupool ✅ SUCCESS >>>>>
UT_Test_rts_report ✅ SUCCESS >>>>>
UT_Test_msprof_report ✅ SUCCESS >>>>>

[2026-07-30 22:46:44]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
7月30日 评论:

流水线任务触发成功
任务链接 [c905bd57c3ae4a8d84e6a5e290632a47][流水线指导]

任务名称状态日志下载链接
codecheck ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
codecheck_Check_Pr ✅ SUCCESS
codecheck_style ✅ SUCCESS >>>>>
codecheck_precommit ✅ SUCCESS >>>>>
StaticCheck_codespell ✅ SUCCESS
StaticCheck_link_validity ✅ SUCCESS
StaticCheck_resource_existence ✅ SUCCESS
StaticCheck_tag_closed ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS

[2026-07-30 22:34:36]    CI执行结束

likedislike
CANN-robotCANN-robot成员
7月30日 添加了label:api-check-pass
CANN-robotCANN-robot成员
7月30日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
7月30日 添加了label:ci-pipeline-passed
ZhaiPeiChao
ZhaiPeiChao成员
8月4日 评论:

/lgtm
/approve

likedislike
CANN-robotCANN-robot成员
8月4日 添加了label:approved
ykl999
ykl999成员
8月4日 评论:

/approve
/lgtm

likedislike
CANN-robotCANN-robot成员
8月4日 添加了label:lgtm
CANN-robotCANN-robot成员
8月4日 删除了label:ci-pipeline-passed
CANN-robot
CANN-robot成员
8月4日 评论:

The following label is not ready.

ci-pipeline-passed: The ci-pipeline-passed label is expired. Please compile again.

likedislike
DevLeev成员
8月4日 评论:

compile

likedislike
DDevLeev成员
8月4日 update merge request[project id: 8810053, iid: 3970, commit_id: 4792d9315d2401ed41f55034ca8384aaa6faec69] virtual merging success
CANN-robotCANN-robot成员
8月4日 删除了label:api-check-pass
CANN-robotCANN-robot成员
8月4日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
8月4日 评论:

流水线任务触发成功
任务链接 [e7a33a802cff4f76904c7db7ce649eb1][流水线指导]

任务名称状态日志下载链接
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
pre_comment ✅ SUCCESS >>>>>
Compile_Ascend_X86_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM_ubuntu24 ✅ SUCCESS >>>>> >>>>>
UT_Test_acl ✅ SUCCESS >>>>>
UT_Test_rts_v201 ✅ SUCCESS >>>>>
UT_Test_rts_c ✅ SUCCESS >>>>>
UT_Test_rts_david ✅ SUCCESS >>>>>
UT_Test_rts_910b ✅ SUCCESS >>>>>
UT_Test_rts_common ✅ SUCCESS >>>>>
UT_Test_platform ✅ SUCCESS >>>>>
UT_Test_qs ✅ SUCCESS >>>>>
UT_Test_aicpusd ✅ SUCCESS >>>>>
UT_Test_tsd ✅ SUCCESS >>>>>
UT_Test_error_manager ✅ SUCCESS >>>>>
UT_Test_slog ✅ SUCCESS >>>>>
UT_Test_atrace ✅ SUCCESS >>>>>
UT_Test_msprof_part1 ✅ SUCCESS
UT_Test_msprof_part2 ✅ SUCCESS
UT_Test_adump ✅ SUCCESS >>>>>
UT_Test_mmpa ✅ SUCCESS >>>>>
UT_Test_camodel_check ✅ SUCCESS
API_Check ✅ SUCCESS >>>>>
PreSmoke_A900_npupool ✅ SUCCESS >>>>>
UT_Test_rts_report ✅ SUCCESS >>>>>
UT_Test_msprof_report ✅ SUCCESS >>>>>

[2026-08-04 09:58:57]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
8月4日 评论:

流水线任务触发成功
任务链接 [124a5e7fcb47436a9d73a64e7028ad4e][流水线指导]

任务名称状态日志下载链接
codecheck ❌ FAILED codecheck sync failed
SCA ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
codecheck_Check_Pr ✅ SUCCESS
codecheck_style ✅ SUCCESS >>>>>
codecheck_precommit ✅ SUCCESS >>>>>
StaticCheck_codespell ✅ SUCCESS
StaticCheck_link_validity ✅ SUCCESS
StaticCheck_resource_existence ✅ SUCCESS
StaticCheck_tag_closed ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS
likedislike
CANN-robotCANN-robot成员
8月4日 添加了label:api-check-pass
CANN-robotCANN-robot成员
8月4日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
8月4日 添加了label:ci-pipeline-failed
DevLeev成员
8月4日 评论:

compile

likedislike
CANN-robotCANN-robot成员
8月4日 删除了label:ci-pipeline-failedapi-check-pass
CANN-robotCANN-robot成员
8月4日 添加了label:ci-pipeline-running
CANN-robot
CANN-robot成员
8月4日 评论:

流水线任务触发成功
任务链接 [c7e12f32884248aabb1fbf265832b598][流水线指导]

任务名称状态日志下载链接
Compile_Ascend_X86 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM ✅ SUCCESS >>>>> >>>>>
pre_comment ✅ SUCCESS >>>>>
Compile_Ascend_X86_ubuntu24 ✅ SUCCESS >>>>> >>>>>
Compile_Ascend_ARM_ubuntu24 ✅ SUCCESS >>>>> >>>>>
UT_Test_acl ✅ SUCCESS >>>>>
UT_Test_rts_v201 ✅ SUCCESS >>>>>
UT_Test_rts_c ✅ SUCCESS >>>>>
UT_Test_rts_david ✅ SUCCESS >>>>>
UT_Test_rts_910b ✅ SUCCESS >>>>>
UT_Test_rts_common ✅ SUCCESS >>>>>
UT_Test_platform ✅ SUCCESS >>>>>
UT_Test_qs ✅ SUCCESS >>>>>
UT_Test_aicpusd ✅ SUCCESS >>>>>
UT_Test_tsd ✅ SUCCESS >>>>>
UT_Test_error_manager ✅ SUCCESS >>>>>
UT_Test_slog ✅ SUCCESS >>>>>
UT_Test_atrace ✅ SUCCESS >>>>>
UT_Test_msprof_part1 ✅ SUCCESS
UT_Test_msprof_part2 ✅ SUCCESS
UT_Test_adump ✅ SUCCESS >>>>>
UT_Test_mmpa ✅ SUCCESS >>>>>
UT_Test_camodel_check ✅ SUCCESS
API_Check ✅ SUCCESS >>>>>
PreSmoke_A900_npupool ✅ SUCCESS >>>>>
UT_Test_rts_report ✅ SUCCESS >>>>>
UT_Test_msprof_report ✅ SUCCESS >>>>>

[2026-08-04 10:18:00]    CI执行结束

likedislike
CANN-robot
CANN-robot成员
8月4日 评论:

流水线任务触发成功
任务链接 [d8655593982b402183cf083d5a993faf][流水线指导]

任务名称状态日志下载链接
codecheck ✅ SUCCESS >>>>>
SCA ✅ SUCCESS >>>>>
antipoison ✅ SUCCESS >>>>>
codecheck_Check_Pr ✅ SUCCESS
codecheck_style ✅ SUCCESS >>>>>
codecheck_precommit ✅ SUCCESS >>>>>
StaticCheck_codespell ✅ SUCCESS
StaticCheck_link_validity ✅ SUCCESS
StaticCheck_resource_existence ✅ SUCCESS
StaticCheck_tag_closed ✅ SUCCESS
StaticCheck_markdownlint ✅ SUCCESS

[2026-08-04 10:16:34]    CI执行结束

likedislike
CANN-robotCANN-robot成员
8月4日 添加了label:api-check-pass
CANN-robotCANN-robot成员
8月4日 删除了label:ci-pipeline-running
CANN-robotCANN-robot成员
8月4日 添加了label:ci-pipeline-passed
CANN-robotCANN-robot成员
8月4日 合入了pull request