Feature1.12.0b1
dbt-core v1.12.0b1
dbt-core 1.12.0 beta 1 adds extensive semantic layer v2 YAML support, function overloading and partial parsing improvements, new selector methods, environment variable loading from .env files, and numerous bug fixes across unit testing, dependency resolution, and deprecation handling.
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)
semantic-layerfunctionsparsingtestingcli
Source: original entry β