dbt Labs has released dbt Core v1.12, a dual-purpose update that improves the current tool while laying groundwork for the upcoming v2.0 major version.
The headline feature is an opt-in Rust-based parser, activated via the --use-v2-parser flag, which can speed up project parsing by 5–10x on larger projects. This parser is the same one slated for dbt Core v2.0, so teams can test compatibility early without committing to a full migration.
On the framework side, v1.12 introduces an on_error config that lets downstream models continue running after an upstream failure, addressing a community request from 2020. The default behavior remains skip_children, but setting on_error='continue' allows models to proceed when a failed upstream dependency isn't critical.
Project variables can now live in a dedicated vars.yml file at the project root, reducing clutter in dbt_project.yml and enabling variable references within project-level configuration. Additionally, a new --sql flag for dbt run-operation allows executing ad hoc SQL through dbt's Jinja context without creating a named macro.
User-defined functions (UDFs) gain several capabilities: JavaScript UDFs for Snowflake and BigQuery, Python UDFs on Databricks (Unity Catalog required), overloads for multiple argument signatures, and support for declaring public PyPI packages in Python UDF configs.
The Semantic Layer spec has been redesigned to nest semantic definitions directly within model YAML, and dbt now supports Apache Ossie documents for defining semantic models. Adapter-specific improvements include Snowflake Iceberg v3 support, BigQuery parallel microbatch execution, Redshift query_groupsession, and Databricks row filters.
Other additions include native private package installation via SSH, simplified Iceberg catalogs.yml, composable selectors, clearer error messages, and an automatic latest-version pointer for versioned models. The v1.12 release is positioned as the first step toward dbt Core v2.0, which will replace the Python runtime with the Rust-based foundation from the dbt Fusion engine.
Source: dbt Labs Blog