Skip to content

sdk: consolidate the nexum-sdk macros and rename to videre-sdk #136

Description

@mfw78

Problem. Doc 05 plans a #[nexum::module] macro and the nexum-sdk/shepherd-sdk split; Doc 09's SDK-surfaces section (PR #132) plans the two-persona crate map (nexum-sdk + nexum-venue-sdk + per-venue crates). These must merge into one plan or the SDK grows two futures.

Scope. Ship nexum-sdk as the universal module-author crate (host traits, keeper, module glue). Ship the #[nexum::module] macro that generates the per-cdylib glue (ADR-0009's ~150-line tax) and emits the per-component world matching the manifest's declared capabilities, retiring the capability-elision dependency. Retire shepherd-sdk as a clean break in the same release, migrating all five modules at once. Rewrite Doc 05 around the two-persona plan.

Ownership. The typed intent client core lives in #137's nexum-venue-sdk (#230), not here and not in #135's keeper. CoW protocol helpers live in the cow-venue module (#138); any child migrating shepherd-sdk/src/cow migrates the structured-poll reader, not the old 5-selector revert decode. shepherd-sdk retirement and the workspace-member removal sequence strictly after #138's legacy cow-cone deletion, which #138 owns.

Dependencies. Keeper (#135) and intent core (#137). Absorbs #118 (closed) and #59.

Notes. Clean break by owner decision: no deprecation window, pre-1.0 is the cheapest time.


Next-train plan

Current state. The nexum-sdk/shepherd-sdk split and the host-trait seam (ADR-0009) ship; #118 is closed. Not done: no #[nexum::module] proc-macro (every module hand-writes the ~150-line glue), all modules generate against the single shepherd:cow/shepherd world, shepherd-sdk not retired, Doc 05 stale. The macro, doc, and per-component-world children are in review on the M1 train.

Children (ordered):

Deferred to follow-on train: the clean break, retire shepherd-sdk, migrate the cow modules and stop-loss, remove the workspace member, sequenced strictly after #138's legacy-cone deletion.

Blocked by: #135, #137. Blocks: #138.

Metadata

Metadata

Assignees

No one assigned

    Labels

    component/sdknexum-sdk / shepherd-sdk, proc macros, cargo-nexum

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions