Repository navigation
v0.18.1
dbt-plan v0.18.1 — preserve snapshots and model identity
This patch fixes snapshot publication and model readiness counts, and prevents
relation or version-alias collisions from hiding changes or downstream failures.
It remains a static file analyzer with sqlglot as its only runtime dependency.
Upgrade
pip install --upgrade dbt-plan==0.18.1
# For the optional MCP server:
pip install --upgrade 'dbt-plan[mcp]==0.18.1'Unresolved SELECT * in added or modified SQL now appears in parse_failures,
even when replacement DDL is safe. The default warning policy can therefore
exit 2 on changes that previously passed. Explicit exit policies still apply;
use explicit output columns or sufficient relation metadata to resolve them.
Fixes
- Validate staged snapshot layout and inventory before publication. Unreadable
input fails with exit 3 while preserving the previous baseline; regenerate
compiled input before retrying. Legacy reader recovery behavior is retained. - Count each enabled root model node ID once, including distinct versions.
Addsummary.model_sqland missing/unclassified node lists. Existing JSON
select_starandcolumns_readablefields retain SQL-file count semantics;
their text labels now explicitly identify files. - Match validated, normalized model paths and physical relations. Qualified
source, seed or package references cannot borrow another model's columns by
basename. Quoted identifiers, CTEs, aliases and qualified stars retain dialect
identity; uncertain SQL remains unreadable and reviewable. - Give actual compiled filenames precedence over generated version aliases.
Use node IDs for DAG, contract and selected-input lookups so an alias collision
cannot substitute another model's SQL or DDL policy. Data tests retain their
attached model's filename when the manifest supplies it.
Verification and scope
CI covers Linux and Windows Python 3.10–3.14, minimum dependencies, built artifacts,
Core/DuckDB compilation, MCP and the composite Action. Added regression cases
exercise ordinary and selected checks, version/filename collisions, baseline
fallback, downstream contracts and data tests.
Snowflake, Postgres and BigQuery identity cases use parser fixtures. This release
does not certify live warehouse execution or Fusion full-compile compatibility.
The Marketplace v1 tag is not moved by this package release.