- This file provides a full account of all changes to
dbt-core
anddbt-postgres
- Changes are listed under the (pre)release in which they first appear. Subsequent releases include changes from previous releases.
- "Breaking changes" listed under a version may require action from end users or external maintainers when upgrading to that version.
- Do not edit this file directly. This file is auto-generated using changie. For details on how to document a change, see the contributing guide
- Explicitly bind to localhost in docs serve (#10209)
- Move flags from UserConfig in profiles.yml to flags in dbt_project.yml (#9183)
- Add require_explicit_package_overrides_for_builtin_materializations to dbt_project.yml flags, which can be used to opt-out of overriding built-in materializations from packages (#10007)
- Replace usage of
Set
withList
to fix issue with index updates intermittently happening out of order (#72)
- Raise deprecation warning if installed package overrides built-in materialization (#9971)
- Remove the final underscore from secret environment variable constants. (#10052)
- Bump sqlparse to >=0.5.0, <0.6.0 to address GHSA-2m57-hf25-phgg (#9951)
- Exclude password-like fields for considering reparse (#9795)
- Restrict protobuf to 4.* versions (#9566)
- Add test for docs generate catalog with external nodes (#9481)
- Restrict protobuf to major version 4. (#9566)
- Update Jinja2 to >= 3.1.3 to address CVE-2024-22195 (#CVE-2024-22195)
- Partial parsing fix for adding groups and updating models at the same time (#8697)
- Treat SystemExit as an interrupt if raised during node execution. (#n/a)
- Catalog queries now assign the correct type to materialized views (#8864)
- Fix compilation exception running empty seed file and support new Integer agate data_type (#8895)
- Add back contract enforcement for temporary tables on postgres (#8857)
- Add version to fqn when version==0 (#8836)
- Support
fill_nulls_with
andjoin_to_timespine
for metric nodes (#8593)
- Add connection status into list of statuses for dbt debug (#8350)
- Support global flags passed in after subcommands (#6497)
- Regenerate the v10 manifest jsonschema (#8763)
- Foreign key constraint on incremental model results in Database Error (#8022)
- Support docs blocks on versioned model column descriptions (#8540)
- Enable seeds to be handled from stored manifest data (#6875)
- Override path-like args in dbt retry (#8682)
- Group updates on unmodified nodes are handled gracefully for state:modified (#8371)
- add a test for ephemeral cte injection (#8225)
- Fix tag selection for projects with semantic models (#8749)
- Add support for optional label in semantic_models, measures, dimensions and entities. (#8595)
- update dbt show to include limit in DWH query (#8496,, #8417)
- Support quoted parameter list for MultiOption CLI options. (#8598)
- Fixes test type edges filter (#8692)
- semantic models in graph selection (#8589)
- Support doc blocks in nested semantic model YAML (#8509)
- avoid double-rendering sql_header in dbt show (#8739)
- Add --no-inject-ephemeral-ctes flag for
compile
command, for usage by linting. (#8480)
- Add explicit support for integers for the show command (#8153)
- make version comparison insensitive to order (#8571)
- Fix test_numeric_values to look for more specific strings (#8470)
- Removed the FirstRunResultError and AfterFirstRunResultError event types, using the existing RunResultError in their place. (#7963)
- Accept a
dbt-cloud
config in dbt_project.yml (#8438)
- Copy dir during
dbt deps
if symlink fails (#7428, #8223) - fix ambiguous reference error for tests and versions when model name is duplicated across packages (#8327, #8493)
- Fix "Internal Error: Expected node not found in manifest" when depends_on set on ModelNodeArgs (#8506)
- Fix snapshot success message (#7583)
- Parse the correct schema version from manifest (#8544)
- Add status to Parse Inline Error (#8173)
- Fix retry not working with log-file-max-bytes (#8297)
- Detect changes to model access, version, or latest_version in state:modified (#8189)
- fix fqn-selection for external versioned models (#8374)
- Fix: DbtInternalError after model that previously ref'd external model is deleted (#8375)
- Fix using list command with path selector and project-dir (#8385)
- Remedy performance regression by only writing run_results.json once. (#8360)
- Ensure parsing does not break when
window_groupings
is not specified fornon_additive_dimension
(#8453)
- Display contract and column constraints on the model page (dbt-docs/#433)
- Display semantic model details in docs (dbt-docs/#431)
- Refactor flaky test pp_versioned_models (#7781)
- format exception from dbtPlugin.initialize (#8152)
- Update manifest v10 (#8333)
- add tracking for plugin.get_nodes calls (#8344)
- add internal flag: --no-partial-parse-file-diff to inform whether to compute a file diff during partial parsing (#8363)
- Use python version 3.10.7 in Docker image. (#8444)
- Check for existing_relation immediately prior to renaming (#7781)
- Dropped support for Python 3.7 (#7082)
- Switch from dbt-metrics to dbt-semantic-interfaces for MetricNode definitions (#7500, #7404)
- 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)
- 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
fordbt deps
anddbt 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 forpersist_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
anduse_approximate_percentile
to be non optional and default toFalse
(#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 aSemanticModel.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 ininvocation_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)
- add note before running integration tests (dbt-docs/#nothing)
- Fix for column tests not rendering on quoted columns (dbt-docs/#201)
- Fix broken links in
CONTRIBUTING.md
. (dbt-docs/#8018) - Remove static SQL codeblock for metrics (dbt-docs/#436)
- 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 populatestate_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)
- 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)
- @AndyBys (#6980)
- @NiallRees (#6051, #7941)
- @alexrosenfeld10 (#4784)
- @b-luu (#7289)
- @d-kaneshiro (#7664, #nothing)
- @damian3031 (#7845)
- @dave-connors-3 (#7738, #7915)
- @[email protected] (#7681)
- @drewbanin (#201)
- @dwreeves (#7418, #7646)
- @gem7318 (#8018)
- @iknox-fa (#7302, #7491, #7281, #NA)
- @marcodamore (#436)
- @mirnawong1 (#7789)
- @quazi-irfan (#7533)
- @rainermensing (#1880)
- @sdebruyn (#7082, #7670)
- @stu-k (#7299, #5476, #7607, #7550, #7551)
- @thomasgjerdekog (#7517)
- @tlento (#7839, #7839)
- @trouze (#7564)
- @willbryant (#7350)
For information on prior major and minor releases, see their changelogs: