Three changes closing M8 gaps identified during verification: 1. ROADMAP.md: Mark m8p8 and m8p10 as PARTIAL (not COMPLETE). Added Known Gaps table (G1: in-process transport, G2: tier-3 tests, G3: hash inconsistency). 2. SimulatedCluster transport now pluggable via ClusterConfig.transports. Default (None) uses new ChannelTransport (crossbeam, same behavior). When Some, accepts external transports (e.g., GrpcTransport from tidal-net). Updated redeliver_missed to use &dyn Transport. Zero regressions: all 1209 lib + 8 m8_uat tests pass unchanged. 3. Multi-process E2E test harness (tidal-server/tests/cluster_e2e.rs). ClusterHarness spawns real tidal-server cluster OS processes, allocates dynamic ports, generates topology YAML, polls health, and cleans up via SIGTERM. Two tests: smoke (write + converge + verify follower reads) and promote (leader change + continued writes). Feature-gated behind cluster-e2e.
35 lines
888 B
TOML
35 lines
888 B
TOML
[package]
|
|
name = "tidal-server"
|
|
version = "0.1.0"
|
|
edition.workspace = true
|
|
rust-version.workspace = true
|
|
license.workspace = true
|
|
|
|
[lib]
|
|
name = "tidal_server"
|
|
path = "src/lib.rs"
|
|
|
|
[dependencies]
|
|
axum = "0.8"
|
|
clap = { version = "4.5", features = ["derive", "env"] }
|
|
subtle = "2"
|
|
tower = { version = "0.5", features = ["limit"] }
|
|
tower-http = { version = "0.6", features = ["timeout", "trace", "request-id"] }
|
|
serde = { version = "1", features = ["derive"] }
|
|
serde_json = "1"
|
|
serde_yaml = "0.9"
|
|
thiserror = "2"
|
|
tokio = { version = "1", features = ["macros", "rt-multi-thread", "signal"] }
|
|
tracing = "0.1"
|
|
tracing-subscriber = { version = "0.3", features = ["env-filter"] }
|
|
tidaldb = { path = "../tidal", features = ["test-utils"] }
|
|
|
|
[features]
|
|
cluster-e2e = []
|
|
|
|
[dev-dependencies]
|
|
tempfile = "3"
|
|
reqwest = { version = "0.12", features = ["json", "blocking"] }
|
|
serde_json = "1"
|
|
libc = "0.2"
|