Repository navigation
Description
Context
Minigraf is approaching v1.0.0 with Phase 8 completion tracked in #133. A project memory captured the intention to import as many XTDB and Datomic tests as practical once Minigraf reached sufficient feature parity, especially after Phase 7 Datalog completeness: aggregation, disjunction, filter predicates, temporal querying, UDFs, and prepared statements.
This is now timely: compatibility-style tests can increase reliability and credibility before or shortly after the v1.0 release.
Goal
Identify, license-review, port, and run compatible XTDB/Datomic test cases against Minigraf's Datalog engine and temporal model.
Scope
- Identify public XTDB test corpora relevant to Datalog/query semantics, temporal behavior, transaction behavior, and edge cases.
- Identify any Datomic test material that can legally and practically be used as a reference.
- Review licenses before importing any verbatim code or data.
- Prefer porting semantics/test cases over copying code when licensing is unclear.
- Add one or more integration suites, for example:
tests/xtdb_compat_test.rstests/datomic_compat_test.rs
- Normalize syntax and expected results to Minigraf's Datalog dialect where semantics align.
- Clearly document skipped cases where XTDB/Datomic behavior is intentionally out of scope or incompatible with Minigraf's philosophy/API.
Candidate areas
- Pattern matching and joins.
- Recursion and rule behavior where semantics overlap.
- Stratified negation and disjunction.
- Aggregation and grouping.
- Predicate/filter expressions.
- Temporal/as-of query behavior where comparable.
- Transaction/retraction edge cases where comparable.
Acceptance criteria
- License review is documented in the issue or accompanying test module comments.
- Imported/ported tests are traceable to their source corpus or documented as semantic ports.
- Compatibility tests run under
cargo testor a clearly named ignored/nightly test target if expensive. - Unsupported or intentionally divergent semantics are listed explicitly.
- Failures produce actionable diffs between expected and actual query results.
Notes
This is not a requirement to emulate XTDB or Datomic wholesale. The purpose is to borrow battle-tested semantic coverage where Minigraf has feature parity, while preserving Minigraf's embedded, single-file, reliability-first design.
Activity
chore(wave3): foundation — FaultInjectingBackend, fuzz/ crate, propte…
docs: fix swapped issue numbers in Wave 3 PR4 and PR6 plans
Merge pull request #256 from project-minigraf/wave3/pr4-query
Merge pull request #259 from project-minigraf/wave3/pr6-compat