lib

Core libraries for Radroots
git clone https://radroots.dev/git/lib.git
Log | Files | Refs | README

commit a1c523bee9b4a7f478b54e77c9064992c788bd9c
parent 6ca7bbb554a739d32c43d44817848a35981649b5
Author: triesap <tyson@radroots.org>
Date:   Tue, 28 Jul 2026 21:23:35 +0000

release: pin Rust crate version cohort

- separate crate versions from event contract generation
- pin all packages and internal requirements to 0.1.0-alpha
- refresh lockfiles and version-bound generated manifests
- validate workspace builds and contract authority negatives

Diffstat:
MCHANGELOG.md | 7++++---
MCargo.lock | 102++++++++++++++++++++++++++++++++++++++++----------------------------------------
MCargo.toml | 102++++++++++++++++++++++++++++++++++++++++----------------------------------------
Mcontracts/knowledge/knowledge_event_contract_manifest.v2.json | 4++--
Mcontracts/knowledge/knowledge_event_contract_manifest.v2.sha256 | 2+-
Mcontracts/releases/1.0.0-alpha.1.toml | 4++--
Mcontracts/version.toml | 5+++++
Mcrates/authority/Cargo.toml | 2+-
Mcrates/blossom/Cargo.toml | 2+-
Mcrates/blossom/contracts/raster_decoder_security_v1.descriptor.json | 4++--
Mcrates/blossom/contracts/raster_decoder_security_v1.manifest.json | 4++--
Mcrates/blossom/contracts/raster_decoder_security_v1.manifest.sha256 | 2+-
Mcrates/core/Cargo.toml | 2+-
Mcrates/event/Cargo.toml | 2+-
Mcrates/event_codec/Cargo.toml | 2+-
Mcrates/event_index/Cargo.toml | 2+-
Mcrates/event_store/Cargo.toml | 2+-
Mcrates/geocoder/Cargo.toml | 2+-
Mcrates/identity/Cargo.toml | 2+-
Mcrates/log/Cargo.toml | 2+-
Mcrates/mesh/Cargo.toml | 2+-
Mcrates/mesh_agent_client/Cargo.toml | 2+-
Mcrates/mesh_agent_proto/Cargo.toml | 2+-
Mcrates/net/Cargo.toml | 2+-
Mcrates/nostr/Cargo.toml | 2+-
Mcrates/nostr_accounts/Cargo.toml | 2+-
Mcrates/nostr_connect/Cargo.toml | 2+-
Mcrates/nostr_runtime/Cargo.toml | 2+-
Mcrates/nostr_signer/Cargo.toml | 2+-
Mcrates/nostrdb/Cargo.toml | 2+-
Mcrates/outbox/Cargo.toml | 2+-
Mcrates/outbox/contracts/migration_authority_v1.manifest.json | 16++++++++--------
Mcrates/outbox/contracts/migration_authority_v1.manifest.sha256 | 2+-
Mcrates/outbox/contracts/phase1_publication_v1.manifest.json | 16++++++++--------
Mcrates/outbox/contracts/phase1_publication_v1.manifest.sha256 | 2+-
Mcrates/protected_store/Cargo.toml | 2+-
Mcrates/protocol_contract_v1/Cargo.toml | 2+-
Mcrates/replica_schema/Cargo.toml | 2+-
Mcrates/replica_store/Cargo.toml | 2+-
Mcrates/replica_sync/Cargo.toml | 2+-
Mcrates/runtime/Cargo.toml | 2+-
Mcrates/runtime_distribution/Cargo.toml | 2+-
Mcrates/runtime_manager/Cargo.toml | 2+-
Mcrates/runtime_paths/Cargo.toml | 2+-
Mcrates/runtime_store/Cargo.toml | 2+-
Mcrates/secret_vault/Cargo.toml | 2+-
Mcrates/simplex_agent_proto/Cargo.toml | 2+-
Mcrates/simplex_agent_runtime/Cargo.toml | 2+-
Mcrates/simplex_agent_store/Cargo.toml | 2+-
Mcrates/simplex_app_store/Cargo.toml | 2+-
Mcrates/simplex_chat_proto/Cargo.toml | 2+-
Mcrates/simplex_interop_tests/Cargo.toml | 2+-
Mcrates/simplex_smp_crypto/Cargo.toml | 2+-
Mcrates/simplex_smp_proto/Cargo.toml | 2+-
Mcrates/simplex_smp_transport/Cargo.toml | 2+-
Mcrates/sql_core/Cargo.toml | 2+-
Mcrates/test_fixtures/Cargo.toml | 2+-
Mcrates/trade/Cargo.toml | 2+-
Mcrates/trade_sp1_guest/Cargo.toml | 2+-
Mcrates/trade_sp1_host/Cargo.toml | 2+-
Mcrates/transport/Cargo.toml | 2+-
Mcrates/transport_nostr/Cargo.toml | 2+-
Mcrates/transport_publish_protocol/Cargo.toml | 2+-
Mcrates/transport_reticulum/Cargo.toml | 2+-
Mfuzz/Cargo.lock | 2+-
Mtools/xtask/Cargo.toml | 2+-
Mtools/xtask/src/contract.rs | 87+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++--------------
Mtools/xtask/src/contract/food_availability_projection.rs | 2+-
Mtools/xtask/src/contract/nip09_reconciliation.rs | 10+++++-----
Mtools/xtask/src/contract/phase1_publication_artifact.rs | 10+++++++++-
Mtools/xtask/src/contract/raw_source_rebuild.rs | 2+-
Mtools/xtask/src/coverage.rs | 2+-
72 files changed, 280 insertions(+), 209 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md @@ -368,9 +368,10 @@ publish policy both pass for the same source revision. - Strict authored posts enforce the 256 KiB compact signed-event ceiling after exact JSON escaping, in addition to per-element and aggregate decoded tag limits. -- Workspace packages declare one governed version explicitly so mounted path - consumers preserve it, and every internal root dependency requires that exact - pre-release version. +- Every Rust workspace package declares the exact `0.1.0-alpha` crate version + explicitly so mounted path consumers preserve it, and every internal root + dependency requires that same package cohort independently of the event + contract generation. - Conformance suites now identify the `1.0.0` event-contract generation. - Release metadata records exact governed impacts for removed public types, fields, functions, modules, constants, Cargo features, and trait diff --git a/Cargo.lock b/Cargo.lock @@ -4592,7 +4592,7 @@ checksum = "dc33ff2d4973d518d823d61aa239014831e521c75da58e3df4840d3f47749d09" [[package]] name = "radroots_authority" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "radroots_event", "radroots_event_codec", @@ -4602,7 +4602,7 @@ dependencies = [ [[package]] name = "radroots_blossom" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "hex", "image", @@ -4620,7 +4620,7 @@ dependencies = [ [[package]] name = "radroots_core" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "dto_bindgen", "rust_decimal", @@ -4631,7 +4631,7 @@ dependencies = [ [[package]] name = "radroots_event" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "dto_bindgen", "hex", @@ -4648,7 +4648,7 @@ dependencies = [ [[package]] name = "radroots_event_codec" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "hex", "nostr", @@ -4663,7 +4663,7 @@ dependencies = [ [[package]] name = "radroots_event_index" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "dto_bindgen", "dto_bindgen_core", @@ -4673,7 +4673,7 @@ dependencies = [ [[package]] name = "radroots_event_store" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "futures", "getrandom 0.2.17", @@ -4694,7 +4694,7 @@ dependencies = [ [[package]] name = "radroots_geocoder" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "futures-executor", "hex", @@ -4711,7 +4711,7 @@ dependencies = [ [[package]] name = "radroots_identity" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "nostr", "radroots_protected_store", @@ -4729,7 +4729,7 @@ dependencies = [ [[package]] name = "radroots_log" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "chrono", "serde_json", @@ -4741,7 +4741,7 @@ dependencies = [ [[package]] name = "radroots_mesh" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "radroots_transport", "serde", @@ -4750,7 +4750,7 @@ dependencies = [ [[package]] name = "radroots_mesh_agent_client" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "radroots_mesh", "radroots_mesh_agent_proto", @@ -4761,14 +4761,14 @@ dependencies = [ [[package]] name = "radroots_mesh_agent_proto" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "sha2", ] [[package]] name = "radroots_net" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "directories", "futures", @@ -4792,7 +4792,7 @@ dependencies = [ [[package]] name = "radroots_nostr" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "base64 0.22.1", "nostr", @@ -4811,7 +4811,7 @@ dependencies = [ [[package]] name = "radroots_nostr_accounts" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "radroots_identity", "radroots_nostr_signer", @@ -4827,7 +4827,7 @@ dependencies = [ [[package]] name = "radroots_nostr_connect" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "nostr", "serde", @@ -4839,7 +4839,7 @@ dependencies = [ [[package]] name = "radroots_nostr_runtime" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "futures", "nostr", @@ -4850,7 +4850,7 @@ dependencies = [ [[package]] name = "radroots_nostr_signer" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "hex", "nostr", @@ -4870,7 +4870,7 @@ dependencies = [ [[package]] name = "radroots_nostrdb" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "futures", "hex", @@ -4886,7 +4886,7 @@ dependencies = [ [[package]] name = "radroots_outbox" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "getrandom 0.2.17", "hex", @@ -4907,7 +4907,7 @@ dependencies = [ [[package]] name = "radroots_protected_store" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "chacha20poly1305", "getrandom 0.2.17", @@ -4920,7 +4920,7 @@ dependencies = [ [[package]] name = "radroots_protocol_contract_v1" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "dto_bindgen", "serde", @@ -4928,7 +4928,7 @@ dependencies = [ [[package]] name = "radroots_replica_schema" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "dto_bindgen_core", "serde", @@ -4937,7 +4937,7 @@ dependencies = [ [[package]] name = "radroots_replica_store" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "hex", "radroots_replica_schema", @@ -4949,7 +4949,7 @@ dependencies = [ [[package]] name = "radroots_replica_sync" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "base64 0.22.1", "hex", @@ -4970,7 +4970,7 @@ dependencies = [ [[package]] name = "radroots_runtime" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "anyhow", "chacha20poly1305", @@ -4995,7 +4995,7 @@ dependencies = [ [[package]] name = "radroots_runtime_distribution" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "serde", "thiserror 1.0.69", @@ -5004,7 +5004,7 @@ dependencies = [ [[package]] name = "radroots_runtime_manager" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "flate2", "radroots_runtime_paths", @@ -5017,7 +5017,7 @@ dependencies = [ [[package]] name = "radroots_runtime_paths" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "serde", "thiserror 1.0.69", @@ -5025,7 +5025,7 @@ dependencies = [ [[package]] name = "radroots_runtime_store" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "radroots_sql_core", "serde", @@ -5035,14 +5035,14 @@ dependencies = [ [[package]] name = "radroots_secret_vault" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "keyring", ] [[package]] name = "radroots_simplex_agent_proto" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "base64 0.22.1", "radroots_simplex_smp_crypto", @@ -5051,7 +5051,7 @@ dependencies = [ [[package]] name = "radroots_simplex_agent_runtime" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "base64 0.22.1", "radroots_simplex_agent_proto", @@ -5066,7 +5066,7 @@ dependencies = [ [[package]] name = "radroots_simplex_agent_store" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "chacha20poly1305", "getrandom 0.2.17", @@ -5084,7 +5084,7 @@ dependencies = [ [[package]] name = "radroots_simplex_app_store" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "hex", "serde", @@ -5093,7 +5093,7 @@ dependencies = [ [[package]] name = "radroots_simplex_chat_proto" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "base64 0.22.1", "serde", @@ -5103,7 +5103,7 @@ dependencies = [ [[package]] name = "radroots_simplex_interop_tests" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "radroots_simplex_agent_proto", "radroots_simplex_agent_runtime", @@ -5116,7 +5116,7 @@ dependencies = [ [[package]] name = "radroots_simplex_smp_crypto" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "aes-gcm", "base64 0.22.1", @@ -5136,14 +5136,14 @@ dependencies = [ [[package]] name = "radroots_simplex_smp_proto" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "base64 0.22.1", ] [[package]] name = "radroots_simplex_smp_transport" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "base64 0.22.1", "radroots_simplex_smp_crypto", @@ -5156,7 +5156,7 @@ dependencies = [ [[package]] name = "radroots_sql_core" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "chrono", "futures-executor", @@ -5168,14 +5168,14 @@ dependencies = [ [[package]] name = "radroots_test_fixtures" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "radroots_event", ] [[package]] name = "radroots_trade" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "base64 0.22.1", "dto_bindgen", @@ -5197,7 +5197,7 @@ dependencies = [ [[package]] name = "radroots_trade_sp1_guest" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "serde", "serde_json", @@ -5208,7 +5208,7 @@ dependencies = [ [[package]] name = "radroots_trade_sp1_host" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "base64 0.22.1", "bincode", @@ -5227,7 +5227,7 @@ dependencies = [ [[package]] name = "radroots_transport" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "futures", "serde", @@ -5237,7 +5237,7 @@ dependencies = [ [[package]] name = "radroots_transport_nostr" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "async-wsocket", "futures", @@ -5266,7 +5266,7 @@ dependencies = [ [[package]] name = "radroots_transport_publish_protocol" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "radroots_transport", "serde", @@ -5275,7 +5275,7 @@ dependencies = [ [[package]] name = "radroots_transport_reticulum" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "futures", "radroots_transport", @@ -9107,7 +9107,7 @@ dependencies = [ [[package]] name = "xtask" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "dto_bindgen_core", "fs2", diff --git a/Cargo.toml b/Cargo.toml @@ -56,7 +56,7 @@ members = [ resolver = "2" [workspace.package] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition = "2024" rust-version = "1.97.0" license = "MIT OR Apache-2.0" @@ -68,56 +68,56 @@ readme = "README" async-wsocket = { version = "0.13.2" } dto_bindgen = { version = "0.1.0" } dto_bindgen_core = { version = "0.1.0" } -radroots_core = { path = "crates/core", version = "=1.0.0-alpha.1", default-features = false } -radroots_event = { path = "crates/event", version = "=1.0.0-alpha.1", default-features = false } -radroots_event_store = { path = "crates/event_store", version = "=1.0.0-alpha.1", default-features = false } -radroots_event_codec = { path = "crates/event_codec", version = "=1.0.0-alpha.1", default-features = false } -radroots_event_index = { path = "crates/event_index", version = "=1.0.0-alpha.1", default-features = false } -radroots_authority = { path = "crates/authority", version = "=1.0.0-alpha.1", default-features = false } -radroots_blossom = { path = "crates/blossom", version = "=1.0.0-alpha.1", default-features = false } -radroots_geocoder = { path = "crates/geocoder", version = "=1.0.0-alpha.1" } -radroots_identity = { path = "crates/identity", version = "=1.0.0-alpha.1", default-features = false } -radroots_runtime_store = { path = "crates/runtime_store", version = "=1.0.0-alpha.1", default-features = false } -radroots_nostr = { path = "crates/nostr", version = "=1.0.0-alpha.1", default-features = false } -radroots_nostr_accounts = { path = "crates/nostr_accounts", version = "=1.0.0-alpha.1", default-features = false } -radroots_nostr_connect = { path = "crates/nostr_connect", version = "=1.0.0-alpha.1", default-features = false } -radroots_nostr_signer = { path = "crates/nostr_signer", version = "=1.0.0-alpha.1", default-features = false } -radroots_nostrdb = { path = "crates/nostrdb", version = "=1.0.0-alpha.1", default-features = false } -radroots_runtime = { path = "crates/runtime", version = "=1.0.0-alpha.1", default-features = false } -radroots_runtime_paths = { path = "crates/runtime_paths", version = "=1.0.0-alpha.1", default-features = false } -radroots_runtime_distribution = { path = "crates/runtime_distribution", version = "=1.0.0-alpha.1", default-features = false } -radroots_runtime_manager = { path = "crates/runtime_manager", version = "=1.0.0-alpha.1", default-features = false } -radroots_log = { path = "crates/log", version = "=1.0.0-alpha.1", default-features = false } -radroots_net = { path = "crates/net", version = "=1.0.0-alpha.1", default-features = false } -radroots_nostr_runtime = { path = "crates/nostr_runtime", version = "=1.0.0-alpha.1", default-features = false } -radroots_outbox = { path = "crates/outbox", version = "=1.0.0-alpha.1", default-features = false } -radroots_protocol_contract_v1 = { path = "crates/protocol_contract_v1", version = "=1.0.0-alpha.1", default-features = false } -radroots_transport_publish_protocol = { path = "crates/transport_publish_protocol", version = "=1.0.0-alpha.1", default-features = false } -radroots_transport_nostr = { path = "crates/transport_nostr", version = "=1.0.0-alpha.1", default-features = false } -radroots_transport_reticulum = { path = "crates/transport_reticulum", version = "=1.0.0-alpha.1", default-features = false } -radroots_simplex_agent_proto = { path = "crates/simplex_agent_proto", version = "=1.0.0-alpha.1", default-features = false } -radroots_simplex_agent_runtime = { path = "crates/simplex_agent_runtime", version = "=1.0.0-alpha.1", default-features = false } -radroots_simplex_agent_store = { path = "crates/simplex_agent_store", version = "=1.0.0-alpha.1", default-features = false } -radroots_simplex_chat_proto = { path = "crates/simplex_chat_proto", version = "=1.0.0-alpha.1", default-features = false } -radroots_simplex_interop_tests = { path = "crates/simplex_interop_tests", version = "=1.0.0-alpha.1", default-features = false } -radroots_simplex_smp_crypto = { path = "crates/simplex_smp_crypto", version = "=1.0.0-alpha.1", default-features = false } -radroots_simplex_smp_proto = { path = "crates/simplex_smp_proto", version = "=1.0.0-alpha.1", default-features = false } -radroots_simplex_smp_transport = { path = "crates/simplex_smp_transport", version = "=1.0.0-alpha.1", default-features = false } -radroots_sql_core = { path = "crates/sql_core", version = "=1.0.0-alpha.1", default-features = false } -radroots_test_fixtures = { path = "crates/test_fixtures", version = "=1.0.0-alpha.1" } -radroots_replica_schema = { path = "crates/replica_schema", version = "=1.0.0-alpha.1", default-features = false } -radroots_replica_sync = { path = "crates/replica_sync", version = "=1.0.0-alpha.1", default-features = false } -radroots_replica_store = { path = "crates/replica_store", version = "=1.0.0-alpha.1", default-features = false } -radroots_trade = { path = "crates/trade", version = "=1.0.0-alpha.1", default-features = false } -radroots_transport = { path = "crates/transport", version = "=1.0.0-alpha.1", default-features = false } -radroots_mesh = { path = "crates/mesh", version = "=1.0.0-alpha.1", default-features = false } -radroots_mesh_agent_client = { path = "crates/mesh_agent_client", version = "=1.0.0-alpha.1", default-features = false } -radroots_mesh_agent_proto = { path = "crates/mesh_agent_proto", version = "=1.0.0-alpha.1", default-features = false } -radroots_protected_store = { path = "crates/protected_store", version = "=1.0.0-alpha.1", default-features = false } -radroots_secret_vault = { path = "crates/secret_vault", version = "=1.0.0-alpha.1", default-features = false } -radroots_simplex_app_store = { path = "crates/simplex_app_store", version = "=1.0.0-alpha.1", default-features = false } -radroots_trade_sp1_guest = { path = "crates/trade_sp1_guest", version = "=1.0.0-alpha.1", default-features = false } -radroots_trade_sp1_host = { path = "crates/trade_sp1_host", version = "=1.0.0-alpha.1", default-features = false } +radroots_core = { path = "crates/core", version = "=0.1.0-alpha", default-features = false } +radroots_event = { path = "crates/event", version = "=0.1.0-alpha", default-features = false } +radroots_event_store = { path = "crates/event_store", version = "=0.1.0-alpha", default-features = false } +radroots_event_codec = { path = "crates/event_codec", version = "=0.1.0-alpha", default-features = false } +radroots_event_index = { path = "crates/event_index", version = "=0.1.0-alpha", default-features = false } +radroots_authority = { path = "crates/authority", version = "=0.1.0-alpha", default-features = false } +radroots_blossom = { path = "crates/blossom", version = "=0.1.0-alpha", default-features = false } +radroots_geocoder = { path = "crates/geocoder", version = "=0.1.0-alpha" } +radroots_identity = { path = "crates/identity", version = "=0.1.0-alpha", default-features = false } +radroots_runtime_store = { path = "crates/runtime_store", version = "=0.1.0-alpha", default-features = false } +radroots_nostr = { path = "crates/nostr", version = "=0.1.0-alpha", default-features = false } +radroots_nostr_accounts = { path = "crates/nostr_accounts", version = "=0.1.0-alpha", default-features = false } +radroots_nostr_connect = { path = "crates/nostr_connect", version = "=0.1.0-alpha", default-features = false } +radroots_nostr_signer = { path = "crates/nostr_signer", version = "=0.1.0-alpha", default-features = false } +radroots_nostrdb = { path = "crates/nostrdb", version = "=0.1.0-alpha", default-features = false } +radroots_runtime = { path = "crates/runtime", version = "=0.1.0-alpha", default-features = false } +radroots_runtime_paths = { path = "crates/runtime_paths", version = "=0.1.0-alpha", default-features = false } +radroots_runtime_distribution = { path = "crates/runtime_distribution", version = "=0.1.0-alpha", default-features = false } +radroots_runtime_manager = { path = "crates/runtime_manager", version = "=0.1.0-alpha", default-features = false } +radroots_log = { path = "crates/log", version = "=0.1.0-alpha", default-features = false } +radroots_net = { path = "crates/net", version = "=0.1.0-alpha", default-features = false } +radroots_nostr_runtime = { path = "crates/nostr_runtime", version = "=0.1.0-alpha", default-features = false } +radroots_outbox = { path = "crates/outbox", version = "=0.1.0-alpha", default-features = false } +radroots_protocol_contract_v1 = { path = "crates/protocol_contract_v1", version = "=0.1.0-alpha", default-features = false } +radroots_transport_publish_protocol = { path = "crates/transport_publish_protocol", version = "=0.1.0-alpha", default-features = false } +radroots_transport_nostr = { path = "crates/transport_nostr", version = "=0.1.0-alpha", default-features = false } +radroots_transport_reticulum = { path = "crates/transport_reticulum", version = "=0.1.0-alpha", default-features = false } +radroots_simplex_agent_proto = { path = "crates/simplex_agent_proto", version = "=0.1.0-alpha", default-features = false } +radroots_simplex_agent_runtime = { path = "crates/simplex_agent_runtime", version = "=0.1.0-alpha", default-features = false } +radroots_simplex_agent_store = { path = "crates/simplex_agent_store", version = "=0.1.0-alpha", default-features = false } +radroots_simplex_chat_proto = { path = "crates/simplex_chat_proto", version = "=0.1.0-alpha", default-features = false } +radroots_simplex_interop_tests = { path = "crates/simplex_interop_tests", version = "=0.1.0-alpha", default-features = false } +radroots_simplex_smp_crypto = { path = "crates/simplex_smp_crypto", version = "=0.1.0-alpha", default-features = false } +radroots_simplex_smp_proto = { path = "crates/simplex_smp_proto", version = "=0.1.0-alpha", default-features = false } +radroots_simplex_smp_transport = { path = "crates/simplex_smp_transport", version = "=0.1.0-alpha", default-features = false } +radroots_sql_core = { path = "crates/sql_core", version = "=0.1.0-alpha", default-features = false } +radroots_test_fixtures = { path = "crates/test_fixtures", version = "=0.1.0-alpha" } +radroots_replica_schema = { path = "crates/replica_schema", version = "=0.1.0-alpha", default-features = false } +radroots_replica_sync = { path = "crates/replica_sync", version = "=0.1.0-alpha", default-features = false } +radroots_replica_store = { path = "crates/replica_store", version = "=0.1.0-alpha", default-features = false } +radroots_trade = { path = "crates/trade", version = "=0.1.0-alpha", default-features = false } +radroots_transport = { path = "crates/transport", version = "=0.1.0-alpha", default-features = false } +radroots_mesh = { path = "crates/mesh", version = "=0.1.0-alpha", default-features = false } +radroots_mesh_agent_client = { path = "crates/mesh_agent_client", version = "=0.1.0-alpha", default-features = false } +radroots_mesh_agent_proto = { path = "crates/mesh_agent_proto", version = "=0.1.0-alpha", default-features = false } +radroots_protected_store = { path = "crates/protected_store", version = "=0.1.0-alpha", default-features = false } +radroots_secret_vault = { path = "crates/secret_vault", version = "=0.1.0-alpha", default-features = false } +radroots_simplex_app_store = { path = "crates/simplex_app_store", version = "=0.1.0-alpha", default-features = false } +radroots_trade_sp1_guest = { path = "crates/trade_sp1_guest", version = "=0.1.0-alpha", default-features = false } +radroots_trade_sp1_host = { path = "crates/trade_sp1_host", version = "=0.1.0-alpha", default-features = false } anyhow = { version = "1" } aes-gcm = { version = "0.10.3", default-features = false, features = [ diff --git a/contracts/knowledge/knowledge_event_contract_manifest.v2.json b/contracts/knowledge/knowledge_event_contract_manifest.v2.json @@ -1,8 +1,8 @@ { "schema_version": 2, "registry_version": 7, - "radroots_event_version": "1.0.0-alpha.1", - "radroots_event_codec_version": "1.0.0-alpha.1", + "radroots_event_version": "0.1.0-alpha", + "radroots_event_codec_version": "0.1.0-alpha", "contract_count": 11, "contracts": [ { diff --git a/contracts/knowledge/knowledge_event_contract_manifest.v2.sha256 b/contracts/knowledge/knowledge_event_contract_manifest.v2.sha256 @@ -1 +1 @@ -d17a44375f52be93b0205be0f0541664b0310ee75106a160e7690b9b245a5bab +d75fe077862204dc68c1c2098ddb23ccd4d3829befd6178f52ad21f8a5395a24 diff --git a/contracts/releases/1.0.0-alpha.1.toml b/contracts/releases/1.0.0-alpha.1.toml @@ -87,10 +87,10 @@ semver_impacts = [ summary = "Decouple replica backup compatibility from package SemVer and retain restore support for schema-compatible 0.1.0-alpha.2 backups." [[changes]] -id = "workspace-version-lockstep" +id = "rust-crate-version-authority" classification = "fix" semver_impacts = ["fix_packaging_metadata"] -summary = "Move the workspace and event contract to the 1.0.0-alpha.1 version cohort with exact internal requirements." +summary = "Pin every Rust workspace crate and internal requirement to the authoritative 0.1.0-alpha package cohort independently of protocol contract versions." [[changes]] id = "general-verified-event-boundary" diff --git a/contracts/version.toml b/contracts/version.toml @@ -2,6 +2,11 @@ version = "1.0.0-alpha.1" stability = "draft" +[rust_crates] +version = "0.1.0-alpha" +scope = "all_workspace_members" +internal_dependency_requirement = "exact" + [semver] major_on = [ "remove_exported_type", diff --git a/crates/authority/Cargo.toml b/crates/authority/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_authority" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/blossom/Cargo.toml b/crates/blossom/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_blossom" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/blossom/contracts/raster_decoder_security_v1.descriptor.json b/crates/blossom/contracts/raster_decoder_security_v1.descriptor.json @@ -4,7 +4,7 @@ "byte_length": 31555, "hash_algorithm": "sha256_bytes_v1", "path": "crates/blossom/contracts/raster_decoder_security_v1.manifest.json", - "sha256": "4a3c4acd9f2e3b0447465e5a1f744186d4823f0c6beb0665cb951b8dd82139c2" + "sha256": "c38a07006be45e02a1b2eb73b5b2b10d23826c28e9381ccd080dea2fe9c2dc64" }, "manifest_schema": { "byte_length": 19177, @@ -16,7 +16,7 @@ "byte_length": 65, "hash_algorithm": "sha256_bytes_v1", "path": "crates/blossom/contracts/raster_decoder_security_v1.manifest.sha256", - "sha256": "eb24f1c678c26092b85ffcf9c0ae51f72100018472d63774eb8abd4b00864c6d" + "sha256": "bdac8f2b6288b3711ba8b025ae4cc74cf929a25862cf8acb4fcee469231d1b5e" }, "predecessor_contract_ids": [ "radroots_blossom.publication_readiness_v1" diff --git a/crates/blossom/contracts/raster_decoder_security_v1.manifest.json b/crates/blossom/contracts/raster_decoder_security_v1.manifest.json @@ -344,8 +344,8 @@ }, "project_lockfile": { "path": "fuzz/Cargo.lock", - "byte_length": 19013, - "sha256": "05add36124173589e21d1e9706b77dc9622542bd5072346b3a355ada65e39e64", + "byte_length": 19011, + "sha256": "2bfa3270800d5763aadb4884ac8cc9a0a5ed5dcf94b80c00d1345607b1cb2ee3", "hash_algorithm": "sha256_bytes_v1" }, "toolchain": { diff --git a/crates/blossom/contracts/raster_decoder_security_v1.manifest.sha256 b/crates/blossom/contracts/raster_decoder_security_v1.manifest.sha256 @@ -1 +1 @@ -4a3c4acd9f2e3b0447465e5a1f744186d4823f0c6beb0665cb951b8dd82139c2 +c38a07006be45e02a1b2eb73b5b2b10d23826c28e9381ccd080dea2fe9c2dc64 diff --git a/crates/core/Cargo.toml b/crates/core/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_core" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/event/Cargo.toml b/crates/event/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_event" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/event_codec/Cargo.toml b/crates/event_codec/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_event_codec" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/event_index/Cargo.toml b/crates/event_index/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_event_index" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/event_store/Cargo.toml b/crates/event_store/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_event_store" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/geocoder/Cargo.toml b/crates/geocoder/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_geocoder" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/identity/Cargo.toml b/crates/identity/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_identity" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/log/Cargo.toml b/crates/log/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_log" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/mesh/Cargo.toml b/crates/mesh/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_mesh" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/mesh_agent_client/Cargo.toml b/crates/mesh_agent_client/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_mesh_agent_client" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/mesh_agent_proto/Cargo.toml b/crates/mesh_agent_proto/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_mesh_agent_proto" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/net/Cargo.toml b/crates/net/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_net" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/nostr/Cargo.toml b/crates/nostr/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_nostr" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/nostr_accounts/Cargo.toml b/crates/nostr_accounts/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_nostr_accounts" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/nostr_connect/Cargo.toml b/crates/nostr_connect/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_nostr_connect" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/nostr_runtime/Cargo.toml b/crates/nostr_runtime/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_nostr_runtime" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/nostr_signer/Cargo.toml b/crates/nostr_signer/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_nostr_signer" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/nostrdb/Cargo.toml b/crates/nostrdb/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_nostrdb" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/outbox/Cargo.toml b/crates/outbox/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_outbox" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/outbox/contracts/migration_authority_v1.manifest.json b/crates/outbox/contracts/migration_authority_v1.manifest.json @@ -215,10 +215,10 @@ "source_files": [ { "file": { - "byte_length": 1858, + "byte_length": 1856, "hash_algorithm": "sha256_bytes_v1", "path": "crates/outbox/Cargo.toml", - "sha256": "0c1df46ac2450865c4fca94d6426395a8e4505a028d4507f9addd0400852d78e" + "sha256": "f643aa30ee5d9ada9ef43bfeae7517ccacb234f237953a35175fc6b8a4b5bbaa" }, "role": "outbox_package_manifest" }, @@ -305,10 +305,10 @@ }, { "file": { - "byte_length": 507689, + "byte_length": 510144, "hash_algorithm": "sha256_bytes_v1", "path": "tools/xtask/src/contract.rs", - "sha256": "a387d19e4b78b496adcf234b68f578250377c235f79ef25ff449cc7072a4b721" + "sha256": "c08947646a9769e4278d8a044b3474026fd71b3a2315babccae992b2ae55c368" }, "role": "contract_dispatch" }, @@ -350,19 +350,19 @@ }, { "file": { - "byte_length": 27060, + "byte_length": 27103, "hash_algorithm": "sha256_bytes_v1", "path": "contracts/releases/1.0.0-alpha.1.toml", - "sha256": "7dc8f9403dd9eb79fa6381f0dd3eb2a233d2f376eda38f6ec501ff29b98a2923" + "sha256": "f12cc739f3253b6847556e5659c4cba061bf18265435b2af39f6961ba6bb86e5" }, "role": "release_record" }, { "file": { - "byte_length": 37874, + "byte_length": 37945, "hash_algorithm": "sha256_bytes_v1", "path": "CHANGELOG.md", - "sha256": "290225f031b2b6f7a393f0c6baa50eee06e1e2e5b8cb2f177bca3ae9c0ee581e" + "sha256": "5f377b808a1baec86637d17ef67c0ce280249ce58077dd2374ba69e36c27f33f" }, "role": "release_notes" } diff --git a/crates/outbox/contracts/migration_authority_v1.manifest.sha256 b/crates/outbox/contracts/migration_authority_v1.manifest.sha256 @@ -1 +1 @@ -89a0042a09eab148e8d96814945464451b2b79f2e2becde0c9cf3e21a7ed2d8f +76be4dc435bf2e8337bd02a53d96c99b8e537e231bf633d0d36b3cf3d5e4634a diff --git a/crates/outbox/contracts/phase1_publication_v1.manifest.json b/crates/outbox/contracts/phase1_publication_v1.manifest.json @@ -48,9 +48,9 @@ "source_files": [ { "file": { - "byte_length": 1858, + "byte_length": 1856, "path": "crates/outbox/Cargo.toml", - "sha256": "0c1df46ac2450865c4fca94d6426395a8e4505a028d4507f9addd0400852d78e" + "sha256": "f643aa30ee5d9ada9ef43bfeae7517ccacb234f237953a35175fc6b8a4b5bbaa" }, "role": "outbox_package_manifest" }, @@ -112,9 +112,9 @@ }, { "file": { - "byte_length": 507689, + "byte_length": 510144, "path": "tools/xtask/src/contract.rs", - "sha256": "a387d19e4b78b496adcf234b68f578250377c235f79ef25ff449cc7072a4b721" + "sha256": "c08947646a9769e4278d8a044b3474026fd71b3a2315babccae992b2ae55c368" }, "role": "contract_dispatch" }, @@ -128,17 +128,17 @@ }, { "file": { - "byte_length": 27060, + "byte_length": 27103, "path": "contracts/releases/1.0.0-alpha.1.toml", - "sha256": "7dc8f9403dd9eb79fa6381f0dd3eb2a233d2f376eda38f6ec501ff29b98a2923" + "sha256": "f12cc739f3253b6847556e5659c4cba061bf18265435b2af39f6961ba6bb86e5" }, "role": "release_record" }, { "file": { - "byte_length": 37874, + "byte_length": 37945, "path": "CHANGELOG.md", - "sha256": "290225f031b2b6f7a393f0c6baa50eee06e1e2e5b8cb2f177bca3ae9c0ee581e" + "sha256": "5f377b808a1baec86637d17ef67c0ce280249ce58077dd2374ba69e36c27f33f" }, "role": "release_notes" } diff --git a/crates/outbox/contracts/phase1_publication_v1.manifest.sha256 b/crates/outbox/contracts/phase1_publication_v1.manifest.sha256 @@ -1 +1 @@ -47d2d6e867a370b009160a44fac08062e9260e7f069e064e656060d4c89c057e +2f61a5f5e13425b34d0dd43f70651d1f2f15c381b4143370f18eef65b3ec5ddb diff --git a/crates/protected_store/Cargo.toml b/crates/protected_store/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_protected_store" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/protocol_contract_v1/Cargo.toml b/crates/protocol_contract_v1/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_protocol_contract_v1" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/replica_schema/Cargo.toml b/crates/replica_schema/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_replica_schema" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/replica_store/Cargo.toml b/crates/replica_store/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_replica_store" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/replica_sync/Cargo.toml b/crates/replica_sync/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_replica_sync" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/runtime/Cargo.toml b/crates/runtime/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_runtime" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/runtime_distribution/Cargo.toml b/crates/runtime_distribution/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_runtime_distribution" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/runtime_manager/Cargo.toml b/crates/runtime_manager/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_runtime_manager" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/runtime_paths/Cargo.toml b/crates/runtime_paths/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_runtime_paths" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/runtime_store/Cargo.toml b/crates/runtime_store/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_runtime_store" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/secret_vault/Cargo.toml b/crates/secret_vault/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_secret_vault" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/simplex_agent_proto/Cargo.toml b/crates/simplex_agent_proto/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_simplex_agent_proto" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/simplex_agent_runtime/Cargo.toml b/crates/simplex_agent_runtime/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_simplex_agent_runtime" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/simplex_agent_store/Cargo.toml b/crates/simplex_agent_store/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_simplex_agent_store" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/simplex_app_store/Cargo.toml b/crates/simplex_app_store/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_simplex_app_store" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/simplex_chat_proto/Cargo.toml b/crates/simplex_chat_proto/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_simplex_chat_proto" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/simplex_interop_tests/Cargo.toml b/crates/simplex_interop_tests/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_simplex_interop_tests" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/simplex_smp_crypto/Cargo.toml b/crates/simplex_smp_crypto/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_simplex_smp_crypto" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/simplex_smp_proto/Cargo.toml b/crates/simplex_smp_proto/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_simplex_smp_proto" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/simplex_smp_transport/Cargo.toml b/crates/simplex_smp_transport/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_simplex_smp_transport" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/sql_core/Cargo.toml b/crates/sql_core/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_sql_core" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/test_fixtures/Cargo.toml b/crates/test_fixtures/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "radroots_test_fixtures" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true rust-version.workspace = true license = "MIT OR Apache-2.0" diff --git a/crates/trade/Cargo.toml b/crates/trade/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_trade" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/trade_sp1_guest/Cargo.toml b/crates/trade_sp1_guest/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_trade_sp1_guest" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/trade_sp1_host/Cargo.toml b/crates/trade_sp1_host/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_trade_sp1_host" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true build = "build.rs" authors = ["Tyson Lupul <tyson@radroots.org>"] diff --git a/crates/transport/Cargo.toml b/crates/transport/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_transport" publish = ["crates-io"] -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/transport_nostr/Cargo.toml b/crates/transport_nostr/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_transport_nostr" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/transport_publish_protocol/Cargo.toml b/crates/transport_publish_protocol/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_transport_publish_protocol" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/crates/transport_reticulum/Cargo.toml b/crates/transport_reticulum/Cargo.toml @@ -1,7 +1,7 @@ [package] name = "radroots_transport_reticulum" publish = false -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true authors = ["Tyson Lupul <tyson@radroots.org>"] rust-version.workspace = true diff --git a/fuzz/Cargo.lock b/fuzz/Cargo.lock @@ -460,7 +460,7 @@ dependencies = [ [[package]] name = "radroots_blossom" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "image", "libwebp", diff --git a/tools/xtask/Cargo.toml b/tools/xtask/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "xtask" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" edition.workspace = true rust-version.workspace = true description = "Workspace task runner for Radroots Rust crates" diff --git a/tools/xtask/src/contract.rs b/tools/xtask/src/contract.rs @@ -1725,6 +1725,7 @@ struct FoodAvailabilityOperationExpectation { #[serde(deny_unknown_fields)] pub struct VersionPolicy { pub contract: VersionContract, + pub rust_crates: RustCrateVersionPolicy, pub semver: SemverRules, pub release_integrity: ReleaseIntegrityRules, } @@ -1738,6 +1739,14 @@ pub struct VersionContract { #[derive(Debug, Deserialize)] #[serde(deny_unknown_fields)] +pub struct RustCrateVersionPolicy { + pub version: String, + pub scope: String, + pub internal_dependency_requirement: String, +} + +#[derive(Debug, Deserialize)] +#[serde(deny_unknown_fields)] pub struct SemverRules { pub major_on: Vec<String>, pub minor_on: Vec<String>, @@ -4216,32 +4225,32 @@ fn validate_contract_version_lockstep(bundle: &ContractBundle) -> Result<(), Str fn validate_workspace_version_lockstep( workspace_root: &Path, - contract_version: &str, + crate_version: &str, ) -> Result<(), String> { let workspace_manifest = parse_toml::<WorkspaceVersionCargoManifest>(&workspace_root.join("Cargo.toml"))?; - if workspace_manifest.workspace.package.version != contract_version { + if workspace_manifest.workspace.package.version != crate_version { return Err(format!( - "workspace.package.version {} must match contract version {}", - workspace_manifest.workspace.package.version, contract_version + "workspace.package.version {} must match Rust crate version authority {}", + workspace_manifest.workspace.package.version, crate_version )); } - let exact_requirement = format!("={contract_version}"); + let exact_requirement = format!("={crate_version}"); let mut governed_packages = BTreeMap::new(); for member in &workspace_manifest.workspace.members { let package_path = workspace_root.join(member).join("Cargo.toml"); let package = parse_toml::<VersionedPackageCargoManifest>(&package_path)?; match package.package.version { - PackageVersionSource::Literal(ref version) if version == contract_version => {} + PackageVersionSource::Literal(ref version) if version == crate_version => {} PackageVersionSource::Literal(version) => { return Err(format!( - "workspace member {member} package version {version} must match contract version {contract_version}" + "workspace member {member} package version {version} must match Rust crate version authority {crate_version}" )); } PackageVersionSource::Workspace { workspace } => { return Err(format!( - "workspace member {member} must set an explicit package version {contract_version}, not version.workspace = {workspace}, so mounted path consumers preserve the public package version" + "workspace member {member} must set an explicit package version {crate_version}, not version.workspace = {workspace}, so mounted path consumers preserve the public package version" )); } } @@ -4286,12 +4295,12 @@ fn validate_workspace_version_lockstep( } } - validate_cargo_lock_version_lockstep(workspace_root, contract_version, &governed_packages) + validate_cargo_lock_version_lockstep(workspace_root, crate_version, &governed_packages) } fn validate_cargo_lock_version_lockstep( workspace_root: &Path, - contract_version: &str, + crate_version: &str, governed_packages: &BTreeMap<String, String>, ) -> Result<(), String> { let lock = parse_toml::<CargoLockManifest>(&workspace_root.join("Cargo.lock"))?; @@ -4306,9 +4315,9 @@ fn validate_cargo_lock_version_lockstep( "Cargo.lock must contain exactly one source-free entry for workspace member {member} ({package_name})" )); } - if workspace_entries[0].version != contract_version { + if workspace_entries[0].version != crate_version { return Err(format!( - "Cargo.lock package {package_name} version {} must match contract version {contract_version}", + "Cargo.lock package {package_name} version {} must match Rust crate version authority {crate_version}", workspace_entries[0].version )); } @@ -4683,9 +4692,10 @@ fn validate_version_governance( workspace_root: &Path, ) -> Result<(), String> { validate_contract_version_lockstep(bundle)?; - let version = bundle.manifest.contract.version.as_str(); - validate_workspace_version_lockstep(workspace_root, version)?; - validate_release_record(workspace_root, version, &bundle.version.semver)?; + let contract_version = bundle.manifest.contract.version.as_str(); + let crate_version = bundle.version.rust_crates.version.as_str(); + validate_workspace_version_lockstep(workspace_root, crate_version)?; + validate_release_record(workspace_root, contract_version, &bundle.version.semver)?; validate_conformance_vector_mirrors(workspace_root) } @@ -9040,6 +9050,18 @@ fn validate_contract_bundle_with_release_policy_override_and_profile( if bundle.version.contract.stability.trim().is_empty() { return Err("version.contract.stability is required".to_string()); } + if bundle.version.rust_crates.version.trim().is_empty() { + return Err("version.rust_crates.version is required".to_string()); + } + parse_semver_version(&bundle.version.rust_crates.version)?; + if bundle.version.rust_crates.scope != "all_workspace_members" { + return Err("version.rust_crates.scope must remain all_workspace_members".to_string()); + } + if bundle.version.rust_crates.internal_dependency_requirement != "exact" { + return Err( + "version.rust_crates.internal_dependency_requirement must remain exact".to_string(), + ); + } if bundle.version.semver.major_on.is_empty() || bundle.version.semver.minor_on.is_empty() || bundle.version.semver.patch_on.is_empty() @@ -9662,6 +9684,11 @@ require_deterministic_emit_ingest = true version = "1.0.0" stability = "alpha" +[rust_crates] +version = "1.0.0" +scope = "all_workspace_members" +internal_dependency_requirement = "exact" + [semver] major_on = ["breaking"] minor_on = ["feature"] @@ -11028,6 +11055,15 @@ crates = ["radroots_a", "radroots_b", "radroots_c", "radroots_d", "radroots_e"] .expect_err("contract header drift must fail"); assert!(contract_error.contains("must match manifest contract version")); + let mut package_decoupled_bundle = + load_contract_bundle(&root).expect("load package-decoupled contract"); + package_decoupled_bundle.version.rust_crates.version = "0.1.0-alpha".to_string(); + validate_contract_version_lockstep(&package_decoupled_bundle) + .expect("Rust crate version authority must remain independent of contract version"); + let package_authority_error = validate_workspace_version_lockstep(&root, "0.1.0-alpha") + .expect_err("workspace package cohort drift must fail"); + assert!(package_authority_error.contains("Rust crate version authority 0.1.0-alpha")); + let member_path = root.join("crates/a/Cargo.toml"); let member = fs::read_to_string(&member_path).expect("read member manifest"); write_file( @@ -12750,6 +12786,22 @@ legacy-ingest = ["std"] assert_bundle_error("version.contract.stability is required", |bundle| { bundle.version.contract.stability.clear(); }); + assert_bundle_error("version.rust_crates.version is required", |bundle| { + bundle.version.rust_crates.version.clear(); + }); + assert_bundle_error( + "version.rust_crates.scope must remain all_workspace_members", + |bundle| { + bundle.version.rust_crates.scope = "published_only".to_string(); + }, + ); + assert_bundle_error( + "version.rust_crates.internal_dependency_requirement must remain exact", + |bundle| { + bundle.version.rust_crates.internal_dependency_requirement = + "compatible".to_string(); + }, + ); assert_bundle_error("version.semver rules must all be non-empty", |bundle| { bundle.version.semver.major_on.clear(); }); @@ -13638,6 +13690,11 @@ edition = "2024" version = "1.0.0" stability = "alpha" +[rust_crates] +version = "1.0.0" +scope = "all_workspace_members" +internal_dependency_requirement = "exact" + [semver] major_on = ["breaking"] minor_on = ["feature"] diff --git a/tools/xtask/src/contract/food_availability_projection.rs b/tools/xtask/src/contract/food_availability_projection.rs @@ -2644,7 +2644,7 @@ fn validate_blossom_dependency_values( || workspace_dependency .get("version") .and_then(toml::Value::as_str) - != Some("=1.0.0-alpha.1") + != Some("=0.1.0-alpha") || workspace_dependency .get("default-features") .and_then(toml::Value::as_bool) diff --git a/tools/xtask/src/contract/nip09_reconciliation.rs b/tools/xtask/src/contract/nip09_reconciliation.rs @@ -237,7 +237,7 @@ const GOVERNED_DEPENDENCY_TABLE_SHA256: [(&str, &str); 7] = [ ), ( "Cargo.toml#governed-workspace-dependencies", - "edb48180d3cc3d00fead18984159487bb07afedeb646249a84c1d64ec0529e24", + "5d43b9baf1b1f354296cb6bde5024e779189d121f69cc3bb364989dd645a94de", ), ]; @@ -14667,7 +14667,7 @@ xtask = "run -q -p xtask --" .and_then(toml::Value::as_table) .ok_or_else(|| format!("{relative} must declare [package]"))?; if package.get("name").and_then(toml::Value::as_str) != Some(expected_package_name) - || package.get("version").and_then(toml::Value::as_str) != Some("1.0.0-alpha.1") + || package.get("version").and_then(toml::Value::as_str) != Some("0.1.0-alpha") || package .get("edition") .and_then(toml::Value::as_table) @@ -14682,7 +14682,7 @@ xtask = "run -q -p xtask --" != Some(true) { return Err(format!( - "{relative} compiler package identity must remain {expected_package_name} 1.0.0-alpha.1 with workspace edition and rust-version" + "{relative} compiler package identity must remain {expected_package_name} 0.1.0-alpha with workspace edition and rust-version" )); } if [ @@ -20992,7 +20992,7 @@ pub(crate) fn migration_for_version"#, let cargo_lock = fs::read_to_string(&cargo_lock_path).expect("Cargo.lock"); let transport_lock_package = r#"[[package]] name = "radroots_transport" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "futures", "serde", @@ -21002,7 +21002,7 @@ dependencies = [ "#; let future_transport_lock_package = r#"[[package]] name = "radroots_transport" -version = "1.0.0-alpha.1" +version = "0.1.0-alpha" dependencies = [ "futures", "serde", diff --git a/tools/xtask/src/contract/phase1_publication_artifact.rs b/tools/xtask/src/contract/phase1_publication_artifact.rs @@ -132,6 +132,8 @@ const BLOSSOM_READINESS_RAW_PREDECESSOR_SUPERSEDED_PATHS: &[&str] = &[ ]; const RASTER_DECODER_SECURITY_RAW_PREDECESSOR_SUPERSEDED_PATHS: &[&str] = &["build/nix/apps.nix", "build/nix/toolchains.nix"]; +const RUST_CRATE_VERSION_RAW_PREDECESSOR_SUPERSEDED_PATHS: &[&str] = + &["crates/event_store/Cargo.toml", "tools/xtask/Cargo.toml"]; const PUBLIC_TYPES: &[&str] = &[ "RadrootsPhase1PublicationEventVariant", @@ -1077,7 +1079,7 @@ fn validate_package_shape( .and_then(toml::Value::as_table) .ok_or_else(|| format!("{relative} must declare [package]"))?; if package.get("name").and_then(toml::Value::as_str) != Some(expected_name) - || package.get("version").and_then(toml::Value::as_str) != Some("1.0.0-alpha.1") + || package.get("version").and_then(toml::Value::as_str) != Some("0.1.0-alpha") || package .get("edition") .and_then(toml::Value::as_table) @@ -1420,11 +1422,17 @@ fn validate_immutable_raw_predecessor_under_lock(workspace_root: &Path) -> Resul .iter() .copied(), ) + .chain( + RUST_CRATE_VERSION_RAW_PREDECESSOR_SUPERSEDED_PATHS + .iter() + .copied(), + ) .collect::<BTreeSet<_>>(); if superseded.len() != RAW_PREDECESSOR_SUPERSEDED_PATHS.len() + BLOSSOM_READINESS_RAW_PREDECESSOR_SUPERSEDED_PATHS.len() + RASTER_DECODER_SECURITY_RAW_PREDECESSOR_SUPERSEDED_PATHS.len() + + RUST_CRATE_VERSION_RAW_PREDECESSOR_SUPERSEDED_PATHS.len() { return Err("raw predecessor supersession paths must be unique".to_owned()); } diff --git a/tools/xtask/src/contract/raw_source_rebuild.rs b/tools/xtask/src/contract/raw_source_rebuild.rs @@ -615,7 +615,7 @@ const DELEGATED_COMPILER_SOURCE_PINS: &[(&str, &str)] = &[ ), ( XTASK_MANIFEST_RELATIVE, - "b915e0289bf7390d3c4194aaed1e748cf5e591426e0443c310775ddc7d7f63a5", + "63b32e8981247bfec6aceb5925f6754d8f6360b73e57e73a57d2d1149701f6c5", ), ]; diff --git a/tools/xtask/src/coverage.rs b/tools/xtask/src/coverage.rs @@ -4578,7 +4578,7 @@ test_threads = 0 ); write_file( &root.join("crates").join("core").join("Cargo.toml"), - "[package]\nname = \"radroots_core\"\nversion = \"1.0.0-alpha.1\"\nedition = \"2024\"\n", + "[package]\nname = \"radroots_core\"\nversion = \"0.1.0-alpha\"\nedition = \"2024\"\n", ); };