Commit f176abd
* docs: #690 design record and implementation plan
* fix(workspace): one inheritance pipeline for every member, keyed defines, one key table (#690)
A member reached as a dependency now inherits [workspace.package],
x.workspace = true entries and [workspace.build] at its load site, before
the conditional merge and the defines fold, as the root does. The snapshot
in makePackageRoot no longer inherits and refuses unfolded defines with an
internal error. A member of a git-hosted workspace inherits from its own
repository. [build] defines is a set keyed by macro name, and !NAME removes
an inherited name. The inheritable [build] subset is one exported table,
which accepts ios_deployment_target. The e2e harness links payloads per
version, so a version installed by a test no longer lands in the
developer's registry.
* fix(build): a consumer's include directories stay in the consumer (#690 W6)
The root's [build] include_dirs and include_dirs_after were written into the
file-level $cxxflags/$cflags/$asmflags/$nasmflags of build.ninja, which every
unit in the graph reads. A root header named like a system header shadowed it
inside a dependency, private_include_dirs included, and because no cache-key
axis contained the broadcast, a dependency object in the global cache could be
compiled against another project's root headers (measured: cJSON_Compare
answered 1 in an unrelated project).
- flags.cppm: no include directory is broadcast; every unit keeps its own
package's directories through $local_includes (C, C++, GAS and NASM).
- cache_key.cppm: kCacheEpoch 3 -> 4, orphaning entries written while the
broadcast existed.
- ninja_backend.cppm / execute.cppm: consumer_include_scope_advice names the
consumer directory that holds a header a dependency now fails to find, on
the full path and, through a sidecar beside build.ninja, on the fast path.
- tests: unit tests for the file-level channel, the unit channel's
absolutisation, the advice and the sidecar; e2e 765.
* docs: workspace inheritance in every position, keyed defines, include scope; SPEC-004 1.6 (#690)
* docs: noun-phrase heading for the defines and include scope section
* docs: #690 sandbox verification script
* publish: the effective manifest, a normalised published form, and a reproducible archive (#690 W4, W5)
* test: renumber the published-form e2e scripts to 772 and 773
* fix: every reader of a member manifest reads the effective manifest; 2026.9.25.1 (#690 W4)
prepare_build loads through load_effective_manifest and no longer inherits a
preloaded host-tool manifest a second time. sbom, index list/update, the index
refresh of mcpp update, the fast-path identity and test discovery read the
effective manifest.
* chore: xlings pin 2026.9.16.1 -> 2026.9.20.1
* fix: a member inside an index archive inherits its workspace; publish reads the one key table (#690)
inherit_as_workspace_member is the one function for a sibling path
dependency, a git-hosted member and a member inside an index package's
archive (Form A pointer), searched no higher than the install root.
normalize.cppm writes [workspace.build] back through kWorkspaceBuildKeys
instead of a second copy of the key set. e2e 774.
* docs: publishing a workspace member, the index-archive member, CHANGELOG 2026.9.25.1, SPEC-004 criteria 13-14
* publish: the archive commit ignores commit.gpgSign and the manifest blob ignores .gitattributes
* fix: a host-tool sub-build merges its dependency's conditional sections once (#690 F12); self-review record
* test: host-spelled fixture path in 772, build-directory words excluded from 765 (c), cmd.exe quoting in 775
---------
Co-authored-by: speak-agent <x.d2learn.org@gmail.com>
Co-authored-by: speak-agent <248744407+speak-agent@users.noreply.github.com>
1 parent 2687444 commit f176abd
51 files changed
Lines changed: 3680 additions & 327 deletions
File tree
- .agents/docs
- .github
- actions
- bootstrap-mcpp
- setup-macos-llvm
- workflows
- docs
- specs
- zh
- modules
- libs/src
- manifest/src
- versioning/src
- src
- build
- cli
- pack
- pm
- publish
- toolchain
- xlings
- tests
- e2e
- unit
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
| 51 | + | |
| 52 | + | |
| 53 | + | |
| 54 | + | |
| 55 | + | |
| 56 | + | |
| 57 | + | |
| 58 | + | |
| 59 | + | |
| 60 | + | |
| 61 | + | |
| 62 | + | |
| 63 | + | |
| 64 | + | |
| 65 | + | |
| 66 | + | |
| 67 | + | |
| 68 | + | |
| 69 | + | |
| 70 | + | |
| 71 | + | |
| 72 | + | |
| 73 | + | |
| 74 | + | |
| 75 | + | |
| 76 | + | |
| 77 | + | |
| 78 | + | |
| 79 | + | |
| 80 | + | |
| 81 | + | |
| 82 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
| 10 | + | |
| 11 | + | |
| 12 | + | |
| 13 | + | |
| 14 | + | |
| 15 | + | |
| 16 | + | |
| 17 | + | |
| 18 | + | |
| 19 | + | |
| 20 | + | |
| 21 | + | |
| 22 | + | |
| 23 | + | |
| 24 | + | |
| 25 | + | |
| 26 | + | |
| 27 | + | |
| 28 | + | |
| 29 | + | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
0 commit comments