build(wit): move WIT to group-local trees vendored via wit-deps - #640
Merged
Conversation
Each group now owns its WIT tree (nexum/wit, videre/wit, shepherd/wit) and the shared root wit/ is deleted. Cross-group packages are vendored into the consuming group's wit/deps/ by wit-deps from path sources, with deps.toml manifests and digest-pinned deps.lock files checked in: videre vendors nexum-host; shepherd vendors nexum-host plus the videre packages. The path sources flip to pinned git-tag tarballs at the physical carve. resolve_wit_packages now resolves solely against the nearest ancestor wit/ tree, vendored deps/ before owned packages, and never falls through to an outer tree, so a group cannot use WIT it has not vendored. Hardcoded bindgen!/generate!/include_str! path lists, the cow layering test, and the venue-agnostic gate point at the group-local trees.
mfw78
added a commit
that referenced
this pull request
Jul 27, 2026
Each group now owns its WIT tree (nexum/wit, videre/wit, shepherd/wit) and the shared root wit/ is deleted. Cross-group packages are vendored into the consuming group's wit/deps/ by wit-deps from path sources, with deps.toml manifests and digest-pinned deps.lock files checked in: videre vendors nexum-host; shepherd vendors nexum-host plus the videre packages. The path sources flip to pinned git-tag tarballs at the physical carve. resolve_wit_packages now resolves solely against the nearest ancestor wit/ tree, vendored deps/ before owned packages, and never falls through to an outer tree, so a group cannot use WIT it has not vendored. Hardcoded bindgen!/generate!/include_str! path lists, the cow layering test, and the venue-agnostic gate point at the group-local trees.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Moves WIT ownership from the single shared root
wit/tree to a crate-local layout:wit/nexum-host->nexum/wit/nexum-host,wit/videre-{types,value-flow,venue}->videre/wit/,wit/shepherd-cow->shepherd/wit/, and deletes the shared rootwit/.Cross-group WIT is now vendored via
wit-deps(bytecodealliance) from path sources:videre/wit/deps.tomlvendorsnexum-host, andshepherd/wit/deps.tomlvendorsnexum-hostplus the threeviderepackages, each with a digest-pinneddeps.lockand the vendoredwit/deps/copies checked in.resolve_wit_packagesinnexum/crates/nexum-worldis rewritten around a newfind_wit_treehelper that locates the nearest ancestorwit/directory and resolves solely inside it (checkingwit/deps/<pkg>beforewit/<pkg>), with no fall-through to an outer tree, backed by new tests covering the no-tree error and the no-fall-through isolation property.Why
This is the pre-carve slice of #405: each crate group needs to own its WIT tree and resolve packages locally before the cross-repo git-tag sourcing work lands in the carve. Part of #405.
Testing
Full
just cirun underCI=1: fmt, clippy with-D warnings,check-carve-groups, rustdoc, all 16 module wasms, nextest and doctests all passed (866 tests, no skips).Wasm-dependent platform e2e tests executed and passed, including
e2e_twap_monitor_boots_against_the_cow_adapterande2e_cow_venue_component_imports_equal_declared_capabilities, confirming every crate resolves its own package plus its cross-group deps from the vendored trees.Models used: fable (implementation), opus (red-team and gate), sonnet (this PR).