Skip to content

v0.18.1

Choose a tag to compare

@github-actions github-actions released this 10 Oct 09:20
· 2 commits to main since this release
80daa88

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.
    Add summary.model_sql and missing/unclassified node lists. Existing JSON
    select_star and columns_readable fields 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.

Full changelog