Exit Gate 0.22 — Plugin SDK Release Candidate¶
| Deliverable | Status |
|---|---|
| Capability-driven engine identity (no first-party name privileges) | Done |
| Synthetic third-party engine end-to-end tests | Done |
Capability vocabulary etlantic.capabilities/1 + policy doc |
Done |
Typed protocol metadata (ExecutionContextMeta / CompileArtifactMeta) |
Done |
| Public conformance hardening + Spark suite + truthfulness helpers | Done |
First-party plugins tested only via public etlantic.testing |
Done |
etlantic plugin compatibility CLI |
Done |
Curated import etlantic as etl facade + lazy namespaces |
Done |
| Surface inventory + import-budget + typing fixtures | Done |
PROTOCOL_EVOLUTION.md (freeze-eligible, not frozen) |
Done |
Out-of-monorepo etlantic-plugin-echo + CI clone job |
Done |
| Docs: What's New / Migration / this exit gate | Done |
| Core + plugins bumped to 0.22.0 | Done |
Acceptance checklist¶
- Third-party-named engine works validate→plan→run/compile→report→viz without core name privileges (
tests/unit/test_engine_identity_0_22.py) - Reserved/first-party name alone cannot unlock behavior
- Overstated capabilities fail conformance with actionable codes (
tests/unit/test_conformance_hardening_0_22.py) - First-party plugins use public
etlantic.testingentry points (no private underscore imports) -
etlantic plugin compatibilityworks from installed metadata (tests/unit/test_plugin_compatibility_0_22.py) -
etlantic-plugin-echopublic repo + monorepo CI workflow (.github/workflows/external-plugin-echo.yml) -
import etlantic as etlminimal, typed, lazy namespaces, identity-stable (tests/unit/test_root_facade.py) - Surface inventory + import budget + typing fixtures enforce ownership
- No architectural dependency on first-party engine identity sets in planner/coordinator/runtime
- Protocol
/1frozen — not claimed in 0.22.0; freeze after ≥1 external feedback cycle post-RC (see below)
Freeze note¶
Protocol /1 is freeze-eligible after:
- Echo CI job green against published 0.22 core on PyPI (post-tag)
- At least one external feedback cycle from a non-first-party plugin author
- No open blockers on packaging assumptions discovered by echo
Until then, 0.22 ships as a Release Candidate for the Plugin SDK. Additive
optional methods and vocabulary clarifications may still land in /1.
External proof¶
- Repo: https://github.com/eddiethedean/etlantic-plugin-echo
- Workflow:
.github/workflows/external-plugin-echo.yml(workflow_dispatch, weekly schedule,external-pluginPR label, and relevant path pushes)
Residual / follow-ups (0.23+)¶
- Runtime resilience budgets and failure injection at every boundary
- Multi-worker control plane
- Storage / Resource / Observability protocol catalogs (remain Design Proposals)
- Declaring multi-tenant unrestricted production
- Full pyright fail-suite CI gate for
tests/typing/fail