Final end-of-train pass (M5, the three-repo release baseline). Do NOT land mid-train - a workspace-wide version + Cargo.lock change would conflict with every remaining car. Runs once the three-repo split (nexum/, videre/, shepherd/) has landed.
Four crates carry a drifted 0.2.0 while everything else is 0.1.0: nexum-runtime, nexum-cli, nexum-launch, shepherd (plus shepherd-cow-host pre-split, which becomes videre-host at 0.1.0). The 0.2.0 reflects the pre-release 0.1 -> 0.2 runtime evolution, but corresponds to no git tag, no release, and no inter-crate version pin, so resetting to a coherent 0.1.0 baseline is safe.
Root cause: [workspace.package] hoists edition / license / repository but not version, so each crate pins its own and these drifted - the exact failure mode the block's own comment already names.
Change
- Add
version = "0.1.0" to [workspace.package].
- Convert the core crates (
crates/ + tools/, across all three groups) to version.workspace = true.
- Leave guest modules under
modules/ on an explicit 0.1.0 (standalone-authorable; a module author has no access to the workspace table, per the existing convention).
- Regenerate
Cargo.lock.
Acceptance criteria
- No crate pins
0.2.0; every core crate resolves to 0.1.0 via version.workspace = true.
cargo metadata shows a single 0.1.0 across the workspace, modules included.
- Green fmt / clippy / test.
Four crates carry a drifted
0.2.0while everything else is0.1.0:nexum-runtime,nexum-cli,nexum-launch,shepherd(plusshepherd-cow-hostpre-split, which becomesvidere-hostat0.1.0). The0.2.0reflects the pre-release0.1 -> 0.2runtime evolution, but corresponds to no git tag, no release, and no inter-crate version pin, so resetting to a coherent0.1.0baseline is safe.Root cause:
[workspace.package]hoistsedition/license/repositorybut notversion, so each crate pins its own and these drifted - the exact failure mode the block's own comment already names.Change
version = "0.1.0"to[workspace.package].crates/+tools/, across all three groups) toversion.workspace = true.modules/on an explicit0.1.0(standalone-authorable; a module author has no access to the workspace table, per the existing convention).Cargo.lock.Acceptance criteria
0.2.0; every core crate resolves to0.1.0viaversion.workspace = true.cargo metadatashows a single0.1.0across the workspace, modules included.