dbt-core 1.12.0-b1 - May 13, 2026
Features
- Support partial parsing for function nodes (#12072)
- Add UnparsedMetricV2 to read in new-style YAML Semantic Layer Metrics. (#12157)
- Allow for defining funciton arguments with default values (#12044)
- Add directory change instruction after dbt init (#9041)
- Raise jsonschema-based deprecation warnings by default (#12240)
- π β Disable unit tests whose model is disabled (#10540)
- Implement config.meta_get and config.meta_require (#12012)
- Deprecate null return values from generate_schema_name macro, behind require_valid_schema_from_generate_schema_name flag (#12347)
- Add ability to indicate dbt Model also represents a Semantic Model. (Not fully supported yet.) (#.)
- Added ability to parse semantic layer dimensions added to columns as part of new YAML. (Not ready for use until more of the new yaml is implemented.) (#.)
- Add parsing for new YAML for semantic layer entities attached to dbt models. (#12395)
- Process semantic metrics in v2 YAML if they are not merged into a model. (#12161)
- Add parsing for v2 metrics on models and finish implementing their dependency behaviors. (#12397)
- Add the ability to process derived semantic entities to dbt models, as required by new YAML schema. (#12401)
- Enable parsing derived dimensions for v2 semantic layer YAML. (#12404)
- Add unit tests to the Jinja
graphobject, enabling tools like dbt-project-evaluator to run checks on unit tests. (#12033) - Implement agg_time_dimension for new semantic YAML. (#12410)
- Implement parsing of semantic model object-style configuration in v2 semantic YAML. (#12413)
- Implement primary_entity field for semantic models in semantic YAML v2. (#12414)
- add config.meta_get to python model parsing (#12458)
- Allow jinja suffixed extensions for markdown and sql files (#11097, #3484)
- Allow continue running child on parent error (#2142)
- Added support for vars.yml to declare project variables (#11144, #2955)
- execute dbt debug logic after creating a new project in dbt init (#12510)
- Write compiled SQL for snapshots to target/compiled/ during dbt compile (#7867)
- Add "selector" selector method (#5009)
- env vars can now be loaded from .env file (#12106)
- dbt seed now supports --empty to create the tables without loading data (#8981)
- Add catalogs.yml usage tracking (#1122)
- Add --sql flag to dbt run-operation for executing ad-hoc SQL/Jinja statements (#12478)
- support for javascript udfs (#12332)
- Allow event deferral for Parse events (#12339)
- Support overloaded UDFs via
overloadsblock in function YAML entries (#12250) - Add support for python 3.14 (#12098)
- Add
ReusedtoNodeStatusandRunStatus(#12912) - Add per-overload start and result log events for overloaded UDFs (LogStartOverload, LogOverloadResult) (#12250)
Fixes
- Address Click 8.2+ deprecation warning (#12038)
- Allow dbt deps to run when vars lack defaults in dbt_project.yml (#8913)
- Include macros in unit test parsing (#10157)
- Restore DuplicateResourceNameError for intra-project node name duplication, behind behavior flag
require_unique_project_resource_names(#12152) - Allow the usage of
functionwith--exclude-resource-typeflag (#12143) - Fix bug where schemas of functions weren't guaranteed to exist (#12142)
- π β Correctly reference foreign key references when --defer and --state provided (#11885)
- Fix generation of deprecations summary (#12146)
- π β Add exception when using --state and referring to a removed test (#10630)
- π β Stop emitting
NoNodesForSelectionCriteriathree times duringbuildcommand (#11627) - π β Fix long Python stack traces appearing when package dependencies have incompatible version requirements (#12049)
- π β Fixed issue where changing data type size/precision/scale (e.g., varchar(3) to varchar(10)) incorrectly triggered a breaking change error fo (#11186)
- π β Support unit testing models that depend on sources with the same name (#11975, #10433)
- Fix bug in partial parsing when updating a model with a schema file that is referenced by a singular test (#12223)
- π β Avoid retrying successful run-operation commands (#11850)
- π β Fix
dbt deps --add-packagecrash when packages.yml containswarn-unpinned: false(#9104) - π β Improve
dbt deps --add-packageduplicate detection with better cross-source matching and word boundaries (#12239) - π β Fix false positive deprecation warning of pre/post-hook SQL configs (#12244)
- π β Fix ref resolution within package when duplicate nodes exist, behind require_ref_searches_node_package_before_root behavior change flag (#11351)
- Ensure recent deprecation warnings include event name in message (#12264)
- Improve error message clarity when detecting nodes with space in name (#11835)
- π βPropagate exceptions for NodeFinished callbacks in dbtRunner (#11612)
- Adds omitted return statement to RuntimeConfigObject.meta_require method (#12288)
- Do not raise deprecation warning when encountering dataset or project configs for bigquery (#12285)
- Pin sqlparse <0.5.5 to avoid max tokens issue (#12303)
- Avoid deadlock edgecases of concurret microbatch/batch execution (#11420)
- Begin emitting deprecation warnings for DSI produced ValidationFutureError issues (#NA)
- Add @requires.catalogs decorator to compile command to fix REST Catalog-Linked database compilation (#12353)
- Validate and filter out non-existent columns from seed column types (#12379)
- Fix false deprecation warning (#12327)
- Return correctly resolved project path when changing dirs (#9138)
- Normalize whitespace prior to computing partial parsing checksum when loading model files (#12432)
- Dont fire config problem event if loaded_at_query is defined for adapters that dont support metadata-based freshness (#12451)
- Stop raising deprecation warnings for internal python model configs (#12314)
- Fix foreign key constraint ref() resolving to deferred relation even when target model is selected for build (#12455)
- Skip raising
CustomKeyInConfigDeprecationfor config key alias in sql (#12396) - Provide user-friendly validations that dimensions with 'validity_params' also have granularities. (#12473)
- Use resolved profile and target names to allow partial parsing for default profile and target (#7612)
- Ensure that all locked packages are installed in packages directory (#12509)
- Fix
static_analysis: offbeing interpreted as booleanfalseinstead of string"off"in manifest.json (#12015) - Set expr to column name for column-based dimensions and entities when the semantic layer name differs from the column name, so MetricFlow queries the correct warehouse column (#12512)
- Correctly map 'hidden' field of metrics to 'is_private' field in manifests. (#12518)
- Fix dbt retry for microbatch models to use the original invocation time instead of the current time when recomputing batches (#11423)
- Fix Dimension() jinja in nested metric filters (input_metrics, numerator, denominator) being incorrectly rendered during YAML parsing for v2 semantic layer schema (#12529)
- Improve logic for detecting config with missing plus prefix in dbt_project.yml (#12371)
- Fix v2 metric parsing using model name instead of custom semantic_model.name for generated_from, causing conversion metric validation to fail (#12532)
- Fix doc() Jinja in derived_semantics dimension and entity descriptions being incorrectly rendered during v2 YAML parsing (#12535)
- Enable sql_header config for data tests gated behind require_sql_header_in_test_configs behavior change flag. (#9775)
- Better error formatting for semantic manifest validation errors (#9849)
- Allow macros invoked via run-operation to ref() private and protected models (#8248)
- Better error and warnings logs with [WARNING] / [ERROR] messages prepended to the logs (#9849)
- Fix substring match bug in show and compile task selection causing models with reserved substrings in name to be incorrectly filtered (#12539)
- Add config and allow meta and docs to exist under it for macros (#12383, #9447)
DBT_ENGINEprefixed env vars picked up by CLI (#12583)- Fix state:modified not detecting .yml property changes for resource_type:function (#12547)
- Fix duplicate CTE race condition in ephemeral model compilation (#12602)
- Allow deferral for UDFs (#12080)
- Resolve full node description while running udfs for better logging (#12600)
- Update URL and name of behavior change flag for
require_ref_searches_node_package_before_root(#12324) - Raise PropertyMovedToConfigDeprecation instead of MissingArgumentsPropertyInGenericTestDeprecation (#12572)
- Fix list-type metric filters under models key being incorrectly rendered at parse time, causing 'Dimension is undefined' errors (#12618)
- Add @requires.catalogs decorator to test command to fix custom catalog integration support (#12662)
- Raise custom key in config deprecation warning for invalid config keys in dbt_project.yml (#12542)
- Fix IndexError when parsing semantic model that references a disabled or missing model (#12671)
- Support custom ref kwargs in unit tests and generic data tests, behind behavior flag
support_custom_ref_kwargs(#12148) - Fix AttributeError when docs block argument is non-constant (#12673)
- Fix AttributeError when generic test config is non-dictionary (#12674)
- handle jinja2.Undefined in msgpack_encoder (#12677)
- Fix inheritance for defaults.agg_time_dimension in semantic models. (#12678)
- Fix case-insensitive env var lookup on Windows (#10422)
- Ensure MAX_GROUPING_TOKENS and MAX_GROUPING_DEPTH default to None independently (#12694)
- Fix EISDIR error when compiling snapshots where a snapshot name matches the source filename (#12568)
- fix: guard against KeyError for custom constraints in same_contract() (#12699)
- Suppress stacktrace when snapshot validation fails due to missing strategy or unique_key (#12692)
- Fixed a bug where UDF function schema was not available in jinja context of on-run-end hook (#12516)
- fix: handle null tables value in source YAML to prevent TypeError (#12704)
- We can now enable/disable analyses from dbt_project.yml on a project level or a folder level (#11427)
- Fix "Cannot use selector" error in dbt source freshness (#12718)
- Ensure property depr checks check for aliases with plus prefix (#12327)
- Include exception message in run_results.json for run-operation failures (#12730)
- fix: exclude test_name not inherited when using selector method (#12753)
- catch InvalidFieldValue and raise ParsingError during context config generation (#12758)
- Improve partial parsing of semantic models using new-style yaml. (#12763)
- Fix regression where node.path for snapshots in subdirectories omitted the subdirectory path (#12783)
- Skip schema-time rendering of version-level data_tests so they can be rendered later with full context (#12805)
- Sources and Semantic Model now raise a warning if name contains spaces. Use REQUIRE_SOURCE_AND_SEMANTIC_MODEL_NAMES_WITHOUT_SPACES to raise errors instead. (#12767)
- Add back the removed descriptions render condition (#12865)
- Fix regression from #12562 where
dbt showanddbt compilefiltered out every result when--selectused a graph operator (+model,model+,@model) or a method selector (e.g.tag:foo,state:modified,fqn:model). The membership check ran against the raw--selectstrings, so any non-bare selector matched nothing. Filter the streamedShowNode/CompiledNodeevents by the resolved set of directly-selectedunique_ids instead, using the same selector parser dbt already uses for execution. The substring fix from #12562 (originally #12539) is preserved structurally. (#12562) - Allow column-level entity definitions in V2 semantic YAML to omit
name, falling back to the column name to match the existing dimension behavior (#DI-4133)
Docs
- Enable display of unit tests (dbt-docs/#501)
- Unit tests not rendering (dbt-docs/#506)
- Add support for Saved Query node (dbt-docs/#486)
- Fix npm security vulnerabilities as of June 2024 (dbt-docs/#513)
- Bump form-data from 3.0.1 to 3.0.4 (dbt-docs/#554)
- Add support for UDF (function) resource type in lineage graph (dbt-docs/#574)
Under the Hood
- Update schema file order test (#11869)
- Update jsonschemas for schema.yml and dbt_project.yml deprecations (#12180)
- Replace setuptools and tox with hatch for build, test, and environment management. (#12151)
- Add add_catalog_integration call even if we have a pre-existing manifest (#12262)
- Bump lower bound for dbt-common to 1.37.2 (#12284)
- sync JSON schemas from dbt-fusion (#N/A)
- Handle missing column time granularities during parsing. (#12472)
- sync JSON schemas from dbt-fusion (#N/A)
- sync JSON schemas from dbt-fusion (#N/A)
- Make test case for parsing metric filters slightly more robust. (#12528)
- sync JSON schemas from dbt-fusion (#N/A)
- Unpin sqlparse dependency, and introduce --sqlparse CLI option for configuring sqlparse limits (#12329)
- sync JSON schemas from dbt-fusion (#N/A)
- Update jsonschemas for more accurate deprecation warnings: macro.config should not warn (#12670)
- sync JSON schemas from dbt-fusion (#N/A)
- Update the naming of the jsonschema file used for project files (#NA)
- Recategorize unhandled exceptions to DbtException subclasses (#11191)
- Ensure catalogs.yml is loaded for any command that requires loading a manifest (#12705)
- sync JSON schemas from dbt-fusion (#N/A)
- Improve error message for bad semantic_model config object with disallowed fields in V2 SL YAML. (#12766)
- Improve type hinting for BaseRunner so that more type errors are caught during development (#12803)
- sync JSON schemas from dbt-fusion (#N/A)
- GenericSqlRunner (used for programmatic SQL execution via SqlCompileRunner/SqlExecuteRunner) is now a standalone class instead of inheriting from CompileRunner. This fixes a latent AttributeError in handle_exception and correctly separates the programmatic SQL execution path from the DAG runner hierarchy. (#12811)
- sync JSON schemas from dbt-fusion (#N/A)
- sync JSON schemas from dbt-fusion (#N/A)
- sync JSON schemas from dbt-fusion (#N/A)
- sync JSON schemas from dbt-fusion (#N/A)
- Drop usage of deprecated
warn_or_errorhandler method (#8133) - sync JSON schemas from dbt-fusion (#N/A)
- sync JSON schemas from dbt-fusion (#N/A)
- sync JSON schemas from dbt-fusion (#N/A)
- sync JSON schemas from dbt-fusion (#N/A)
- sync JSON schemas from dbt-fusion (#N/A)
- sync JSON schemas from dbt-fusion (#N/A)
Dependencies
- Use EventCatcher from dbt-common instead of maintaining a local copy (#12124)
- Upgrading dbt-semantic-interfaces to 0.10.x (#None)
- Bump minimum click to 8.2.0 (#12305)
- Bump DSI minimum to 0.10.2 (#NA)
- Bump dbt-protos minimum to 1.0.418 (#NA)
- Move
clickminimum to 8.3.0 (#12378) - Bump minimum version of dbt-common to 1.37.3 (#12575)
- Bump libpq-dev in Docker image from 13.23-0+deb11u1 to 13.23-0+deb11u2 to fix build failure due to superseded package version (#NA)
- Begin depending on MetricFlow instead of dbt-semantic-interfaces (#12893)
- Bump libpq-dev in Docker image from 13.23-0+deb11u2 to 13.23-0+deb11u3 to fix build failure due to superseded package version (#NA)
- Remove unused
pytest-logbookandlogbooktest dependencies from both the default andcihatch envs. dbt-core dropped its logbook-based logger in (#NA)
Contributors
- @3loka (#8913, #12124)
- @ChenyuLInx (#486)
- @MichelleArk (#12671)
- @QMalcolm (#12072, #12044, #12143, #12142, #11627, #12264, #11420, #NA, #12314, #12583, #NA, #12803, #12811, #8133, #12305, #NA, #NA, #12378, #12893)
- @Thrasi (#12547)
- @WilliamDee (#None)
- @aahel (#7867, #12478, #12250, #12250, #11423, #9775, #8248, #12148, #10422, #12568, #12783, #574)
- @abhishek09827 (#12379)
- @akshatha-code71 (#7612)
- @alexaustin007 (#12327)
- @aranke (#506, #513)
- @ash2shukla (#11097, #3484, #2142, #5009, #1122, #12339, #12098, #9138, #12451, #12396, #7612, #12509, #12371, #12383, #9447, #12080, #12600, #12542, #12718, #12327, #12805, #12865)
- @asiunov (#12146)
- @b-per (#12033, #12455, #12015, #12512)
- @chinar-amrutkar (#12692)
- @claygeo (#12730)
- @colin-rogers-dbt (#12912, #12602, #12262)
- @dbeatty10 (#12324)
- @edgarrmondragon (#12038)
- @emmyoop (#10630, #12049, #11186, #9104, #12239, #12151, #12575)
- @fa-assistant (#N/A, #N/A, #N/A, #N/A, #N/A, #N/A, #N/A, #N/A, #N/A, #N/A, #N/A, #N/A, #N/A, #N/A, #N/A, #N/A, #N/A, #N/A)
- @gshank (#12012, #501, #11869)
- @kalluripradeep (#9041, #12353, #12539, #12572)
- @mattogburke (#12223)
- @michellark (#11885)
- @michelleark (#12240, #10540, #12347, #10157, #12152, #11975, #10433, #11850, #12244, #11351, #11835, #11612, #12285, #12303, #12432, #12673, #12674, #12677, #12694, #12699, #12704, #12753, #12758, #554, #12180, #12284, #12329, #12670, #11191, #12705)
- @mjsqu (#12288)
- @nathanskone (#10157)
- @rrittsteiger (#12662)
- @sriramr98 (#11144, #2955, #12510, #12106, #8981, #12332, #9849, #9849, #12516, #11427, #12767)
- @tauhid621 (#NA, #NA, #NA)
- @tauhidanjum (#12562)
- @theyostalservice (#12157, #., #., #12395, #12161, #12397, #12401, #12404, #12410, #12413, #12414, #12473, #12518, #12529, #12532, #12535, #12618, #12678, #12763, #DI-4133, #12472, #12528, #12766)
- @venkaa28 (#12458)