Skip to content

dbt-core v1.9.0

Compare
Choose a tag to compare
@github-actions github-actions released this 09 Dec 18:04

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 and dbt 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 and limit fields to saved queries. (#10531)
  • Add support for behavior flags (#10618)
  • Enable --resource-type and --exclude-resource-type CLI flags and environment variables for dbt 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 of warn_error_options via dbt_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 for dbt list and dbt 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 from 0 to 1 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 where event_time column is a date (#10868)
  • Handle exceptions in get_execution_status more broadly to better ensure run_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

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 with ResourceTypeSelector (#10718)
  • Standardize returning ResourceTypeSelector instances in dbt list and dbt 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


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.