dbt-core 1.10.0 - Florence Earle Coates (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 in ShowTaskDirect 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)
Florence Earle Coates (1850-1927)
Thanks to @jtcohen6 for writing this biography of Florence Earle Coates—a famous Philadelphian, and the namesake of this dbt Core release.
Florence Van Leer Earle Coates (1850-1927) was a widely published poet at the turn of the 20th century, who spent most of her life Philadelphia. Descended from and educated by prominent abolitionists, and mentored by English poet and social critic Matthew Arnold, she took as her poetical subjects nature, ancient Greece, and contemporary events (notably World War I). She also dedicated poems to other prominent authors and artists of her day.
In 1905, Coates published the poem “Helen Keller with a Rose,” after seeing a photograph of the author and disability rights activist that mesmerizes this modern viewer still:
Others may see thee; I behold thee not;
Yet most I think thee, beauteous blossom, mine:
For I, who walk in shade, like Proserpine—
Things once too briefly looked on, long forgot—
Seem by some tender miracle divine,
When breathing thee, apart,
To hold the rapturous summer warm within my heart.
We understand each other, thou and I!
Thy velvet petals laid against my cheek,
Thou feelest all the voiceless things I speak,
And to my yearning makest mute reply:
Yet a more special good of thee I seek,
For God who made—oh, kind!—
Beauty for one and all, gave fragrance for the blind!