What's New in 0.22¶
ETLantic 0.22.0 is the Plugin SDK Release Candidate: capability-driven
engine identity, a versioned capability vocabulary, hardened public conformance,
a curated import etlantic as etl facade, a compatibility-report CLI, and an
out-of-monorepo reference plugin.
Protocol /1 families are freeze-eligible, not frozen — see
Protocol Evolution and
Exit Gate 0.22.
Recommended import style¶
Curated root symbols plus lazy namespaces (etl.sql, etl.testing, …).
Specialist root exports demoted in 0.22 remain as warn-once compatibility
aliases. See Surface Inventory.
Capability-driven engines¶
Planning, discovery, and runtime no longer privilege first-party engine name
sets. Third-party engines validate → plan → run/compile → report → viz via
authorized descriptors and PluginCapabilities.
Capability vocabulary /1¶
etlantic.capabilities/1 is versioned independently with published
implication / conflict / deprecation rules. Overstated claims fail conformance
with actionable findings.
Conformance hardening¶
- Dataframe suite is capability-driven (no
engine == "pandas"special cases) - SQL suite: redaction + malformed-output guards
- New
run_spark_conformance_suite(session-free) - Shared
assert_capability_claims_consistent/assert_capability_matches_behavior - First-party plugins exercise public
etlantic.testingentry points only
Compatibility CLI¶
etlantic plugin compatibility etlantic-polars --format json
etlantic plugin compatibility --format human
External proof¶
Public reference plugin:
eddiethedean/etlantic-plugin-echo
(engine echo). Monorepo CI clones and runs its public suites against workspace
core (.github/workflows/external-plugin-echo.yml).
Typed protocol metadata¶
ExecutionContextMeta / CompileArtifactMeta (and coerce helpers) type
stability-critical context/artifact metadata on dataframe, SQL, and Spark
boundaries. Extension bags stay under etlantic. / plugin: namespaces.