You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
mcpp pack reports its build as planning: the pack's ninja drive has no progress report #753
mcpp pack builds before it packs. That build reports no progress: build_and_pack drives ninja with a default BuildOptions, whose progress is unset (src/pack/pipeline.cppm, the build of each configuration group). mcpp build attaches a progress::Build report (src/build/execute.cppm).
As a result, a pack whose build compiles shows only the planning heartbeat for as long as the compile runs. There is no Compiling line and no status row.
Measurement
Release v2026.10.1.1, job "build + upload (linux / x86_64)" (run 36790174544, job 110147157268). The step runs mcpp build --target x86_64-linux-musl with the bootstrap engine, then <fresh mcpp> pack --target x86_64-linux-musl --mode static. The fresh engine's fingerprint differs, so the pack recompiles mcpp:
The 6 min 38 s are mostly the compile. The release of 2026.9.30.2 shows the same shape: run 36702587348, Planning · 1:00 to 6:00.
Expected
The pack's build is reported as mcpp build reports one: the Compiling lines and the status row, and Finished before Packing. The dispatch pass of a --format that a package provides should be reported the same way.
Fixed in 2026.10.1.2 (#754), following .agents/docs/2026-10-01-pack-drive-and-selection-independent-compile-design.md.
The pack was one symptom of a wider gap: each command assembled its own ninja options, and of eleven construction sites one attached the report and one passed the job count. Measured on 2026.10.1.1, [build] jobs = 3 reached ninja from mcpp build only; mcpp test and mcpp pack ran ninja's default.
The backend takes -j from the plan and reclaims stale bmi_schedule = "on" tokens before the first drive of each build directory, for every command.
A drive is reported whenever the command opened the report; mcpp test's own per-test drives state that they write their own lines.
mcpp pack builds every configuration first, writes Finished before the first Packing line, reports the dispatch pass of a provided --format, and fills the global dependency cache.
Verification:
e2e 871: a cold mcpp pack writes Compiling and Finished before Packing; its JSON output stays one document; under jobs = 1, no two compiles overlap under build, test or pack. It fails on 2026.10.1.1 and passes on 2026.10.1.2 under GCC 16 and clang 22.
The release job of v2026.10.1.2 (run 36818095279, "build + upload (linux / x86_64)"), the measurement in this report: the fresh engine's pack recompiles mcpp and now writes the package lines, Building 251/414 · 1:36 to 411/414 · 5:36, and Finished release [optimized] in 5m49s before Packing mcpp v2026.10.1.2 (static, stripped).
GalTranslPP PR 3 with 2026.10.1.2 (run 36824209051): both mcpp pack -p ... --format release steps state their builds and their dispatch passes, and finish in 83 s together.
The sandbox script .agents/docs/2026-10-01-pack-drive-and-selection-verify.sh: sections 4 (the pack states its build) and 5 (jobs = 1 bounds mcpp test) pass on 2026.10.1.2 in an xlings subos --sandbox with the CN mirror. On 2026.10.1.1 section 5 fails there with overlapping compiles, and section 4 fails on the host with no Compiling line.
Activity
2026.10.1.2: a pack states its build, every drive takes the job count…
speak-agent commentedon Oct 1, 2026
Fixed in 2026.10.1.2 (#754), following
.agents/docs/2026-10-01-pack-drive-and-selection-independent-compile-design.md.The pack was one symptom of a wider gap: each command assembled its own ninja options, and of eleven construction sites one attached the report and one passed the job count. Measured on 2026.10.1.1,
[build] jobs = 3reached ninja frommcpp buildonly;mcpp testandmcpp packran ninja's default.-jfrom the plan and reclaims stalebmi_schedule = "on"tokens before the first drive of each build directory, for every command.mcpp test's own per-test drives state that they write their own lines.mcpp packbuilds every configuration first, writesFinishedbefore the firstPackingline, reports the dispatch pass of a provided--format, and fills the global dependency cache.Verification:
mcpp packwritesCompilingandFinishedbeforePacking; its JSON output stays one document; underjobs = 1, no two compiles overlap underbuild,testorpack. It fails on 2026.10.1.1 and passes on 2026.10.1.2 under GCC 16 and clang 22.Building 251/414 · 1:36to411/414 · 5:36, andFinished release [optimized] in 5m49sbeforePacking mcpp v2026.10.1.2 (static, stripped).mcpp pack -p ... --format releasesteps state their builds and their dispatch passes, and finish in 83 s together..agents/docs/2026-10-01-pack-drive-and-selection-verify.sh: sections 4 (the pack states its build) and 5 (jobs = 1boundsmcpp test) pass on 2026.10.1.2 in anxlings subos --sandboxwith the CN mirror. On 2026.10.1.1 section 5 fails there with overlapping compiles, and section 4 fails on the host with noCompilingline.