dbt-core 1.10.0 - June 16, 2025
Breaking Changes
- Add invocations_started_at field to artifact metadata (#11272)
- Flip behavior flag
source-freshness-run-project-hooks
to true (#11609) - Flip behavior flag to disallow spaces in resource names (#11610)
Features
- Add new hard_deletes="new_record" mode for snapshots. (#10235)
- Add
batch
context object to model jinja context (#11025) - Ensure pre/post hooks only run on first/last batch respectively for microbatch model batches (#11094, #11104)
- Support "tags" in Saved Queries (#11155)
- Calculate source freshness via a SQL query (#8797)
- Add freshness definition on model for adaptive job (#11123)
- Meta config for dimensions measures and entities (#None)
- Add doc_blocks to manifest for nodes and columns (#11000, #11001)
- Initial implementation of sample mode (#11227, #11230, #11231, #11248, #11252, #11254, #11258)
- Combine
--sample
and--sample-window
CLI params (#11299) - Allow for sampling of ref'd seeds (#11300)
- Enable sample mode for 'build' command (#11298)
- Allow sampling nodes snapshots depend on and of snapshots as a dependency (#11301)
- Add opt-in validation of macro argument names and types (#11274)
- Add support for Python 3.13! (#11401)
- Support artifact upload to dbt Cloud (#11418)
- Show summaries for deprecations and add ability to toggle seeing all deprecation violation instances (#11429)
- Add behavior flag for handling all warnings via warn_error logic (#11116)
- Basic jsonschema validation of
dbt_project.yml
(#11503) - Begin checking YAML files for duplicate keys (#11296)
- Add deprecation warnings for unexpected blocks in jinja. (#11393)
- Begin validating the jsonschema of resource YAML files (#11504)
- Add deprecation warning for custom top level keys in YAML files. (#11338)
- Begin emitting deprecationw warnings for custom keys in config blocks (#11337)
- Begin emitting deprecation events for custom properties found in objects (#11336)
- Create a singular deprecations summary event (#11536)
- Deprecate --output/-o usage in source freshness (#11559)
- Deprecate usage of
include
/exclude
terminology with warn-error-options (#11557) - Support description and config.meta on groups (#11319)
- Adding Quoting to manifest metadata (#na)
- Include event names in deprecation warning messages (#11471)
- Support config on columns (#11651)
- Add file_format to catalog integration config (#11695)
- 11561 (#deprecate, #--models,--model,, #and, #-m, #flags)
Fixes
- datetime.datetime.utcnow() is deprecated as of Python 3.12 (#9791)
- dbt retry does not respect --threads (#10584)
- update adapter version messages (#10230)
- Catch DbtRuntimeError for hooks (#11012)
- Access DBUG flag more consistently with the rest of the codebase in ManifestLoader (#11068)
- Improve the performance characteristics of add_test_edges() (#10950)
- Implement partial parsing for singular data test configs in yaml files (#10801)
- Fix debug log messages for microbatch batch execution information (#11111)
- Fix running of extra "last" batch when there is only one batch (#11112)
- Fix interpretation of
PartialSuccess
to result in non-zero exit code (#11114) - Warn about invalid usages of
concurrent_batches
config (#11122) - Error writing generic test at run time (#11110)
- Run check_modified_contract for state:modified (#11034)
- Fix unrendered_config for tests from dbt_project.yml (#11146)
- Make partial parsing reparse referencing nodes of newly versioned models. (#8872)
- Ensure warning about microbatch lacking filter inputs is always fired (#11159)
- Fix microbatch dbt list --output json (#10556, #11098)
- Fix for custom fields in generic test config for not_null and unique tests (#11208)
- Allow copying asset when dbt docs command is run outside the dbt project (#9308)
- Loosen validation on freshness to accomodate previously wrong but harmless config. (#11123)
- Handle
--limit -1
properly inShowTaskDirect
so that it propagates None instead of a negative int (#None) - _get_doc_blocks is crashing parsing if .format is called (#11310)
- Fix microbatch execution to not block main thread nor hang (#11243, #11306)
- Fixes parsing errors when using the new YAML format for snapshots (#11164)
- Update ConfigFolderDirectory dir to use str. (#9768, #11305)
- Fix microbatch models couting as success when only having one batch (and that batch failing) (#11390)
- Add pre-commit installation to Docker container for testing compatibility (#11498)
- Fix duplicate macro error message with multiple macros and multiple patches (#4233)
- Fix seed path for partial parsing if project directory name changes (#11550)
- Add
pre-commit
installation to Docker container for testing compatibility (#11498) - Ensure the right key is associatd with the
CustomKeyInConfigDeprecation
deprecation (#11576) - Add tags and meta config to exposures (#11428)
- Add freshness config to sources (#11506)
- Add freshness config to models (#11506)
- require count and period on model freshness.build_after (#11669)
- Don't warn for metricflow_time_spine with non-day grain (#11690)
- Fix source freshness set via config to handle explicit nulls (#11685)
- Ensure build_after is present in model freshness in parsing, otherwise skip freshness definition (#11709)
- Ensure source node
.freshness
is equal to node's.config.freshness
(#11717) - ignore invalid model freshness configs in inline model configs (#11728)
- Fix store_failures hierarachical config parsing (#10165)
- Remove model freshness property support in favor of config level support (#11713)
Under the Hood
- Create a no-op exposure runner (#, #)
- Improve selection peformance by optimizing the select_children() and select_parents() functions. (#11099)
- Change exception type from DbtInternalException to UndefinedMacroError when macro not found in 'run operation' command (#11192)
- Create LogNodeResult event (#, #)
- Fix error counts for exposures (#, #)
- Misc fixes for group info in logging (#11218)
- Add node_checksum to node_info on structured logs (#11372)
- Parse catalogs.yml (#XPLAT-242)
- Add package 'name' to lock file (#11487)
- Allow for deprecation previews (#11597)
- Move core_types.proto into shared dbt-protos library (#11608)
- Prevent overcounting PropertyMovedToConfigDeprecation for source freshness (#11660)
Dependencies
- Upgrading dbt-semantic-interfaces to 0.8.3 for custom grain support in offset windows (#None)
- Bump codecov/codecov-action from 4 to 5 (#11009)
Contributors
- @DevonFulcher (#None)
- @Threynaud (#11068)
- @WilliamDee (#None, #None)
- @amardatar (#11164)
- @aranke (#11000, #11001, #11012, #11310, #11550, #11428, #11506, #11506, #, #, #, #, #, #, #11218, #XPLAT-242, #11660)
- @cedric-orange (#9308)
- @cmcarthur (#11608)
- @courtneyholcomb (#11690)
- @d-cole (#8872)
- @dave-connors-3 (#10230)
- @donjin-master (#10584)
- @internetcoffeephone (#10556, #11098)
- @kato1208 (#11498, #11498)
- @slothkong (#9791)
- @theyostalservice (#11155)
- @thorn14 (#9768, #11305)
- @venkaa28 (#na)