Releases
v0.30.0
Compare
Sorry, something went wrong.
No results found
[0.30.0] - 2026-07-28
Added
Provisional etlantic.quality/1 portable quality-expression AST + JSON Schema
etlantic.quality helpers: serialize/fingerprint, ContractModel mapping, analyze, evaluate, make_quality_gate
Plan metadata for quality gates (cost, capabilities, fallback evidence, validation_boundary)
Plan-time fail-closed diagnostics PMPLAN420 / PMPLAN421 for unsupported required quality capabilities
Portable quality conformance suite: etlantic.testing.run_quality_conformance_suite
Polars / Pandas advertise portable quality rule capabilities
Medallantic rule DSL (parse_rules_shorthand) and real quality-gate lowering (replaces MDL110 passthrough)
Medallantic evaluate_accept_rates for layer threshold comparison
What's New / Migration / Exit Gate 0.30 documentation
Changed
Official package versions align at 0.30.0; plugins require etlantic>=0.30.0,<0.31
Local stub registry advertises portable quality capabilities for plan-time negotiation
Medallantic bronze steps with rules insert {name}__ingest + gate nodes
Surface inventory marks etlantic.quality/1 provisional and adds quality lazy namespace
Fixed
Quality gate factory resolves ContractModel port types and invalid-role rejected outputs
Name-only custom_contract rules fail closed at evaluate time (no silent pass)
Quality capability asserts run before native implementation selection so SQL/PySpark profiles emit PMPLAN420/421 instead of PMPLAN302
Plan metadata recomputes quality fingerprints so embedded hashes cannot drift
Optional required=False quality rules skip rejection while recording soft diagnostics
Regex / range / length DSL evaluation no longer crashes the gate on bad inputs
field_constraints_dict projects nullable, compare ops, and composite unique_fields
Medallantic quality gates attach {step}__rejected sink Loads (invalid→sink wiring allowed)
PySpark stops advertising invalid_row_separation without dataframe
Surface / agent / capability / diagnostics catalogs reflect etlantic.quality for 0.30
You can’t perform that action at this time.