Skip to content

All 15 fixes from the review are complete. Summary of changes:#123

Merged
thanos merged 1 commit into
mainfrom
v0.4.1/PR-fixes
Jun 21, 2026
Merged

All 15 fixes from the review are complete. Summary of changes:#123
thanos merged 1 commit into
mainfrom
v0.4.1/PR-fixes

Conversation

@thanos

@thanos thanos commented Jun 21, 2026

Copy link
Copy Markdown
Owner

Critical (C1, C2)

  • C1: Fixed lowercase/uppercase variable documentation in schema.ex moduledoc (lines 49-66, 94, 97-99, 110-113, 124-126), rule/2 docstring (line 537), article 01 (lines 14, 60, 64), README — all now correctly state "uppercase = logic variables, lowercase = constants"
  • C2: Aggregate syntax now raises ExDatalog.DSL.CompileError with "aggregates are not yet supported (planned for v0.6.0)" in both head and body positions, instead of crashing. Removed {:aggregate, ...} handling from parse_rule_body. Fixed CHANGELOG and article 05 to match reality. High (H1, H2)
  • H1: Replaced meaningless struct-literal aggregate tests with real DSL syntax tests (testing both head and body agg(...) raise DSL.CompileError)
  • H2: Query without where now raises DSL.CompileError with "query requires a where clause" instead of opaque Protocol.UndefinedError Medium (M1, M2)
  • M1: find variables not present in where pattern now raise DSL.CompileError at compile time
  • M2: Unknown expressions in relation/facts blocks now raise DSL.CompileError instead of being silently dropped Low/Nit (L1-L6)
  • L1: All DSL errors now raise ExDatalog.DSL.CompileError (was mixed with CompileError/ArgumentError)
  • L2: README test count updated to 786 (was 751)
  • L3: Dropped unused _program parameter from validate_rules!
  • L4: Removed duplicate eq constraint test from SchemaCoverageTest
  • L5: Fixed moduledoc: materialize/0,1
  • L6: Deleted livebooks/examples.md (521-line LLM artifact) Verification: 792 tests, 0 failures, mix compile --warnings-as-errors clean, mix credo clean.

Critical (C1, C2)
- C1: Fixed lowercase/uppercase variable documentation in schema.ex moduledoc (lines 49-66, 94, 97-99, 110-113, 124-126), rule/2 docstring (line 537), article 01 (lines 14, 60, 64), README — all now correctly state "uppercase = logic variables, lowercase = constants"
- C2: Aggregate syntax now raises ExDatalog.DSL.CompileError with "aggregates are not yet supported (planned for v0.6.0)" in both head and body positions, instead of crashing. Removed {:aggregate, ...} handling from parse_rule_body. Fixed CHANGELOG and article 05 to match reality.
High (H1, H2)
- H1: Replaced meaningless struct-literal aggregate tests with real DSL syntax tests (testing both head and body agg(...) raise DSL.CompileError)
- H2: Query without where now raises DSL.CompileError with "query requires a where clause" instead of opaque Protocol.UndefinedError
Medium (M1, M2)
- M1: find variables not present in where pattern now raise DSL.CompileError at compile time
- M2: Unknown expressions in relation/facts blocks now raise DSL.CompileError instead of being silently dropped
Low/Nit (L1-L6)
- L1: All DSL errors now raise ExDatalog.DSL.CompileError (was mixed with CompileError/ArgumentError)
- L2: README test count updated to 786 (was 751)
- L3: Dropped unused _program parameter from validate_rules!
- L4: Removed duplicate eq constraint test from SchemaCoverageTest
- L5: Fixed moduledoc: materialize/0,1
- L6: Deleted livebooks/examples.md (521-line LLM artifact)
Verification: 792 tests, 0 failures, mix compile --warnings-as-errors clean, mix credo clean.
@thanos
thanos merged commit 081ce91 into main Jun 21, 2026
6 checks passed
thanos added a commit that referenced this pull request Jun 22, 2026
Merge pull request #123 from thanos/v0.4.1/PR-fixes
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant