dbt-core 1.10.0-b1 - March 12, 2025
Breaking Changes
- Add invocations_started_at field to artifact metadata (#11272)
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)
Fixes
- 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)
- 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)
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 secondary profiles to profile.py (#XPLAT-241)
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)