Skip to content

dbt-core v1.6.0

Compare
Choose a tag to compare
@github-actions github-actions released this 31 Jul 16:00

dbt-core 1.6.0 - Quiara Alegría Hudes (July 31, 2023)

Breaking Changes

  • Dropped support for Python 3.7 (#7082)
  • Switch from dbt-metrics to dbt-semantic-interfaces for MetricNode definitions (#7500, #7404)

Features

  • Add merge as valid incremental strategy for postgres (#1880)
  • Skip catalog generation (#6980)
  • Add support for materialized views (#6911)
  • Publication artifacts and cross-project ref (#7227)
  • Optimize template rendering for common parse scenarios (#7449)
  • Add graph structure summaries to target path output (#7357)
  • Allow duplicate manifest node (models, seeds, analyses, snapshots) names across packages (#7446)
  • Detect breaking changes to enforced constraints (#7065)
  • Check for project dependency cycles (#7468)
  • nodes in packages respect custom generate_alias_name, generate_schema_name, generate_database_name macro overrides defined in packages (#7444)
  • Added warnings for model and ref deprecations (#7433)
  • Update drop_relation macro to allow for configuration of drop statement separately from object name (#7625)
  • accept publications in dbt.invoke (#7372)
  • Enable state for deferral to be separate from state for selectors (#7300)
  • add access selection syntax (#7738)
  • add project_name to manifest metadata (#7752)
  • dbt retry (#7299)
  • This change adds new selector methods to the state selector. Namely, state:unmodified and state:old. (#7564)
  • Revamp debug, add --connection flag. Prepare for future refactors/interface changes. (#7104)
  • Validate public models are not materialized as ephemeral (#7226)
  • Added support for parsing and serializaing semantic models (#7499, #7503)
  • Enable setting packages in dependencies.yml (#7372, #7736)
  • Add AdapterRegistered event log message (#7038)
  • dbt clone (#7258)
  • Further integrate semantic models into the DAG and partial parsing module (#7800)
  • Handle external model nodes in state:modified (#7563)
  • Add invocation_command to flags (#6051)
  • Add thread_id context var (#7941)
  • Add partial parsing support for semantic models (#7897)
  • Add restrict-access to dbt_project.yml (#7713)
  • allow setting enabled and depends_on_nodes from ModelNodeArgs (#7506)
  • Support '_'-delimited fqn matching for versioned models and matching on Path.stem for path selection (#7639)
  • Store time_spline table configuration in semantic manifest (#7938)
  • Add validate_sql method to BaseAdapter with implementation for SQLAdapter (#7839)
  • Support validation of metrics and semantic models. (#7969)
  • Begin populating depends_on of metric nodes (#7854)
  • Enumerate supported materialized view features for dbt-postgres (#6911)

Fixes

  • Raise better error message when dispatching a package that is not installed (#5801)
  • add negative part_number arg for split part macro (#7915)
  • Persist timing info in run results for failed nodes (#5476)
  • fix typo in unpacking statically parsed ref (#7364)
  • safe version attribute access in _check_resource_uniqueness (#7375)
  • Fix dbt command missing target-path param ([# 7411](https://github.com/dbt-labs/dbt-core/issues/ 7411))
  • Fix CTE insertion position when the model uses WITH RECURSIVE (#7350)
  • Fix v0 ref resolution (#7408)
  • Add --target-path to dbt snapshot command. (#7418)
  • dbt build selection of tests' descendants (#7289)
  • fix groupable node partial parsing, raise DbtReferenceError at runtime for safety (#7437)
  • Fix partial parsing of latest_version changes for downstream references (#7369)
  • Use "add_node" to update depends_on.nodes (#7453)
  • Fix var precedence in configs: root vars override package vars (#6705)
  • Constraint rendering fixes: wrap check expression in parentheses, foreign key 'references', support expression in all constraint types (#7417, #7480, #7416)
  • Fix inverted --print/--no-print flag (#7517)
  • Back-compat for previous return type of 'collect_freshness' macro (#7489)
  • Fix warning messages for deprecated dbt_project.yml configs (#7424)
  • Respect column 'quote' config in model contracts (#7370)
  • print model version in dbt show if specified (#7407)
  • enable dbt show for seeds (#7273)
  • push down limit filtering to adapter (#7390)
  • Allow missing profiles.yml for dbt deps and dbt init (#7511)
  • run_results.json is now written after every node completes. (#7302)
  • Do not rewrite manifest.json during 'docs serve' command (#7553)
  • Pin protobuf to greater than 4.0.0 (#7565)
  • inject sql header in query for show (#7413)
  • Pin urllib3 to ~=1.0 (#7573)
  • Throw error for duplicated versioned and unversioned models (#7487)
  • Honor --skip-profile-setup parameter when inside an existing project (#7594)
  • Fix: Relative project paths weren't working with deps (#7491)
  • Exclude password fields from Jinja rendering. (#7629)
  • Add --target-path to more CLI subcommands (#7646)
  • Stringify flag paths for Jinja context (#7495)
  • write run_results.json for run operation (#7502)
  • Add % to adapter suite test cases for persist_docs (#7698)
  • Unified to UTC (#7664)
  • Improve warnings for constraints and materialization types (#7335)
  • Incorrect paths used for "target" and "state" directories (#7465)
  • fix StopIteration error when publication for project not found (#7711)
  • Using version 0 works when resolving single model (#7372)
  • Fix empty --warn-error-options error message (#7730)
  • send sql header on contract enforcement (#7714)
  • Fixed doc link in selector.py (#7533)
  • Fix null-safe equals comparison via equals (#7778)
  • Log PublicationArtifactAvailable even when partially parsing unchanged public models (#7782)
  • fix RuntimeError when removing project dependency from dependencies.yml (#7743)
  • Fix regression in run-operation to not require the name of the package to run (#7753)
  • Fix path selector when using project-dir (#7819)
  • Allow project dependencies to use miscellaneous keys (#7497)
  • Allow dbt show --inline preview of private models (#7837)
  • Updating this error message to point to the correct URL (#7789)
  • Update SemanticModel node to properly impelment the DSI 0.1.0dev3 SemanticModel protocol spec (#7833, #7827)
  • Allow semantic model measure exprs to be defined with ints and bools in yaml (#7865)
  • Update use_discrete_percentile and use_approximate_percentile to be non optional and default to False (#7866)
  • Fix accidental propagation of log messages to root logger. (#7872)
  • Fixed an issue which blocked debug logging to stdout with --log-level debug, unless --debug was also used. (#7872)
  • Skip jinja parsing of metric filters (#7864)
  • Fix a bad implicit string conversion regression in debug --config-dir code. (#7774)
  • Remove limitation on use of sqlparse 0.4.4 (#7515)
  • Fix UninstalledPackagesFoundError error message to use correct packages specified path (#7921)
  • Fix: safe remove of external nodes from nodes.depends_on (#7924)
  • Fix query comment tests (#7845)
  • Move project_root contextvar into events.contextvars (#7937)
  • add access to ModelNodeArgs for external node building (#7890)
  • Inline query emit proper error message (#7940)
  • Fix typo in ModelNodeArgs (#7991)
  • Allow on_schema_change = fail for contracted incremental models (#7975)
  • Nicer error message if model with enforced contract is missing 'columns' specification (#7943)
  • include 'v' in ModelNodeArgs.unique_id (#8039)
  • Fix fail-fast behavior (including retry) (#7785)
  • Remove create_metric as a SemanticModel.Measure property because it currently doesn't do anything (#8064)
  • Remove VOLUME declaration within Dockerfile (#4784)
  • Fix Dockerfile.test (#7352)
  • Detect breaking contract changes to versioned models (#8030)
  • Update DryRunMethod test classes ValidateSqlMethod naming (#7839)
  • Fix typo in NonAdditiveDimension implementation (#8088)
  • Copy target_schema from config into snapshot node (#6745)
  • Enable converting deprecation warnings to errors (#8130)
  • Ensure warn_error_options get serialized in invocation_args_dict (#7694)
  • Stop detecting materialization macros based on macro name (#6231)
  • Improve handling of CTE injection with ephemeral models (#8213)
  • Fix unbound local variable error in checked_agg_time_dimension_for_measure (#8230)
  • Ensure runtime errors are raised for graph runnable tasks (compile, show, run, etc) (#8166)

Docs

Under the Hood

  • Update docs link in ContractBreakingChangeError message (#7366)
  • Reduce memory footprint of cached statement results. (#7281)
  • Remove noisy parsing events: GenericTestFileParse, MacroFileParse, Note events for static model parsing (#6671)
  • Update --help text for cache-related parameters (#7381)
  • Small UX improvements to model versions: Support defining latest_version in unsuffixed file by default. Notify on unpinned ref when a prerelease version is available. (#7443)
  • Add ability to instantiate Flags class from dict (#7607)
  • Add other relation to reffable nodes (#7550)
  • Move node patch method to schema parser patch_node_properties and refactor schema parsing (#7430)
  • Remove legacy file logger code (#NA)
  • Break up integration tests as a short term fix for Windows CI runs (#7668)
  • Include null checks in utils test base (#7670)
  • Write pub artifact to log (#7372)
  • Fix flaky test for --fail-fast (#7744)
  • Create add_from_artifact to populate state_relation field of nodes (#7551)
  • Replace space with underscore in NodeType strings (#7841)
  • Upgrade to dbt-semantic-interfaces v0.1.0dev5 (#7853)
  • Refactoring: consolidating public_nodes and nodes (#7890)
  • Resolve SemanticModel ref is the same way as other refs (#7822)
  • Move from dbt-semantic-intefaces 0.1.0dev5 to 0.1.0dev7 (#7898)
  • Don't jinja render packages from dependencies.yml (#7905)
  • Update mashumaro to 3.8.1 (#7950)
  • Refactor: entry point for cross-project ref (#7954)
  • Populate metric input measures (#7884)
  • Add option to specify partial parse file (#7911)
  • Add semantic_models to resource counts (#8077)
  • A way to control maxBytes for a single dbt.log file (#8199)

Dependencies

  • Bump mypy from 0.981 to 1.0.1 (#7027)
  • Bump ubuntu from 23.04 to 23.10 (#7675)
  • (#7681)
  • Pin click>=8.1.1,<8.1.4 (#8050)
  • Bump dbt-semantic-interfaces to ~=0.1.0rc1 (#8082)
  • Update pin for click<9 (#8232)
  • Add upper bound to sqlparse pin of <0.5 (#8236)
  • Support dbt-semantic-interfaces 0.2.0 (#8250)

Contributors


Quiara Alegría Hudes (b. 1977)

Thanks to @graciegoheen for writing this biography of Quiara Alegría Hudes—a famous Philadelphian, and the namesake of this dbt Core release.

Quiara Alegría Hudes is a Pulitzer Prize-winning playwright from West Philadelphia. Originally trained as a composter at Yale, her musical influences span two disparate spheres - the classical music education of an Ivy League university, and the Afro-Caribbean music that was a staple of her childhood home. Unable to reconcile the two in traditional composition, she turned to playwriting, a childhood hobby, earning her MFA in playwriting from Brown under the tutelage of Paula Vogel.

While at Brown, she began writing Elliot, a Soldier’s Fugue - the first part of her famous trilogy, containing Water by the Spoonful which won the Pulitzer Prize in 2012. After her initial success as a playwright, she collaborated with Lin-Manuel Miranda, writing the book for In the Heights which went on to win the Tony for Best Musical. She since made her debut in film as the screenwriter for the adaptation of In the Heights and the animated movie Vivo.

As a way to humanize and give visibility to incarcerated authors, Hudes and her cousin founded Emancipated Stories which helps inmates share one-page stories about their life to the rest of the world.