github dbt-labs/dbt-core v1.12.0b1
dbt-core v1.12.0b1

pre-release6 hours ago

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 graph object, 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 overloads block in function YAML entries (#12250)
  • Add support for python 3.14 (#12098)
  • Add Reused to NodeStatus and RunStatus (#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 function with --exclude-resource-type flag (#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 NoNodesForSelectionCriteria three times during build command (#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-package crash when packages.yml contains warn-unpinned: false (#9104)
  • πŸ› β›„ Improve dbt deps --add-package duplicate 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 CustomKeyInConfigDeprecation for 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: off being interpreted as boolean false instead 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_ENGINE prefixed 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 show and dbt compile filtered out every result when --select used 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 --select strings, so any non-bare selector matched nothing. Filter the streamed ShowNode / CompiledNode events by the resolved set of directly-selected unique_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

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_error handler 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 click minimum 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-logbook and logbook test dependencies from both the default and ci hatch envs. dbt-core dropped its logbook-based logger in (#NA)

Contributors

Don't miss a new dbt-core release

NewReleases is sending notifications on new releases.