Skip to content

ci+tests: mcpp 0.0.97 — 模块包转 workspace 成员,删除 smoke shell 例外通道(R6 落地)#78

Merged
Sunrisepeak merged 4 commits into
mainfrom
feat/mcpp-097-workspace-only-ci
Jul 18, 2026
Merged

ci+tests: mcpp 0.0.97 — 模块包转 workspace 成员,删除 smoke shell 例外通道(R6 落地)#78
Sunrisepeak merged 4 commits into
mainfrom
feat/mcpp-097-workspace-only-ci

Conversation

@Sunrisepeak

Copy link
Copy Markdown
Member

概要(mcpp 0.0.97 / R6 落地)

mcpp 0.0.97 补上了默认命名空间的本地重定向语法([indices] default = { path = ... }),
公开模块包的"reseeding smoke shell 例外通道"存在理由消失。本 PR 把 index 的测试面收敛为
唯一的 workspace 通道:

  • ci:MCPP_VERSION 0.0.96 → 0.0.97;删 mcpp index update 前置步骤(#232 已修,
    本 PR CI 冷环境即实证);删 imgui-module / ffmpeg-module / opencv-module 三个专属 job
    与 tinyhttps smoke 步骤 → job 数 8 → 5。
  • tests:tinyhttps / imgui / ffmpeg / opencv 转普通 workspace 成员
    (tests/examples/{tinyhttps,imgui-module,ffmpeg-module,opencv-module}),测试源码逐行移植自
    smoke 消费工程(断言不变);4 个 smoke shell 删除。选择性成员测试对新成员零配置生效。
  • docs:README 贡献段、docs/repository-and-schema.md(顺带清掉两代前的 detect/smoke-examples
    残留)、add-mcpp-index-package skill、设计文档 .agents/docs/2026-07-18-workspace-only-module-testing.md

过程发现(已提 mcpp issue)

  • mcpp#238:xlings 对 ≥2 个项目级 index repo 静默 exit 1 —— 根级 [indices] 集中化(#224)
    被挡,本 PR 保持每成员恰好一条 [indices] 声明,修复后再集中化。
  • mcpp#239:#233 消歧对 dep build.mcpp 的绝对路径生成源会在 CWD 镜像整棵路径树(构建/测试
    正常,纯路径逃逸);opencv-module 成员构建可复现。
  • mcpp#237:描述符 mcpp 段未知键 build 时静默忽略(xpkg parse/lint 已拦截,低危)。

本地验证(mcpp 0.0.97,与 CI 同版)

  • mcpp test -p tinyhttps ✅ · -p imgui-module ✅(gcc16,X11 链全源码)· -p ffmpeg-module
    (nasm 沙箱自举,无 apt)· -p opencv-module ✅(含替换算子面 Size!= 断言)· -p opencv5 ✅(回归)。
  • V0 spike:default/"" 两种键、假版本号 999.0.0 仅存在于本地索引仍解析(证明未走已发布 index)。

…r-package module smoke jobs

0.0.97 carries the default-namespace index redirect (R6), the synchronous
nasm bootstrap (#232), obj-path disambiguation (#233), spacey-defines
quoting (#234) and purview-include tracking (#235). The three module smoke
jobs (imgui-module/ffmpeg-module/opencv-module) and the tinyhttps smoke
step are deleted — the module packages are ordinary workspace members now
(next commit), so 'workspace' is the single build/run channel.
tinyhttps/imgui/ffmpeg/opencv consume their bare names from THIS checkout
via a member-level '[indices] default = { path = "../../.." }' (mcpp >=
0.0.97). Test sources are line-for-line ports of the smoke consumers
(assertions unchanged); ffmpeg/opencv/imgui members are cfg(linux)-gated
to the CI-validated surface with no-op mains elsewhere. The four reseeding
smoke shells are deleted.

Notes:
- exactly ONE [indices] entry per member: xlings fails silently with >1
  project-scoped index repo (mcpp#238); root-level centralization (#224)
  is deferred until that lands.
- the old smoke's llvm@20.1.7 pin for imgui is dropped: it predates gcc16
  module support; imgui-m upstream CI builds with gcc@16.1.0 (verified
  locally: member passes with the workspace default toolchain).
…ge skill, design doc

Also retires two-generations-stale CI descriptions (detect/smoke-examples/
run_example.sh) from docs/repository-and-schema.md.
fetch 'compat.opencv@4.13.0' fails deterministically (2/2) on the
windows leg under mcpp 0.0.97. Not investigating: the install() CMake
form is replaced wholesale by the source-build compat.opencv in the
unification PR (#79); until then the member covers linux+macos.
@Sunrisepeak
Sunrisepeak merged commit 0d5715e into main Jul 18, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant