Repository navigation
docs: how databases test and how spawned compares - #268
Conversation
🤖 Gemini Code ReviewThis is a clean documentation-only change. The comparison table, anchor links, and roadmap references in LGTM! Automated review by Gemini · gemini-4-argon · custom prompt |
🤖 Grok Code ReviewDocs-only change. No correctness, concurrency, or lifecycle issues. docs/TESTING.md — the comparison is clear and the table is the right shape. A few nits:
CHANGELOG.md — “how databases test” matches the new heading but reads like a missing object. “database testing practices, how each maps to spawned, and remaining gaps” is clearer. Otherwise this is a useful, scoped addition. Automated review by Grok (xAI) · grok-4.7 · custom prompt |
🤖 Claude Code ReviewReview: PR #268 (docs-only: "How databases test, and how spawned compares")This PR only changes docs. It adds no code, concurrency, or lifecycle risk. The section is well written and useful for positioning. My comments are about accuracy, drift risk and link hygiene. Accuracy
Item 3 (formal specs): "Checking traces of the real code against the spec…" sits directly after the AWS sentence, so it reads as an AWS practice. Trace checking against TLA+ is best known from MongoDB's work (and Microsoft CCF). Either attribute it to MongoDB or make it clear the sentence describes the general technique. Table, "Memory-model checking" row: the label does not fit all the tools listed.
Table, "Formal specifications" row: "Apalache proofs of the safety invariants" is accurate only if these are inductive-invariant checks. If they are bounded runs ( Intro: "Databases have the strongest testing culture in industry" is an unsourced superlative. Consider "among the strongest". Drift riskHard-coded numbers: "23 of 24 realistic bugs" and "47 of 50 guarantees" will go stale as the matrices grow. These counts presumably already appear in the linked sections. Prefer linking without the numbers, or confirm a check keeps them in sync. Unlinked internal references: "ROADMAP tier 3", "rank 22a" and "rank 5c" point to rankings that move. Link to Unverified CI and production claims: please confirm these match the current repo and CI config.
Links and anchorsAnchors to verify: check that these resolve against the actual heading text, since backtick/
A markdown link checker in CI would catch these. "Porcupine-style checker": add a link to the checker's location in the repo (and to Porcupine itself). ClaritySemantics coverage cell: "(a check that fails for 47 of 50 guarantees)" is ambiguous. Suggest "47 of 50 guarantees have a check shown to fail when the guarantee is broken". "Where spawned is behind", item 2: "once scheduled runs are enabled" suggests scheduled fuzz/sim runs don't exist yet. State that directly ("scheduled nightly runs are not yet enabled") so the gap is explicit. CHANGELOGMinor: use the path VerdictApprove after the SQLite MC/DC fix and the anchor check. The rest are nice-to-haves. Automated review by Claude · claude-opus-5-5 · custom prompt |
🤖 Codex Code Review
This PR changes documentation only, so it introduces no runtime, concurrency, or memory-safety changes. Automated review by OpenAI Codex · gpt-6.1-sol · custom prompt |
🤖 DeepSeek Code ReviewThis PR is documentation-only, so there are no Rust code, concurrency, or memory-safety issues to review. The new section is well-organized and clearly maps database testing practices to spawned’s verification layers. Minor documentation nits:
No blocking issues. Automated review by DeepSeek · deepseek-v4-pro · custom prompt |
🤖 Kimi Code ReviewFindings
Otherwise, the addition is clear and well structured. It is documentation-only, so there are no runtime, concurrency, or memory-safety implications. Automated review by Kimi (Moonshot AI) · kimi-k3.1-pro · custom prompt |
…t/otp-exit-signals
Adds a section to docs/TESTING.md: the techniques the best databases use (FoundationDB and TigerBeetle simulation, SQLite and BUGGIFY fault injection, AWS TLA+, SQLite test-proving, fuzzing and metamorphic testing, Jepsen, soak and chaos runs, production canaries), how each maps to spawned's stack, and where spawned is still behind with the plan for each gap.