已合并
基于 devcontainer 的 MindStudio 统一开发环境方案 #429
Zhang-Yu001创建于 8月3日
基于 devcontainer 的 MindStudio 统一开发环境方案 #429
已合并
Pull Request已成功合入, 合并人@ascend-robot
(感谢 Zhang-Yu001 的贡献)atomgit-bot
8月3日 评论:
8月3日 评论:
变更摘要
本次 PR 为 msserviceprofiler 项目引入基于 DevContainer 的统一开发环境方案,通过标准化容器镜像、IDE 配置和自动化初始化脚本,消除开发者本地环境差异。主要新增了 .devcontainer 配置(含容器定义与幂等初始化脚本)、VS Code 的调试(launch.json)与任务(tasks.json)配置、clangd 编译数据库指向配置,同时对 build.py 增加了依赖下载后提前退出的 only_down_deps 选项,并调整了 .pre-commit-config.yaml 中 bandit 的依赖项和 gitleaks 的入口路径。
主要改动
- 新增 DevContainer 配置:
.devcontainer/devcontainer.json定义了基于mindstudio-build:26.1.0-0701镜像的容器环境,挂载本地工作区、配置网络与权限参数、预装 VS Code 扩展(C++/Python/clangd 等),并指定postCreateCommand触发初始化脚本。 - 新增容器初始化脚本:
.devcontainer/post-create.sh提供幂等的初始化流程,包括用户 bin 目录配置、Python 3 环境发现、构建依赖安装(python3-devel、gitleaks、wheel、pre-commit、bandit[toml]等)、Git 身份同步、pre-commit hook 安装、clangd 安装及本地文件 skip-worktree 设置。 - 新增 VS Code 调试与任务配置:
.vscode/launch.json提供 "Python: Debug Active File" 和 "Python: Pytest Case Debugging" 两种调试模式;.vscode/tasks.json提供 Release/Debug 构建、单元测试、工作区清理四项快捷任务。 - 构建脚本新增依赖下载选项:
build.py在BuildManager中支持only_down_deps=true额外参数,在第三方依赖下载完成后提前退出,避免执行完整构建流程。 - pre-commit 配置调整:
.pre-commit-config.yaml中bandithook 增加additional_dependencies: ["bandit[toml]"]以支持 TOML 配置解析;gitleakshook 的entry从./gitleaks改为gitleaks,依赖容器内系统路径中的二进制文件。 - 新增 clangd 配置:
.clangd文件将CompilationDatabase指向build/目录,配合 VS Code clangd 扩展实现准确的代码跳转与补全。


AtlasAccount
8月3日 评论:
8月3日 评论:
atomgit-bot
8月3日 评论:
8月3日 评论:
8月3日 添加了label:stat/needs-squash
8月3日 添加了label:ascend-cla/yes
此处折叠了108条消息 查看更多
8月5日 添加了label:approved
mei-feiyao
8月5日 评论:
8月5日 评论:
/lgtm


8月5日 添加了label:lgtm
8月5日 合入了pull request
ascend-robot
8月5日 评论:
8月5日 评论:
Pull Request 已合并或已关闭。
If you want to solve this problem, you can click here to do it in the FAQs.


PR 合入模板
1. 修改描述
修改原因: msserviceprofiler 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。
修改内容:
新增 6 个文件:
.devcontainer/devcontainer.json— 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子.devcontainer/post-create.sh— 幂等初始化脚本,自动完成 Python 3 配置、系统/pip 编译依赖补齐、gitleaks 架构自适应+多镜像源+pip 兜底安装、pre-commit 安装、clangd 就绪、Git 身份同步.vscode/settings.json— watcher/search 排除构建和 3rdparty 目录;禁用 cpptools IntelliSense,clangd 参数由 devcontainer.json 统一管理.vscode/tasks.json— 4 个 VS Code Task:Build: Release Mode / Build: Debug Mode / Test: Run Unit Tests / Clean: All Workspace.vscode/launch.json— Python debugpy + pytest 调试配置,含 PYTHONPATH 和 LD_LIBRARY_PATH 环境变量.clangd— clangd 编译数据库路径声明(CompileFlags.CompilationDatabase: build/)修改 5 个文件:
.gitignore—.vscode改为.vscode/settings.json(track launch.json/tasks.json);新增artifacts/、output/、.ruff_cache/、.devcontainer/.host-gitconfig.pre-commit-config.yaml— gitleaks entry 从本地./gitleaks改为系统gitleaks;bandit 增加additional_dependencies: ["bandit[toml]"]CMakeLists.txt— 新增CMAKE_EXPORT_COMPILE_COMMANDS ON为 clangd 生成编译数据库build.py— 新增only_down_deps参数支持,IDE Debug 构建时仅下载依赖docs/zh/developer_guide/development_guide.md— 第 2 章"编译环境配置"新增 2.1 节 devcontainer 一键开发环境使用方法,原手工配置改为 2.2 节2. 功能验证
3. 代码检视
4. 安全自检
典型安全编码问题
5. 变更知会
资料修改: 是
docs/zh/developer_guide/development_guide.md— 第 2 章"编译环境配置"新增 2.1 节 devcontainer一键开发环境使用方法(前置条件、使用步骤、VS Code 内置任务、代码跳转与调试说明),原手工配置改为 2.2 节
变更通知(消息知会 + 邮件知会):
6. 冒烟修改