已关闭
[Feature]: 基于 devcontainer 的 MindStudio 统一开发环境方案 #32
Zhang-Yu001创建于 8月3日关闭于 8月12日
Mrtutu
8月3日 评论:
8月3日 评论:
👋 您好,欢迎向 MindStudio-Monitor 提交 Issue!
我们已收到您的反馈,感谢你对开源社区的支持。🎉
📅处理时效: 维护团队将在24小时内 查看并回复您的问题(工作日)。
🔍自助查询: 在等待期间,建议您先查阅以下资料,可能已有解决方案:
📖 MindStudio MindStudio-Monitor官方文档
📝 贡献者指南
请确保 Issue 描述清晰,包含复现步骤和日志,这将帮助我们更快定位问题。谢谢!


8月3日 添加了label:triaged
8月3日 添加了label:feature
8月6日 关联了pull request:基于 devcontainer 的 MindStudio 统一开发环境方案
8月10日 关联了pull request:docs:修改链接
8月10日 删除了关联的pull request:docs:修改链接
8月12日 关闭了 issue
8月12日 添加了label:resolved
8月12日 将 2404_88560538 设为负责人
8月12日 issue状态由 TODO 改变为 DONE
提交提案之前,请先检索仓库内是否已有相同的提案,如已有请在同一提案中进行讨论。
💻 需求背景、当前现状、期望实现的功能内容、具体的设计方案、以及测试方案
需求背景
MindStudio 工具链覆盖算子和训推两大场景共 20+ 工具(C++/Python/混合),目前缺少统一的开发环境基础设施。开发者 clone 代码后需要手工搭建编译工具链、Python 版本、C++ 调试环境、IDE 插件和 pre-commit 检查,新人环境配置耗时 2-4 小时。
msmonitor 作为 MindStudio 算子场景的监控工具(Python + C++ 混合架构,plugin 子模块使用 CMake 构建 C++ pybind11 扩展,含 dynolog 三方依赖),同样面临以上问题。本变更依据 devcontainer 统一方案,为 msmonitor 建立一键式开发环境。
参考连接:
基于devcontainer的高效开发环境方案.md当前现状
build.py→plugin/build.sh+scripts/build.sh)、UT 测试(scripts/run_ut.sh)各有不同入口,无统一 IDE TaskCMAKE_EXPORT_COMPILE_COMMANDS,clangd 无法加载编译数据库.so,需手动配置PYTHONPATH和LD_LIBRARY_PATH才能调试.pre-commit-config.yaml(含 ruff、pylint、bandit、codespell、typos、clang-format、clang-tidy、gitleaks),但 hook 依赖开发者自觉安装_fetch_dynolog()通过 wget+tar 解压到third_party/dynolog/产生 10000+ 文件,污染git status期望实现的功能
开发者在 VS Code 中打开 msmonitor 仓库后,可一键进入容器、一键编译、一键运行 UT、代码跳转和调试开箱即用;
git commit自动触发 pre-commit 检查;构建/测试后git status保持清洁。具体目标:
devcontainer.json声明 MindStudio 构建镜像、挂载、用户映射、环境变量、推荐 VS Code 扩展post-create.sh幂等准备:Python 3 环境、pyenv 优先、系统/pip 依赖、gitleaks 架构自适应+多镜像源+pip 兜底、pre-commit、clangd、Git 身份PYTHONPATH和LD_LIBRARY_PATHCompileFlags.CompilationDatabase: plugin/build/)+ Python Pylancegit commit自动触发 pre-commit 全量检查.gitignore扩展 +skip-worktree .vscode/settings.json+.gitmodules ignore=all具体的设计方案
目录结构
核心变更
新增 6 个文件:
.devcontainer/devcontainer.json— 容器底座,clangd.pathToCompdb: plugin/build(CMake 在 plugin 子目录).devcontainer/post-create.sh— 幂等初始化,8 个步骤.vscode/tasks.json— 4 个任务,Debug 构建cmake -S plugin -B plugin/build -DCMAKE_BUILD_TYPE=Debug.vscode/launch.json— Python debugpy + pytest,自动注入 PYTHONPATH 和 LD_LIBRARY_PATH 指向plugin/build.vscode/settings.json— watcher/search 排除构建和 third_party 目录,clangd 参数由 devcontainer.json 统一管理.clangd—CompileFlags.CompilationDatabase: plugin/build/修改 5 个文件:
.gitignore—.vscode/改为.vscode/settings.json;新增artifacts/、*.rpm、*.deb、.ruff_cache/、.devcontainer/.host-gitconfig、third_party/dynolog/.pre-commit-config.yaml— gitleaks entry 改为系统gitleaks;bandit 增加additional_dependencies: ["bandit[toml]"].gitmodules— dynolog submodule 增加ignore = allplugin/CMakeLists.txt— 新增CMAKE_EXPORT_COMPILE_COMMANDS ONbuild.py— 新增only_down_deps参数,test 和产品构建两分支均生效测试方案
环境就绪性
git commitgit status --short构建验证
Build: Release ModeTest: Run Unit Tests调试与跳转验证
Python: Debug Active File替代方案
补充说明
欢迎加入社区,感谢您对社区的贡献 🎉!