Skip to content

build(wit): move WIT to group-local trees vendored via wit-deps - #640

Merged
mfw78 merged 1 commit into
mainfrom
train/405-wit-crate-local-deps
Jul 27, 2026
Merged

build(wit): move WIT to group-local trees vendored via wit-deps#640
mfw78 merged 1 commit into
mainfrom
train/405-wit-crate-local-deps

Conversation

@mfw78

@mfw78 mfw78 commented Jul 27, 2026

Copy link
Copy Markdown
Contributor

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 root wit/.

Cross-group WIT is now vendored via wit-deps (bytecodealliance) from path sources: videre/wit/deps.toml vendors nexum-host, and shepherd/wit/deps.toml vendors nexum-host plus the three videre packages, each with a digest-pinned deps.lock and the vendored wit/deps/ copies checked in.

resolve_wit_packages in nexum/crates/nexum-world is rewritten around a new find_wit_tree helper that locates the nearest ancestor wit/ directory and resolves solely inside it (checking wit/deps/<pkg> before wit/<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 ci run under CI=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_adapter and e2e_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).

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
mfw78 merged commit 7492f76 into main Jul 27, 2026
9 checks passed
@mfw78
mfw78 deleted the train/405-wit-crate-local-deps branch July 27, 2026 09:38
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.
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