Releases: foxbenjaminfox/mutare_ecto
Releases · foxbenjaminfox/mutare_ecto
Release list
v0.1.1
Fixed
- No compiler warning on Elixir 1.20. The host routing re-checked the
literal kindsMutare.AST.literal_value/1already guarantees, which 1.20's
type inference reports as a test that always succeeds while compiling the
dependency (and which failed the package's own warnings-as-errors CI). The
redundant check is gone; behaviour is unchanged. - The README's install snippet names real versions (
~> 0.1for both
mutareandmutare_ecto) instead of the"~> ..."placeholders left
from before publication.
v0.1.0
Initial release.
Added
- An SQL-semantics mutation catalog for the Ecto surface, independent of
Mutare's Elixir-semantics built-ins: every mutation is one a real SQL engine
will run, and equivalence reasoning follows SQL's three-valued logic. - In-condition families (delivered through
^/dynamicinjection so the
query still compiles once):comparison,null_predicate,connective,
membership,arithmetic,coalesce,temporal,integer_literal,
float_literal, the opt-instring_literal/atom_literal/boolean_literal
arms,binding_reorder, andfilter_drop. - Query-shape families:
ordering,ordering_nulls,bound,join_type,
combination,aggregate,clause_drop, andquery_terminal. - Repo-write and changeset families:
persistence,on_conflict,
validation_drop, andhook_drop. - Both query syntaxes — the
fromkeyword form (piped too) and the
composable pipe form — across direct, aliased, andimport/use-bundled
call styles; schema definitions are left untouched. - Configuration per
{Mutare.Ecto, …}entry:repo:(Repo-call
recognition — one module or a list),families:(:default,:all, an explicit list, or
{base, except: […]}),dialects:(portable core by default;:postgres/
:mysqlgate dialect-specific swaps), andas:report renaming. - Equivalence reporting: boundary/NULL-sensitive families annotate each
survivor with the specific fixture data a kill would need
(Mutare.Ecto.equivalence_sensitive_families/0). - Structural-position safety: literals that shape the SQL (fragment
templates, interval units, cast types, field/binding names) are never
mutated, so no mutant can poison the single metamutant build.