dbt-core 1.9.0 - Dr. Susan La Flesche Picotte (December 09, 2024)
Breaking Changes
- Fix changing the current working directory when using dpt deps, clean and init. (#8997)
Features
- Parseable JSON and text output in quiet mode for
dbt show
anddbt compile
(#9840) - serialize inferred primary key (#9824)
- Add unit_test: selection method (#10053)
- Maximally parallelize dbt clone in clone command" (#7914)
- Add --host flag to dbt docs serve, defaulting to '127.0.0.1' (#10229)
- Update data_test to accept arbitrary config options (#10197)
- add pre_model and post_model hook calls to data and unit tests to be able to provide extra config options (#10198)
- add --empty value to jinja context as flags.EMPTY (#10317)
- Warning message for snapshot timestamp data types (#10234)
- Support cumulative_type_params & sub-daily granularities in semantic manifest. (#10360)
- Add time_granularity to metric spec. (#10376)
- Support standard schema/database fields for snapshots (#10301)
- Support ref and source in foreign key constraint expressions, bump dbt-common minimum to 1.6 (#8062)
- Support new semantic layer time spine configs to enable sub-daily granularity. (#10475)
- Add
order_by
andlimit
fields to saved queries. (#10531) - Add support for behavior flags (#10618)
- Enable
--resource-type
and--exclude-resource-type
CLI flags and environment variables fordbt test
(#10656) - Allow configuring snapshot column names (#10185)
- Add custom_granularities to YAML spec for time spines. (#9265)
- Add basic functionality for creating microbatch incremental models (#9490, #10635, #10637, #10638, #10636, #10662, #10639)
- Execute microbatch models in batches (#10700)
- Create 'skip_nodes_if_on_run_start_fails' behavior change flag (#7387)
- Allow snapshots to be defined in YAML. (#10246)
- Write microbatch compiled/run targets to separate files, one per batch (#10714)
- Track incremental_strategy as part of model_run tracking event (#10761)
- Support required 'begin' config for microbatch models (#10701)
- Parse-time validation of microbatch configs: require event_time, batch_size, lookback and validate input event_time (#10709)
- Added the --inline-direct parameter to 'dbt show' (#10770)
- Enable specification of dbt_valid_to for current records (#10187)
- Enable
retry
support for microbatch models (#10715, #10729) - Use unrendered database and schema source properties during state:modified, behind state_modified_compare_more_unrendered_values behavoiur flag (#9573)
- Ensure microbatch models respect
full_refresh
model config (#10785) - Adds validations for custom_granularities to ensure unique naming. (#9265)
- Enable use of multi-column unique key in snapshots (#9992)
- Change gating of microbatch feature to be behind project flag / behavior flag (#10798)
- Ensure
--event-time-start
is before--event-time-end
(#10786) - Ensure microbatch models use same
current_time
value (#10819) - Emit warning when microbatch model has no input with
event_time
config (#10926) - Emit debug logging event whenever artifacts are written (#10937)
- Support --empty for snapshots (#10372)
- Add new hard_deletes="new_record" mode for snapshots. (#10235)
- Allow microbatch batches to run in parallel (#10853, #10855)
- 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)
Fixes
- Remove unused check_new method (#7586)
- Test case for
merge_exclude_columns
(#8267) - Convert "Skipping model due to fail_fast" message to DEBUG level (#8774)
- Restore previous behavior for --favor-state: only favor defer_relation if not selected in current command" (#10107)
- Unit test fixture (csv) returns null for empty value (#9881)
- Fix json format log and --quiet for ls and jinja print by converting print call to fire events (#8756)
- Add resource type to saved_query (#10168)
- Fix: Order-insensitive unit test equality assertion for expected/actual with multiple nulls (#10167)
- Renaming or removing a contracted model should raise a BreakingChange warning/error (#10116)
- prefer disabled project nodes to external node (#10224)
- Fix issues with selectors and inline nodes (#8943, #9269)
- Fix snapshot config to work in yaml files (#4000)
- Improve handling of error when loading schema file list (#10284)
- Use model alias for the CTE identifier generated during ephemeral materialization (#5273)
- Implement state:modified for saved queries (#10294)
- Saved Query node fail during skip (#10029)
- DOn't warn on
unit_test
config paths that are properly used (#10311) - Fix setting
silence
ofwarn_error_options
viadbt_project.yaml
flags (#10160) - Attempt to provide test fixture tables with all values to set types correctly for comparisong with source tables (#10365)
- Limit data_tests deprecation to root_project (#9835)
- CLI flags should take precedence over env var flags (#10304)
- Fix typing for artifact schemas (#10442)
- Fix over deletion of generated_metrics in partial parsing (#10450)
- Fix error constructing warn_error_options (#10452)
- Do not update varchar column definitions if a contract exists (#10362)
- fix all_constraints access, disabled node parsing of non-uniquely named resources (#10509)
- respect --quiet and --warn-error-options for flag deprecations (#10105)
- Propagate measure label when using create_metrics (#10536)
- Fix state:modified check for exports (#10138)
- Filter out empty nodes after graph selection to support consistent selection of nodes that depend on upstream public models (#8987)
- Late render pre- and post-hooks configs in properties / schema YAML files (#10603)
- Allow the use of env_var function in certain macros in which it was previously unavailable. (#10609)
- Remove deprecation for tests: to data_tests: change (#10564)
- Fix
--resource-type test
fordbt list
anddbt build
(#10730) - Fix unit tests for incremental model with alias (#10754)
- Allow singular tests to be documented in properties.yml (#9005)
- Ignore --empty in unit test ref/source rendering (#10516)
- Ignore rendered jinja in configs for state:modified, behind state_modified_compare_more_unrendered_values behaviour flag (#9564)
- Improve performance of infer primary key (#10781)
- Pass test user config to adapter pre_hook by explicitly adding test builder config to node (#10484)
- Attempt to skip saved query processing when no semantic manifest changes (#10563)
- Ensure dbt retry of microbatch models doesn't lose prior successful state (#10800)
- override materialization python models (#8520)
- Handle edge cases when a specified
--event-time-end
is equivalent to the batch size truncated batch start time (#10824) - Begin tracking execution time of microbatch model batches (#10825)
- Support disabling unit tests via config. (#9109, #10540)
- Allow instances of generic data tests to be documented (#2578)
- Fix warnings for models referring to a deprecated model (#10833)
- Change
lookback
default from0
to1
to ensure better data completeness (#10867) - Make
--event-time-start
and--event-time-end
mutually required (#10874) - Ensure KeyboardInterrupt/SystemExit halts microbatch model execution (#10862)
- Exclude hook result from results in on-run-end context (#7387)
- unit tests with versioned refs (#10880, #10528, #10623)
- Implement partial parsing for all-yaml snapshots (#10903)
- Restore source quoting behaviour when quoting config provided in dbt_project.yml (#10892)
- Fix bug when referencing deprecated models (#10915)
- Fix 'model' jinja context variable type to dict (#10927)
- Take
end_time
for batches to the ceiling to handle edge case whereevent_time
column is a date (#10868) - Handle exceptions in
get_execution_status
more broadly to better ensurerun_results.json
gets written (#10934) - Fix 'no attribute .config' error when ref-ing a microbatch model from non-Model context (#10928)
- Ensure inferred primary_key is a List[str] with no null values (#10983)
- Correct when custom microbatch macro deprecation warning is fired (#10994)
- Validate manifest has group_map during group_lookup init (#10988)
- Fix plural of 'partial success' in log message (#10999)
- Emit batch-level exception with node_info on microbatch batch run failure (#10840)
- Fix restrict-access to not apply within a package (#10134)
- Make microbatch models skippable (#11021)
- Catch DbtRuntimeError for hooks (#11012)
- Access DBUG flag more consistently with the rest of the codebase in ManifestLoader (#11068)
- Implement partial parsing for singular data test configs in yaml files (#10801)
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)
Under the Hood
- Clear error message for Private package in dbt-core (#10083)
- Enable use of context in serialization (#10093)
- Make RSS high water mark measurement more accurate on Linux (#10177)
- Enable record filtering by type. (#10240)
- Remove IntermediateSnapshotNode (#10326)
- Additional logging for skipped ephemeral models (#10389)
- bump black to 24.3.0 (#10454)
- generate protos with protoc version 5.26.1 (#10457)
- Move from minimal-snowplow-tracker fork back to snowplow-tracker (#8409)
- Add group info to RunResultError, RunResultFailure, RunResultWarning log lines (#)
- Improve speed of tree traversal when finding children, increasing build speed for some selectors (#10434)
- Add test for sources tables with quotes (#10582)
- Additional type hints for
core/dbt/version.py
(#10612) - Fix typing issues in core/dbt/contracts/sql.py (#10614)
- Fix type errors in
dbt/core/task/clean.py
(#10616) - Add Snowplow tracking for behavior flag deprecations (#10552)
- Add test utility patch_microbatch_end_time for adapters testing (#10713)
- Replace
TestSelector
withResourceTypeSelector
(#10718) - Standardize returning
ResourceTypeSelector
instances indbt list
anddbt build
(#10739) - Add group metadata info to LogModelResult and LogTestResult (#10775)
- Remove support and testing for Python 3.8, which is now EOL. (#10861)
- Behavior change for mf timespine without yaml configuration (#10959)
- Behavior change for cumulative metric type param (#10960)
- Upgrade protobuf (#10658)
Dependencies
- Remove logbook dependency (#8027)
- Increase supported version range for dbt-semantic-interfaces. Needed to support custom calendar features. (#9265)
- Bump minimnum allowed dbt-adapters version to 1.8.0 (#N/A)
- Bump minimum dbt-adapters version to 1.9.0 (#10996)
Security
- Explicitly bind to localhost in docs serve (#10209)
Contributors
- @DevonFulcher (#10959, #10960)
- @McKnight-42 (#10197, #10198)
- @Threynaud (#11068)
- @TowardOliver (#10656)
- @aliceliu (#10536, #10138)
- @courtneyholcomb (#10360, #10376, #10475, #9265, #9265, #9265)
- @danlsn (#10915)
- @dave-connors-3 (#9824)
- @devmessias (#8520, #10880, #10528, #10623)
- @jeancochrane (#5273)
- @katsugeneration (#10754)
- @kevinneville (#7586)
- @nakamichiworks (#10442)
- @plypaul (#10531)
- @rariyama (#8997)
- @scottgigante,nevdelap (#8774)
- @tsturge (#9109, #10540)
- @ttusing (#10434)
Dr. Susan La Flesche Picotte (1865 - 1915)
Thanks to @QMalcolm for writing this biography of Dr. Susan La Flesche Picotte—a famous Philadelphian, and the namesake of this dbt Core release.
Dr. Susan La Flesche Picotte (1865 - 1915) of the Omaha tribe was a trailblazer to say the least. Dr. Susan, as her community called her, is most often remembered as being the first Native American woman to earn a medical degree. In 1886 she began attending the Woman’s Medical College of Pennsylvania (now part of Drexel University), and in 1889 graduated as valedictorian of her class.
After graduating from WMCP, Dr. Susan La Flesche Picotte returned to the Omaha reservation where she dedicated her life to her community. Not only did she provide medical care, treating 1,300 patients over her career and building a hospital, but she often also acted as a lawyer, accountant, and political representative for her community. She advocated for temperance, improved hygiene, and combatting the spread of tuberculosis. She defended Omaha land interests, initially by writing letters the Commissioner of the Indian Office for others, and eventually traveling to Washington, D.C. to petition the Office of Indian Affairs for assistance. She is remembered for her unending dedication to the Omaha people.