| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: 2404_88560538<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !155 merge master into master 基于 devcontainer 的 MindStudio 统一开发环境方案 Created-by: 2404_88560538 Commit-by: Zhang-Yu001;2404_88560538 Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** mspti 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译依赖自动补齐、gitleaks 多镜像源兜底安装、pre-commit 安装、clangd 就绪、skip-worktree(settings.json + version.info)、compile_commands 检查 - .vscode/settings.json — watcher/search 排除构建、依赖和测试目录;禁用 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 调试配置,含 PYTHONPATH 和 LD_LIBRARY_PATH 环境变量 - .clangd — clangd 编译数据库路径声明(CompileFlags.CompilationDatabase: build/) 修改 6 个文件: - .gitignore — 扩展忽略规则:output/、artifacts/、dist/、*.egg-info/、.cache/、.pytest_cache/、.ruff_cache/、.mypy_cache/、.devcontainer/.host-gitconfig;改为只忽略 .vscode/settings.json - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 增加 CMAKE_EXPORT_COMPILE_COMMANDS ON(clangd 支持) - build.py — 增加 only_down_deps 参数支持,用于 IDE Debug 构建时仅下载依赖而不编译 - scripts/download_thirdparty.sh — googletest 从 1.12.1 降级到 1.10.0(C++14 兼容),下载后自动移除 -Werror 标志 - scripts/execute_test_case.sh — 测试前备份 csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件;自动检测 Python LIBDIR 并设置 LD_LIBRARY_PATH ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - [x] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [x] **资料修改** docs/zh/development_guide/development_guide.md — 第 2 章新增 2.1 节 devcontainer 一键开发环境使用方法,原手动配置改为 2.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!155 | 5 天前 | |
基于 devcontainer 的 MindStudio 统一开发环境方案 Co-authored-by: 2404_88560538<1923299134@qq.com> # message auto-generated for no-merge-commit merge: !155 merge master into master 基于 devcontainer 的 MindStudio 统一开发环境方案 Created-by: 2404_88560538 Commit-by: Zhang-Yu001;2404_88560538 Merged-by: ascend-robot Description: # PR 合入模板 **注:经过自检不涉及的可标注“不涉及”或直接打勾,特殊情况请文字备注。不符合规范的 PR 不允许合入,请(后备)commit 注意。** ---- ## 1. 修改描述 - **修改原因:** mspti 缺少标准化 devcontainer 开发环境,开发者本地环境不一致,构建依赖需手动安装,IDE 代码跳转/调试配置繁琐。 - **修改内容:** 新增 6 个文件: - .devcontainer/devcontainer.json — 容器底座配置,固化 MindStudio 构建镜像、挂载、用户映射、环境变量、VS Code 推荐扩展和生命周期钩子 - .devcontainer/post-create.sh — 幂等初始化脚本,9 个步骤:用户 bin 目录、Python 3 环境配置(自动检测 pyenv Python 路径并优先)、系统/pip 编译依赖自动补齐、gitleaks 多镜像源兜底安装、pre-commit 安装、clangd 就绪、skip-worktree(settings.json + version.info)、compile_commands 检查 - .vscode/settings.json — watcher/search 排除构建、依赖和测试目录;禁用 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 调试配置,含 PYTHONPATH 和 LD_LIBRARY_PATH 环境变量 - .clangd — clangd 编译数据库路径声明(CompileFlags.CompilationDatabase: build/) 修改 6 个文件: - .gitignore — 扩展忽略规则:output/、artifacts/、dist/、*.egg-info/、.cache/、.pytest_cache/、.ruff_cache/、.mypy_cache/、.devcontainer/.host-gitconfig;改为只忽略 .vscode/settings.json - .pre-commit-config.yaml — gitleaks entry 从本地 ./gitleaks 改为系统 gitleaks;bandit 增加 additional_dependencies: [".[toml]"] 解决 toml 解析器缺失 - CMakeLists.txt — 增加 CMAKE_EXPORT_COMPILE_COMMANDS ON(clangd 支持) - build.py — 增加 only_down_deps 参数支持,用于 IDE Debug 构建时仅下载依赖而不编译 - scripts/download_thirdparty.sh — googletest 从 1.12.1 降级到 1.10.0(C++14 兼容),下载后自动移除 -Werror 标志 - scripts/execute_test_case.sh — 测试前备份 csrc/ 目录,trap EXIT 自动恢复,避免 LCOV_EXCL_LINE 注释和换行符转换污染源文件;自动检测 Python LIBDIR 并设置 LD_LIBRARY_PATH ---- ## 2. 功能验证 - [x] **功能自验**    - [x] **本地自验用例截图**  - [x] **冒烟是否通过** (填入群链接的自验证报告中,如未通过,请说明原因:____________________ ,功能代码请主动申报添加冒烟) ---- ## 3. 分支合并要求 - [ ] **代码合并**(请确保将 master 分支的最新代码同步合并至 poc 分支及 pre-research 分支,同时保证 poc 分支的代码也已正确合并到 pre-research 分支。) ---- ## 4. 代码检视 - **要求:** - 合入代码超过 200 行,需三人以上会议检视。 - 检视密度≥1个/100行。 - 检视缺陷密度未达要求需提供说明。 - 大于 1000 行代码原则上不允许合入,需进行备案。 - [ ] **是否经过代码检视** - [ ] **是否具备 UT 测试用例看护** (如不符合,请说明原因:____________________) - **检视意见数:____ 条** (请填写本次检视的意见总数,用于commit合入前审视) ---- ## 5. 安全自检 ### Python、C++ - [ ] **对外接口新增/删除/变更后,资料要同步新增/删除/变更,新增接口入参校验参考外部输入表格** - [ ] **不允许私有的文件操作,需要使用公共模块的安全函数** - [ ] **任务结束后需要删除临时文件,同时需要考虑任务失败后,临时文件没有残留** - [ ] **数组访问需要校验越界场景,对除法需要做除零校验** - [ ] **需要对递归方法做递归深度校验,正则表达式必须做 ReDoS 校验** - [ ] **需要充分进行接口输入和返回值异常情况的校验** - [ ] **日志打印不要出现拼写或语法错误,不要暴露代码细节和敏感信息** ### C++ - [ ] **指针使用前需要判空** - [ ] **数值计算校验溢出和反转** - [ ] **不可存在内存泄漏(异常场景需要释放内存)** - [ ] **类型转换不能出现数据截断** - [ ] **拷贝字符串时,目的缓冲区至少比源缓冲区大 1** - [ ] **拷贝内存时,目的缓冲区不小于源缓冲区** - [ ] **内存释放后指针赋值为 nullptr** ---- ## 6. 变更知会 - [x] **资料修改** docs/zh/development_guide/development_guide.md — 第 2 章新增 2.1 节 devcontainer 一键开发环境使用方法,原手动配置改为 2.2 节 - [ ] **变更通知(消息知会 + 邮件知会)** ---- See merge request: Ascend/mspti!155 | 5 天前 |
| 文件 | 最后提交记录 | 最后更新时间 |
|---|---|---|
| 5 天前 | ||
| 5 天前 |