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
Commit d280170
Browse filesBrowse the repository at this point in the historyBrowse files
2026.9.29.5: a workspace's build programs are reused across selections and run dependencies first, the build database and --configure-only plan by configuration, and the output names what it reports
The validation project's post-release run of 2026.9.29.4 showed five defects
in the commands around the workspace build (design document section 17.1).
- D1: a member program's graph document listed every requester in the plan,
the virtual root included, so the program's re-run key followed the
selection and -p, pack and emit reran the programs a --workspace build ran.
The document lists the requests made inside the program's closure
(graph_package_entry takes the closure's packages).
- The members' programs run dependencies first (depth-first over the plan's
requests; a cycle skips its closing edge); they ran in discovery order.
- D2: `mcpp emit build-database` and `mcpp build --configure-only` plan a
workspace by configuration, each member's tests included
(BuildOverrides::member_targets), so a package the members share is described
once per configuration; members that are programs and their tests are
described as such. A configuration whose plan fails is planned member by
member, so a member's failure affects that member only. Set names carry a
configuration prefix only in a document of several configurations; a set and
a compile command (file and output) are described once (SPEC-005 v1.6).
- A command that plans several configurations publishes the root
compile_commands.json once, as the union of their databases; each
configuration replaced it, a race under concurrent groups.
- D3: the build program status lines name the package.
- D4: a selected member is announced by its directory in a --workspace build.
- D5: `mcpp pack` reports more than eight outputs by the entry each lies in
below their common directory, with a count; --verbose and
--message-format json name every output.
- e2e 839, 840, 841; docs/07, docs/10, docs/30 in both languages; SPEC-005 v1.6;
version 2026.9.29.5.
Copy file name to clipboardExpand all lines: .agents/docs/2026-09-29-workspace-build-graph-design.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -563,6 +563,10 @@ read from the member, or made a value of the plan:
563
563
| the runtime files of a program shipped through `artifacts` (2026.9.29.3) | its link waited for the plan's deploy set, which a workspace plan does not place; its own runtime files were not in the member's directory | the link waits for no plan-level file; a member's runtime set includes the closures its `artifacts` edges reach | e2e 833 G9 |
564
564
| the link line of a program shipped through `artifacts` (2026.9.29.4) | the plan's line, which pools the dependencies' flags and not a member's, so a library its package's build program states was missing | a link group of its own closure that places nothing (`LinkGroup::linkOnly`) | e2e 838 |
565
565
|`${mcpp.bin_dir}` in a member's action (2026.9.29.4) | the plan's `bin/`| the declaring member's product directory | e2e 838 A4 |
566
+
| a member program's graph document (2026.9.29.5) | listed every requester in the plan, the virtual root included, so the program's re-run key followed the selection | the requests made inside the program's closure | e2e 839 B3, B4 |
567
+
| the order of the members' programs (2026.9.29.5) | discovery order | dependencies first (a cycle skips its closing edge) | e2e 839 B2 |
568
+
|`emit build-database`, `--configure-only` (2026.9.29.5) | one plan per member | one plan per configuration, each member's tests included; a failed configuration planned member by member | e2e 840 |
569
+
| the root compile database of several configurations (2026.9.29.5) | the last written configuration's, a race under concurrent groups | the union, published once by the command | e2e 840 B |
566
570
567
571
Each criterion fails on 2026.9.29.1 and passes on 2026.9.29.2. The resource
568
572
case also showed a defect of every build: a quoted `#include` in a script was
0 commit comments