背景
当前 codex/fix-clangd-cdb-build-script 分支基于 mcpp-community/mcpp#372 的旧方案,实现了:
mcpp ide configure --format ndjson
但上游已经在 mcpp-community/mcpp#379 中确认拆分方案:mcpp-community/mcpp#372 转为 Draft,仅保留为设计和代码参考;扩展实际依赖改为独立 A 类能力:
mcpp build --configure-only
A 类实现只负责生成 IDE 所需构建图与 CDB,包括 tests/dev-dependency 上下文、必要的 std/BMI 准备和原子 CDB 写入;不携带 JSON/NDJSON、snapshot、FileLock/current.json 或通用 wire 协议。
参考:
当前状态
已确定的客户端契约
- 扩展只在受信任工作区执行 mcpp build --configure-only。
- 不解析 stdout 人类文本,也不依赖 JSON/NDJSON envelope。
- 成功判据为:
- 命令退出码为 0;
- 工程根目录的 compile_commands.json 存在;
- CDB 可被扩展正常解析。
- 失败或旧版 mcpp 不支持该选项时给出明确诊断,并保留已有可用 CDB。
- “mcpp: 刷新编译数据库”复用该命令,不再新增语义重复的 mcpp.configureIde。
- feat: add mcpp.newProject command to scaffold and open projects #3 的新建工程契约保持“创建并打开”,新窗口再按自身 workspace trust 和缺失 CDB 状态触发 configure-only,不自动执行完整 build。
迁移工作
- 跟踪独立 build --configure-only PR、合入状态和首个可安装版本。
- 上游命令发布后,将分支 rebase 到最新 mcpp-vscode main。
- 删除 NDJSON/snapshot 解析层,改为普通进程退出码 + CDB 后置校验。
- 复用现有“刷新编译数据库”命令和快捷菜单入口,移除重复命令。
- 将 configure-only 纳入项目操作锁,避免与 build/run/test 并发。
- manifest watcher 按事件 URI 标记对应工程,修正 multi-root 下刷新当前错误工程的问题。
- mcpp.path 变化触发对应工程重新配置;mcpp.clangd.path、mcpp.modulesSupport 只重协调 clangd,不重复生成 CDB。
- 完整 build/test 成功后只重读 CDB 和重协调 clangd,避免无意重复 configure-only。
- 使用正式发布的 mcpp 做缺失 CDB、源码编译失败、tests/dev-dependency、旧 CDB 保留和多根工作区集成测试。
- 根据届时主线版本确定扩展版本号,运行 npm test、VSIX 打包与归档校验。
验收标准
- 缺少 CDB 的受信任工程可通过正式发布的 mcpp build --configure-only 获取有效 CDB。
- CDB 包含普通源码以及 tests/dev-dependency 所需条目。
- 旧版 mcpp 或 configure-only 失败时诊断清晰,已有 CDB 不被破坏。
- manifest、mcpp.path 和 multi-root 工程切换只刷新正确工程。
- configure-only 与其他 mcpp 项目操作不会并发。
- 新建工程不会自动执行完整 build,也不会重复执行 configure-only。
- 发布版本的测试、VSIX 校验和真实 CLI 集成测试全部通过。
Reactions are currently unavailable
背景
当前 codex/fix-clangd-cdb-build-script 分支基于 mcpp-community/mcpp#372 的旧方案,实现了:
但上游已经在 mcpp-community/mcpp#379 中确认拆分方案:mcpp-community/mcpp#372 转为 Draft,仅保留为设计和代码参考;扩展实际依赖改为独立 A 类能力:
A 类实现只负责生成 IDE 所需构建图与 CDB,包括 tests/dev-dependency 上下文、必要的 std/BMI 准备和原子 CDB 写入;不携带 JSON/NDJSON、snapshot、FileLock/current.json 或通用 wire 协议。
参考:
当前状态
已确定的客户端契约
迁移工作
验收标准