dbt Release Notes

Follow

66 release notes curated from 3 sources by the Releasebot Team. Last updated: Aug 21, 2026

Get this feed:

dbt Products

  • Aug 21, 2026
    • Date parsed from source:
      Aug 21, 2026
    • First seen by Releasebot:
      Aug 21, 2026
    dbt logo

    dbt Core by dbt

    dbt-core v1.12.3

    dbt Core fixes Azure Blob artifact uploads and improves error reporting for cleaner ingestion on Azure-hosted regions.

    dbt-core 1.12.3 - August 20, 2026

    Fixes

    Send the x-ms-blob-type: BlockBlob header and accept 201 Created when uploading artifacts to an Azure Blob Storage signed URL, so artifact ingestion no longer fails with 400 MissingRequiredHeader on Azure-hosted regions. Upload errors now include the storage provider's error code alongside the status code. (#N/A)

    Dependencies

    Require sqlparse>=0.5.5,<0.7.0, sqlparse 0.6.0 is the fixed release for CVE-2026-54284, CVE-2026-59893, CVE-2026-59894 and CVE-2026-71491 (parser denial-of-service). (#15988)

    Contributors

    @tauhid621 (#N/A)

    @ulixius9 (#15988)

    Original source
  • Aug 20, 2026
    • Date parsed from source:
      Aug 20, 2026
    • First seen by Releasebot:
      Aug 20, 2026
    dbt logo

    dbt Core by dbt

    dbt-core v1.11.14

    dbt Core 1.11.14 updates sqlparse dependencies to fix parser denial-of-service CVEs.

    dbt-core 1.11.14 - August 20, 2026

    Dependencies

    Require sqlparse>=0.5.5,<0.7.0, sqlparse 0.6.0 is the fixed release for CVE-2026-54284, CVE-2026-59893, CVE-2026-59894 and CVE-2026-71491 (parser denial-of-service). (#15988)

    Contributors

    @ulixius9 (#15988)

    Original source
  • All of your release notes in one feed

    Join Releasebot and get updates from dbt and hundreds of other software products.

    Create account
  • Aug 18, 2026
    • Date parsed from source:
      Aug 18, 2026
    • First seen by Releasebot:
      Aug 19, 2026
    dbt logo

    dbt Core by dbt

    v2.0.0-beta.2

    dbt Core releases 2.0.0-beta.2 with broader ClickHouse support, including Dictionary materialization, index definitions, catalog fixes, and seed type handling, plus new Fabric authentication support for ActiveDirectoryAccessToken.

    2.0.0-beta.2

    Released August 18, 2026

    Features

    • Add support for ClickHouse Dictionary materialization (#14580)
    • Clickhouse: Add more settings and missing internal methods (#14587)
    • Add support for ClickHouse's index definition (#14583)
    • [dbt-fusion] (fabric) support authentication: ActiveDirectoryAccessToken, authenticating with a pre-minted Entra bearer token from the access_token profile field (#15926)
    • Add relation-scoped catalog macro (get_catalog_relations) for ClickHouse, fixing catalog fetch failures with --write-catalog (#14585)
    • Seed data types are not Nullable for ClickHouse. Fix incorrect primary key declaration when configured as a list' (#14585)

    Contributors

    • @koletzilla (#14580, #14587, #14583, #14585, #14585)
    • @mghorpade1 (#15926)
    Original source
  • Aug 14, 2026
    • Date parsed from source:
      Aug 14, 2026
    • First seen by Releasebot:
      Aug 14, 2026
    dbt logo

    dbt Core by dbt

    dbt-core v1.6.19

    dbt Core 1.6.19 warns on deprecated versions and drops Python 3.8 support and testing.

    dbt-core 1.6.19 - August 14, 2026

    Features

    Warn users if they are using a deprecated dbt version (#15964)

    Under the Hood

    Remove support and testing for Python 3.8, which is now EOL. (#10861)

    Contributors

    @gshank (#10861)

    @peterallenwebb (#10861)

    Original source
  • Aug 14, 2026
    • Date parsed from source:
      Aug 14, 2026
    • First seen by Releasebot:
      Aug 14, 2026
    dbt logo

    dbt Core by dbt

    dbt-core v1.5.12

    dbt Core 1.5.12 warns on deprecated versions and drops Python 3.8 support.

    dbt-core 1.5.12 - August 14, 2026

    Features

    Warn users if they are using a deprecated dbt version (#15964)

    Under the Hood

    Remove support and testing for Python 3.8, which is now EOL. (#10861)

    Contributors

    @gshank (#10861)

    @peterallenwebb (#10861)

    Original source
  • Similar to dbt with recent updates:

  • Aug 14, 2026
    • Date parsed from source:
      Aug 14, 2026
    • First seen by Releasebot:
      Aug 14, 2026
    dbt logo

    dbt Core by dbt

    dbt-core v1.4.10

    dbt Core ships 1.4.10 with deprecation warnings for older dbt versions and drops Python 3.8 support.

    dbt-core 1.4.10 - August 14, 2026

    Features

    Warn users if they are using a deprecated dbt version (#15964)

    Under the Hood

    Remove support and testing for Python 3.8, which is now EOL. (#10861)

    Contributors

    @ash2shukla (#15964)

    Original source
  • Aug 14, 2026
    • Date parsed from source:
      Aug 14, 2026
    • First seen by Releasebot:
      Aug 14, 2026
    dbt logo

    dbt Core by dbt

    dbt-core v1.3.8

    dbt Core 1.3.8 adds deprecation warnings for older dbt versions and fixes packaging and semver comparison logic.

    dbt-core 1.3.8 - August 14, 2026

    Features

    • Warn users if they are using a deprecated dbt version (#15964)

    Fixes

    • Remove pin on packaging and stop using it for prerelease comparisons (#6834)
    • Fix semver comparison logic by ensuring numeric values (#7039)

    Contributors

    • @ash2shukla (#15964)
    Original source
  • Aug 14, 2026
    • Date parsed from source:
      Aug 14, 2026
    • First seen by Releasebot:
      Aug 14, 2026
    dbt logo

    dbt Core by dbt

    dbt-core v1.2.7

    dbt Core 1.2.7 warns on deprecated versions and fixes logging, semver comparisons, packaging, and seed handling.

    dbt-core 1.2.7 - August 14, 2026

    Features

    • Warn users if they are using a deprecated dbt version (#15964)

    Fixes

    • Remove pin on packaging and stop using it for prerelease comparisons (#6834)
    • Fix semver comparison logic by ensuring numeric values (#7039)
    • Fix producing non json log when log format is json (#7972)
    • Enable seeds to be handled from stored manifest data (#6875)

    Contributors

    • @ash2shukla (#15964)
    Original source
  • Aug 14, 2026
    • Date parsed from source:
      Aug 14, 2026
    • First seen by Releasebot:
      Aug 14, 2026
    dbt logo

    dbt Core by dbt

    dbt-core v1.1.6

    dbt Core 1.1.6 warns on deprecated versions and fixes semver, JSON logging, and seed handling.

    dbt-core 1.1.6 - August 14, 2026

    Features

    • Warn users if they are using a deprecated dbt version (#15964)

    Fixes

    • Remove pin on packaging and stop using it for prerelease comparisons (#6834)
    • Fix semver comparison logic by ensuring numeric values (#7039)
    • Fix producing non json log when log format is json (#7972)
    • Enable seeds to be handled from stored manifest data (#6875)

    Contributors

    • @ash2shukla (#15964)
    Original source
  • Aug 14, 2026
    • Date parsed from source:
      Aug 14, 2026
    • First seen by Releasebot:
      Aug 13, 2026
    • Modified by Releasebot:
      Aug 21, 2026
    dbt logo

    dbt Core by dbt

    dbt-core v1.7.20

    dbt Core 1.7.20 warns users when they are using a deprecated dbt version.

    dbt-core 1.7.20 - August 14, 2026

    Features

    Warn users if they are using a deprecated dbt version (#15964)

    Original source
  • Aug 12, 2026
    • Date parsed from source:
      Aug 12, 2026
    • First seen by Releasebot:
      Aug 13, 2026
    dbt logo

    dbt Core by dbt

    dbt-core v1.12.2

    dbt Core 1.12.2 warns on deprecated versions and fixes Databricks config validation warnings.

    dbt-core 1.12.2 - August 12, 2026

    Features

    Warn users if they are using a deprecated dbt version (#15964)

    Fixes

    Recognize Databricks adapter config keys (query_tags, zorder, options, unique_tmp_table_suffix, skip_optimize) in jsonschema validation so they no longer raise spurious CustomKeyInConfigDeprecation warnings (dbt-databricks#1540, dbt-databricks#1302) (#N/A)

    Under the Hood

    sync JSON schemas from dbt-fusion (#N/A)

    Contributors

    @ash2shukla (#15964)

    @fa-assistant (#N/A)

    @sd-db (#N/A)

    Original source
  • Aug 12, 2026
    • Date parsed from source:
      Aug 12, 2026
    • First seen by Releasebot:
      Aug 13, 2026
    dbt logo

    dbt Core by dbt

    dbt-core v1.12.1

    dbt Core adds OpenTelemetry span instrumentation for node and hook execution, fixes inflated dbt build node counts with unit tests, makes unit test model resolution deterministic, and reparses adapter macros after Fusion manifests.

    dbt-core 1.12.1 - August 12, 2026

    Features

    Add OpenTelemetry span instrumentation for node and hook execution, gated behind the --snowflake-projects-otel flag (off by default) (#11367)

    Fixes

    Fix dbt build node count ("X of Y") being inflated when unit tests are selected, by adding the unit test count to num_nodes exactly once instead of on every dequeue while run_count is still 0 (#11185)

    Stop resolving a unit test's tested model eagerly at parse time; resolve it only in the single deterministic post-parse pass so resolution no longer depends on filesystem parse order at all (deeper fix for (#11139)

    Re-parse adapter macros from the installed adapter package after loading a Fusion-generated manifest, ensuring the user's installed dbt- version is used instead of Fusion's compile-time bundled copy (#15527)

    Fix OpenTelemetry hook spans: name them by hook and transaction phase, skip calls that run no hooks, and add node context and status. (#11367)

    Dependencies

    Bump dbt-core-experimental-parser to 2.0.0b1 lowerbound (#)

    Contributors

    @aiguofer (#15527)

    @itsnamangoyal (#11139)

    @sfc-gh-ppruett (#11367)

    @sfc-gh-vguttha (#11367)

    @tauhid621 (#11185, #11367, #)

    Original source
  • Aug 12, 2026
    • Date parsed from source:
      Aug 12, 2026
    • First seen by Releasebot:
      Aug 13, 2026
    dbt logo

    dbt Core by dbt

    dbt-core v1.11.13

    dbt Core 1.11.13 fixes flaky parsing issues in unit tests and versioned models, removes false duplicate test errors, and warns users on deprecated dbt versions. It also updates Docker image dependencies to restore release build reliability.

    dbt-core 1.11.13 - August 12, 2026

    Features

    • Warn users if they are using a deprecated dbt version (#15964)

    Fixes

    • Fix intermittent "references a model that does not exist" parsing error when unit testing versioned models, caused by non-deterministic filesystem parse order (#11139)
    • Fix partial parsing ghost-duplicate that raised a false "found two data_tests" error by cleaning up disabled generic and singular test nodes on schema re-parse (#)
    • Stop resolving a unit test's tested model eagerly at parse time; resolve it only in the single deterministic post-parse pass so resolution no longer depends on filesystem parse order at all (deeper fix for (#11139)

    Dependencies

    • Bump ca-certificates, libpq-dev, and openssh-client in Docker image to current bullseye versions to fix Docker release build failure caused by superseded package versions (#NA)

    Contributors

    • @ajnovice (#NA)
    • @ash2shukla (#15964)
    • @itsnamangoyal (#11139, #, #11139)
    Original source
  • Aug 10, 2026
    • Date parsed from source:
      Aug 10, 2026
    • First seen by Releasebot:
      Aug 11, 2026
    dbt logo

    dbt Core by dbt

    v2.0.0-beta.1

    dbt Core ships 2.0.0-beta.1 with broader adapter support, faster dbt State and retry behavior, stronger linting and test handling, improved Jinja and manifest parity, and a long list of reliability fixes across BigQuery, Snowflake, Redshift, Databricks, DuckDB, and more.

    2.0.0-beta.1

    Released August 10, 2026

    Features

    Provide option of using default profile.yml during init

    Allow continue running children on parent error

    Implement selector selector method

    Support overloaded UDFs via overrides block in function YAML

    Implement dbt state explain in Fusion

    Test optimization to skip provably redundant tests

    Add cargo xtask apply-ci-goldies to fetch CI logs via gh and apply golden-file patches onto the current worktree.

    Support Databricks Azure service principal (Microsoft Entra ID) authentication via azure_client_id/azure_client_secret (auth_type azure-client-secret), matching dbt-core/dbt-databricks

    Add Docker and docker compose support for self-hosting the dbt docs server (dbt docs serve)

    Clickhouse: Add missing configurations for ClickHouse table materialization (#14585)

    Add --infer-schemas, --skip-type-checking, and --show-sources flags for catalog-free binding to bind SQL without introspection.

    Support pseudocolumns (e.g. BigQuery's _FILE_NAME) in unit tests

    Add machine-readable JSON output for dbt --format json --version

    Add the dbt.import_ctes (DBT01) lint rule, requiring every ref()/source() to be imported through a top-level CTE

    Add opt-in Redshift grants support for groups and roles

    Support dbt node selection (--select/--exclude/--selector) for lint and format in both symbolic and rendered render modes

    Add unit tests to the Jinja graph object

    Add error_code and error_message fields to the dbt login Vortex telemetry event

    dbt State: speculatively submit models, snapshots, and data tests while the dependency last-modified prefetch is still in flight, so nodes no longer block on the full prefetch before a cache decision

    Report the dbt invocation ID (and dbt platform run ID when present) with dbt State telemetry so runs can be correlated end to end

    Skip provably redundant accepted-values data tests

    Add undocumented dbt internal get-distribution-info command for resolving dbt release-channel and distribution info, falling back to <dbt> --version to infer generation and distribution when a target dbt doesn't support the command itself. --all now discovers every dbt on PATH concurrently and skips the doomed internal probe for non-native (script) installs, cutting multi-install discovery time substantially. Each probe is now bounded by a wait/graceful-terminate/forceful-kill timeout so a hung or badly-behaved dbt on PATH can't stall or block discovery indefinitely. When a Homebrew-tap conflict identifies an already-installed dbt Cloud CLI, get-distribution-info now also reports its uninstall command

    When a Snowflake metadata warehouse is configured, dbt State now fetches table last-modified freshness metadata with one query per schema in parallel (bounded by the configured thread count), instead of running the per-schema dumps sequentially

    Support dbt State configs on snapshots and data tests

    [BigQuery] Link to docs for Storage API errors (#15544, #13600)

    Fixes

    Fix stale sourced_remote schema cache for DuckDB adapter causing unit test fixture column mismatches after model schema changes

    Fixed file-system reserved characters in FQNs from being included in paths by replacing them with double underscores.

    Always show a fallback line in the Test Failures summary for failed tests, even when no diff table or stored failures relation is available

    fix: explicitly set default empty variable for $SHELL so that the script will not end while setting the $SHELL.

    Treat unresolvable Snowflake views as stale for dbt State reuse decisions.

    Fix typo in the try_or_compiler_error type-check warning message ("a optional argument argument" -> "an optional argument") (#15323)

    Allow state-org-id in the dbt-cloud block of dbt_project.yml.

    model.batch.event_time_start and model.batch.event_time_end are now datetime objects in Jinja context, enabling .strftime() and other datetime methods to work as in dbt Core

    Fix state modified selection for hook and test alias diffs

    Preserve lowercase Snowflake SHOW and DESCRIBE result column names so dbt_constraints can access run_query columns and rows.

    on-run-end hooks can now call datetime methods such as .replace(tzinfo=...) and .strftime(...) on result.timing[*].started_at and .completed_at fields.

    Fix the @ graph operator (and the equivalent childrens_parents YAML selector) returning an empty set when applied to a leaf node. It now correctly returns the node together with its ancestors. (#15280)

    Fix source freshness failing entirely when a single source errors in the MapReduce aggregation phase. (#15385)

    Make dbt State disable itself and continue when accounts are disabled or locked, while keeping user-actionable auth errors fatal.

    dbt init no longer leaves a stale authenticator field when switching from SSO/MFA to Password or Key pair authentication for Snowflake profiles (#15378)

    Normalize BigQuery model context column data types when contract alias_types is enabled (e.g. FLOAT -> FLOAT64), matching dbt Core. (#14097)

    Versioned models: per-version docs (show/node_color) now override top-level model docs, matching dbt-core behavior

    Force dbt State cache misses for BigQuery external table sources whose metadata timestamps do not reflect backing data changes.

    [Redshift] Honor the is_serverless profile flag (plus serverless_work_group and serverless_acct_id) so Serverless workgroups reached via a non-serverless host (e.g. an SSM port-forward) are treated as Serverless and no longer require cluster_id, matching dbt Core.

    Generic tests with auto-truncated names now correctly set config.alias and unrendered_config.alias in the manifest, matching dbt-core behavior

    Populate warning/error code and name in legacy Core-compat JSON log output

    Support non-ASCII Jinja macro names in Fusion parsing.

    Match dbt-core by ignoring the legacy tests alias on versioned model versions.

    Accept Core manifest value shapes. (#15169, #14570)

    BigQuery: emit the expiration_timestamp relation option (and render options in dbt-core's insertion order) when hours_to_expiration is present but renders to a non-numeric value such as null, matching dbt Core instead of dropping the option

    Fix config precedence bug where +schema: null or +database: null in dbt_project.yml incorrectly overrode schema/database values set in schema.yml properties files

    (dbt-auth): Bigquery: Better error handling and messages to guide uses using api_endpoint with emulators and other strict hosts (#14615)

    Do not use unit test configs for state:modified determination

    Fix macro manifest parity for materialization supported languages.

    [BigQuery] Drop Storage API permission requirement when listing schemas (#14631)

    (state:modified) Restore rendered comparison of freshness in source nodes

    (adapters/redshift) sync v1 Jinja macros using dbt-labs/dbt-adapters@9fce78f

    Include file paths on missing doc macro warnings and suppress empty-path duplicates.

    Retire the last unrendered-enhanced key comparisons in state:modified (in function nodes)

    (adapters/redshift) relation cache tracks relations' dependencies; bring the view materialization in sync with v1 (#15467)

    Match dbt-core unique filter behavior for modules.datetime.date values.

    Fixed a TOCTOU race in dbt-loader that could panic when a dbt project was loaded concurrently from multiple threads, by initializing DISPATCH_CONFIG with get_or_init instead of a check-then-set

    Fix dbt State schema-level freshness dump returning empty for Snowflake schemas with lowercase names in dbt_project.yml, causing an unnecessary fallback to per-relation freshness queries.

    Preserved successful Snowflake freshness metadata when another database batch is inaccessible

    Support Redshift statement cancellation. Now pressing Ctrl-C during a dbt run will abort the statements server-side and early exit. (#15494)

    Added DBT_RESOURCE_TYPES / DBT_EXCLUDE_RESOURCE_TYPES env variables to dbt build --help

    (state:modified) Stop treating function tags/group changes as config modifications on the sparse-fallback comparison path

    dbt-sa-cli force defer introspective nodes on compile (#15569)

    Count failed unit tests correctly in interactive progress output

    Fix the @ graph operator (and the equivalent childrens_parents YAML selector) returning an empty set when applied to a leaf node. It now correctly returns the node together with its ancestors. (#15280)

    dbt retry now runs exactly the nodes recorded as retryable in run_results.json, matching dbt-core, instead of re-expanding that selection with eager indirect selection. It no longer pulls in tests the original command never ran: data tests attached to a retried model when retrying dbt run, already-passed unit tests, or tests excluded by the original --indirect-selection / --exclude (which could also turn a passing retry into a failure when the excluded test had a second, unbuilt parent).

    [BigQuery] Allow get_relation to find tables in hidden datasets (#14635)

    Fix range() returning incorrect values when using negative steps. (#15585)

    LSP: Fixed LSP panic when a 'dbt clean' was invoked

    Skip post-success warehouse metadata refreshes for dbt State executions without confirmation tokens when a heuristic timestamp is available.

    Treat Snowflake TEMPORARY relations as tables in list_relations to prevent a panic when SHOW OBJECTS returns a session-scoped temp table

    Fix BigQuery unit test CTE aliases for quoted project identifiers.

    Correct the naming of install_prerelease field in packages.yml

    Clear stale dbt State final metadata after successful no-confirmation executions so downstream misses use the planned prefetch path, including BigQuery schema prefetch.

    Fix state:modified false positives for semantic models and metrics: restore the SemanticEntity/semantic-model-config manifest round-trip, load previous-state metrics for comparison, and align metric content comparison with dbt-core.

    Align inherited +tags order with dbt-core (parent then child, no alphabetical sort) (#15590)

    Skip static analysis for models with a custom materialization.

    Windows install script no longer overwrites an existing PowerShell $PROFILE with an empty file when setting the dbt alias

    Database (and other execution-time) errors during test execution now always surface as a run error, independent of the test's severity config; severity only governs successfully-returned test results, matching dbt Core (#15514)

    Emit unsupported engine environment variable and source status warnings through structured tracing

    reject incremental models with contract enforcement and invalid on_schema_change (##14572)

    Fixed cancelled models sometimes being reported as Passed or Succeeded

    Match dbt Core's fromjson fallback behavior by returning the default value, or None, when JSON parsing fails

    Render {{ this }} as the physical relation instead of a self-referential CTE for ephemeral models, matching dbt-core (#13961)

    Snowflake Horizon (built-in) iceberg tables no longer fail to compile when a resolved transient config is present., whether inherited from a project-wide default or set explicitly on the model.

    INT64 partitioned tables now use the proper partition bucket names. (#15464)

    BigQuery driver used to crash whenever the resulting dataset contained INT64 pseudocolumns. (#15464)

    Prefer DBT_ENGINE_* environment variables over their legacy DBT_* aliases when both are set

    Always emit the full set of per-node keys in run_results.json (including failures as null for skipped nodes), matching dbt Core and fixing downstream consumers such as the dbt-artifacts package

    Fixed empty flag issue where no real data is being written

    Fixing dbt clone message for ephemeral models, should be skipping instead of giving No relation found output

    Keep dbt State initialization available when schema metadata prefetch fails by caching unknown freshness for the affected schema group.

    Honor a null config in the dbt_project.yml models hierarchy so it clears a value inherited from a higher level (starting with hours_to_expiration), and ensure a more-specific level's value always overrides a cleared parent, matching dbt Core precedence

    Naive Python datetime values now render %z and %Z as empty strings in strftime(), matching Python behavior.

    Fixed agate tuple rendering in Jinja output to avoid an extra trailing comma before the closing parenthesis.

    Support ConstraintNotEnforced and ConstraintNotSupported in warn_error_options, and emit these warnings when an adapter does not enforce or support a model/column constraint

    Honor the project segment when resolving 3-part ADO private packages (org/project/repo) so the correct provider configuration is selected when multiple projects share an org (#12989)

    Normalize deprecation_date to a timezone-aware timestamp in manifest.json so dbt Core consumers can parse it without a TypeError

    Preserve cached dbt State data test warning outcomes when replaying reused test results.

    [BigQuery] Detect cluster_by order changes only when fields change (#9923)

    Show with ephemermal ref missing rendered ephemeral node (#15260)

    Fold the microbatch event-time window into the run-cache key so re-running a microbatch model over an unchanged window is a whole-model no-op while a different window executes

    Fix source table-level config incorrectly overriding root project overlay for dependency package sources

    Support model.update() in dbt Jinja model contexts.

    Fix cross-package macro attribute-access calls missing from depends_on.macros

    Fix macro nodes always having empty depends_on.macros in manifest

    Support --resource-type and --exclude-resource-type filters for dbt test.

    Preserve microbatch event-time filtering when ref and source are overridden through the builtins namespace

    Preserve default schema on dbt State enriched SQL requests, including data tests without target tables.

    Bring dbt-state's semantic-extras key list up to parity with the Python query-cache client, wiring the newly-added model/snapshot/test config keys (contract, constraints, cluster_by, unique_key, grants, event_time, sql_header, lookback, partition_by, table_format, and dialect-specific attributes) into the actual cache-key extraction so config changes to these fields trigger re-execution instead of a stale NO-OP

    Submit standard incremental models that use a custom incremental_strategy macro to dbt State as DBT_CUSTOM instead of warning and forfeiting caching

    Render a source's loaded_at_query through Jinja during dbt State prefetch so macros (and {{ this }}) resolve before the freshness query reaches the warehouse (#15499)

    Fix SQL mismatch false positives for dbt_date and dbt_utils macros (e.g. date_spine) in Time Machine replay by treating read-only execute calls (SELECT/SHOW) as unordered across segment boundaries, and removing hardcoded AdapterType::Snowflake from replay argument matching

    Fix BigQuery snapshot ALTER TABLE ... ADD COLUMN to include the database qualifier

    dbt State: Start sending clone_chain_depth_limit to the server to help make correct clone decisions

    Fix unit test overrides.macros.run_started_at raising unknown method strftime errors

    Fix dbt State clearing a table's cached last-modified epoch after its own submit decision (even when reused/skipped), which caused a spurious per-node freshness fallback query and StateServiceWarn (dbt1410) warning for any downstream model that ref()s it directly, on every build.

    Evict a node's cached last-modified epoch and existence after it executes without a confirmed dbt State request because the request failed, so downstream nodes in the same invocation are not incorrectly skipped based on stale freshness

    Unit test fixtures with invalid columns now error instead of warning and passing

    Fix spurious UnusedResourceConfigPath warning for models disabled via dbt_project.yml on incremental/partial-parse runs, caused by disabled nodes not being seeded from the parse cache before the unused-config check ran. (#15348)

    Omit BASE_LOCATION on Snowflake iceberg and dynamic iceberg tables when the resolved external_volume is unset or explicitly set to the reserved 'SNOWFLAKE_MANAGED' value, so managed-storage Iceberg tables no longer fail with a BASE_LOCATION compilation error

    Calls to Snowflake stored procedures that return TABLE no longer panic with a driver fatal error (#15661)

    Jinja-render semantic layer YAML (metrics, saved queries) like other schema.yml properties, excluding only metric filter and saved_queries.query_params.where, which stay verbatim for MetricFlow (#14468)

    Fix dbt State on production deployments: exclude exposures from the freshness prefetch, which generated invalid metadata SQL from their empty database and schema; honor an explicit opt-out over DBT_ENGINE_MANAGE_STATE so --no-manage-state and flags.manage_state: false take effect; and resolve dbt State on dbt compile and dbt show, which previously ignored the flag (#15374)

    Skip static analysis for custom materializations that shadow a built-in name (e.g. table, incremental), matching the existing behavior for novel-named custom materializations. Fixes malformed SQL when such a materialization guards graph.nodes introspection behind {% if execute %}.

    Databricks: detect a changed view definition so that view_update_via_alter runs ALTER VIEW ... AS before COMMENT ON COLUMN when a new column is added (#15583)

    (fix adapters/databricks) don't treat empty tokens as PATs

    Exclude the Fusion-only static_analysis config from state:modified comparisons for sources, snapshots, functions, and analyses, matching dbt-core (which has no such field)

    Restore write-barrier consumption by method name only in Time Machine semantic replay; SQL content validation happens downstream via the existing sanitizer-aware check, avoiding false-positive "no recorded event" failures for writes with legitimate dynamic content (e.g. audit-log timestamps)

    Avoid panicking on out-of-range timestamps (e.g. far-future TIMESTAMP_NTZ sentinel values) when converting Arrow timestamp arrays to Jinja values; treat them as null, consistent with other date/time converters

    [BigQuery] Allow list_relations to list relations under hidden datasets

    Use dispatch-based custom-materialization detection in the run cache (model execution type and parse-failure dependency extraction), so models whose built-in materialization is shadowed by a user-defined macro are consistently treated as custom.

    Support Snowflake TIME columns in unit test fixtures.

    Fail fast instead of hanging for 300s when dbt State needs to authenticate but no interactive terminal is available (CI, batch replay); this now surfaces as a graceful skip like other dbt State unavailability cases instead of a hard AuthFailed error

    Stop generate_*_name macros from swallowing raise_compiler_error calls (#15611)

    dbt retry now treats a warn node as retryable only when the retry invocation passes --warn-error, matching dbt-core. Previously retry always re-ran warned nodes, so a severity: warn test that kept warning was re-run on every retry and --warn-error had no effect. The 'Retrying N nodes' banner also no longer describes retried nodes as failed.

    state:modified no longer reports a phantom meta change when a config key was relocated into +meta between the previous-state manifest and the current project (e.g. by dbt-autofix, when a config key has no field on Fusion's typed config struct)

    Jinja in macro YAML properties is now evaluated once per parse instead of twice, so a description or meta value that calls something with a side effect (e.g. log()) no longer runs it twice.

    Jinja in a macro's description is now evaluated in dbt Core's restricted documentation context, so calling a project macro from a description is an error instead of being executed and inlined into the description

    A failed on-run-end hook no longer records successfully-materialized models as error in run_results.json. Models that materialized keep their success status, and each on-run-end hook is now recorded as its own operation.. node (matching dbt-core). As a result dbt retry finds nothing to retry after an on-run-end failure instead of rebuilding the entire project.

    Recognize constraints as a valid model config() key (previously rejected as an unrecognized key), matching dbt-core's behavior of accepting it without enforcing it — only the schema.yml constraints: model property is enforced. Cache-invalidation systems like dbt State/Run Cache now correctly react to constraint changes authored either way.

    Fix dbt State run-cache extraction treating a custom materialization's compiled SQL as having zero upstream dependencies when it is a bare qualified relation reference (e.g. some BigQuery custom materializations), causing the node to be skipped forever instead of being invalidated by real upstream changes

    Avoid an unnecessary speculative dbt State request when the dependency last-modified prefetch completes during view-definition traversal; readiness is re-checked at the last responsible moment so the node submits non-speculatively with resolved epochs instead.

    Report a mismatch between the dbt-cloud project-id in dbt_project.yml and ~/.dbt/dbt_cloud.yml up front, naming the project-id and pointing at the offending line, instead of failing later with a generic missing-configuration error (#14454)

    Match read-only compile-time probes such as dbt_utils.date_spine out of order during Mantle replay, and widen the Databricks probe handling

    A docs block whose name is not a valid identifier no longer discards every other docs block in the same file

    The as_bool filter now passes its value through unchanged when rendering text (SQL, macros), matching dbt-core: "true" | as_bool renders true instead of True, and an expression such as target.name in ['dev'] | as_bool — which Jinja parses as a containment check against the filtered list — no longer fails with "cannot perform a containment check on this value"

    Name the undefined argument when a config() value is undefined

    Fix timedelta.total_seconds() truncating to whole seconds, so sub-second durations no longer return 0.0. Also makes non-zero sub-second timedeltas truthy and normalizes days/seconds/microseconds and str() for negative durations, matching Python. (#15756)

    Defer semantic model relations to production when only the semantic model's YAML changed but its underlying model was not rebuilt

    Snowflake freshness prefetch (and other bulk metadata queries) now switches to a dedicated metadata warehouse once per connection instead of once per query, cutting warehouse-switch overhead for large batches

    Speed up package-qualified macro name resolution (elementary.foo, dbt_utils.bar). Membership in a package's macro list was a linear scan on every access, so the cost grew with the number of macros in the package; it is now a hash lookup. On a project using elementary (~1000 macros), this takes an on-run-end hook that iterates the graph from ~1.6x slower than dbt Core to parity. (#14455)

    Fault-isolate per-macro typecheck calls so a single macro body that panics inside the type-inference VM no longer crashes the whole parse/run

    Preserve unit test CTE closures after trailing SQL line comments.

    Report a clean, located error for a zero-argument ref() or source() instead of panicking during compilation. Because the panic happened at compile time, one malformed call previously took down parsing for every other model and macro in the project.

    Under the Hood

    Add support for dbt-databricks adapter function recordings

    Record complete lifecycle telemetry for every local tool-call attempt.

    Parse the DBT_ENGINE_USE_V2_PARSER environment variable as a recognized no-op

    Refactor CompileBaseCtx to remove the DummyConfig config slot; introduce OperationCtx and typed builders build_compile_base_ctx / build_operation_context

    state:modified config-comparison conformance - refactoring retrospective and agent instructions

    add typed flatten composition seam to node ctxs

    Complete the move from local LiteLLM to native provider routing with privacy-safe telemetry.

    Centralize BigQuery unit-test cast check in reusable TypeOps method

    add typed build_run_node_ctx seam and migrate dbt-freshness onto it

    Parse the --use-v2-parser / --no-use-v2-parser CLI flags as a recognized no-op

    Migrate Redshift dbt-auth to the standard IR/pipeline configuration architecture used by other adapters

    Replace per-struct helper functions in config DefaultTo impls with a DefaultTo trait and ReplaceIfNone marker, eliminating default_hooks, default_quoting, default_docs, default_meta_and_tags, default_classifiers, default_packages, default_column_types, and default_to_grants helpers

    AdapterResponse is now backed by a ValueMap. This paves the way to adding arbitrary keys to AdapterResponse.

    (snowflake, redshift) respect quoting configs literally when building the metadata queries

    dbt State: port DbtNodeState submission from Python to Rust

    Introduce DefaultTo trait and derive macro for config inheritance

    Standardize listify-newtype serialization by generating Serialize/Deserialize impls via macro instead of per-field serde attributes

    Add a run-cache unit test pinning that a model materialized as a built-in name (e.g. table) whose materialization macro is shadowed by a user-defined macro is classified as a custom (DBT_CUSTOM) execution type.

    dbt State: port persist_docs semantic extra

    Security

    Warn when a package tarball contains symlink, hard link, or device entries; these will stop being extracted in a future release. Also upgrade astral-tokio-tar from 0.5.6 to 0.6.4 (RUSTSEC-2026-0066, RUSTSEC-2026-0112, RUSTSEC-2026-0113, RUSTSEC-2026-0145)

    Contributors

    @@tanukifk
    @AndreaBozzo (#15280, #15280)
    @ChenyuLInx
    @HannanNaeem
    @Pavan19047 (#15385)
    @VersusFacit
    @aahel
    @aiguofer
    @ajhlee-dbt (#15544, #13600, #14631, #14635, #9923, #15611)
    @akbog (#15514, #12989)
    @arijitroy003 (#15585)
    @ash2shukla
    @b-per
    @benhurstephen (#15590)
    @chayac
    @chrispasakarnis
    @colin-rogers-dbt
    @debrin-og
    @eliasdefaria
    @erindru
    @itsannbat (##14572, #15499, #14468, #15374, #14454)
    @izeigerman
    @j-clemons (#15569, #15260)
    @jcserv
    @joshuataylor
    @katieclaiborne-duet
    @kczimm
    @kendru
    @koletzilla (#14585)
    @lottaquestions (#15756, #14455)
    @mach-kernel (#15169, #14570)
    @maxmalkin
    @mishamsk
    @mvanhorn (#14097)
    @priyankahotkar (#15378)
    @r-jais
    @ragesh-g
    @sadboy
    @serramatutu (#15494, #15464, #15464, #15661)
    @tauhid621
    @treysp
    @versusfacit (#14615)
    @vgapeyev
    @xuliangs (#15467)
    @yuwtennis
    @zhong
    @zhong-xu
    @zozo123 (#15323)

    Original source
  • Aug 7, 2026
    • Date parsed from source:
      Aug 7, 2026
    • First seen by Releasebot:
      Aug 9, 2026
    dbt logo

    dbt Core by dbt

    v2.0.0-dev.24-test-pypi

    dbt Core releases 2.0.0-dev.24.

    Release 2.0.0-dev.24

    Original source
Releasebot

Curated by the Releasebot team

Releasebot is an aggregator of official release notes from hundreds of software vendors and thousands of sources.

Our editorial process involves the manual review and audit of release notes procured with the help of automated systems.