- 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
- Restrict protobuf to 4.* versions (#9566)
- Restrict protobuf to major version 4. (#9566)
- Update Jinja2 to >= 3.1.3 to address CVE-2024-22195 (#CVE-2024-22195)
- Add back contract enforcement for temporary tables on postgres (#8857)
- Support global flags passed in after subcommands (#6497)
- 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)
- Group updates on unmodified nodes are handled gracefully for state:modified (#8371)
- Accept a
dbt-cloud
config in dbt_project.yml (#8438)
- Fix snapshot success message (#7583)
- update dbt show to include limit in DWH query (#8496,, #8417)
- Support quoted parameter list for MultiOption CLI options. (#8598)
- avoid double-rendering sql_header in dbt show (#8739)
- Use python version 3.10.7 in Docker image. (#8444)
- Copy target_schema from config into snapshot node (#6745)
- Add status to Parse Inline Error (#8173)
- Fix using list command with path selector and project-dir (#8385)
- A way to control maxBytes for a single dbt.log file (#8199)
- Ensure
warn_error_options
get serialized ininvocation_args_dict
(#7694) - Improve handling of CTE injection with ephemeral models (#8213)
- Refactor flaky test pp_versioned_models (#7781)
- Add --target-path to more CLI subcommands (#7646)
- Remove limitation on use of sqlparse 0.4.4 (#7515)
- Move project_root contextvar into events.contextvars (#7937)
- Inline query emit proper error message (#7940)
- Allow on_schema_change = fail for contracted incremental models (#7975)
- Nicer error message if model with enforced contract is missing 'columns' specification (#7943)
- Detect breaking contract changes to versioned models (#8030)
- Pin click>=7.0,<8.1.4 (#8050)
- Add --target-path to dbt snapshot command. (#7418)
- Constraint rendering fixes: wrap check expression in parentheses, foreign key 'references', support expression in all constraint types (#7417, #7480, #7416)
- Fix warning messages for deprecated dbt_project.yml configs (#7424)
- Respect column 'quote' config in model contracts (#7370)
- Improve warnings for constraints and materialization types (#7335)
- Incorrect paths used for "target" and "state" directories (#7465)
- Using version 0 works when resolving single model (#7372)
- Fix empty --warn-error-options error message (#7730)
- send sql header on contract enforcement (#7714)
- Fix path selector when using project-dir (#7819)
- Allow dbt show --inline preview of private models (#7837)
- Updating this error message to point to the correct URL (#7789)
- fix typo in unpacking statically parsed ref (#7364)
- Fix inverted
--print/--no-print
flag (#7517) - Back-compat for previous return type of 'collect_freshness' macro (#7489)
- print model version in dbt show if specified (#7407)
- Allow missing
profiles.yml
fordbt deps
anddbt init
(#7511) - Do not rewrite manifest.json during 'docs serve' command (#7553)
- Pin protobuf to greater than 4.0.0 (#7565)
- Throw error for duplicated versioned and unversioned models (#7487)
- Fix: Relative project paths weren't working with deps (#7491)
- Fall back if rendering the password field fails. (#7629)
- Stringify flag paths for Jinja context (#7495)
- Remove legacy file logger code (#NA)
- Allow
--select
and--exclude
multiple times (#7158) - Specifying "log-path" and "target-path" in "dbt_project.yml" is deprecated. This functionality will be removed in a future version of dbt-core. If you need to specify a custom path for logs or artifacts, please set via CLI flag or env var instead. (#6882)
- Remove exception functions marked as deprecated in 1.4 release (#6578)
- Data type constraints are now native to SQL table materializations. Enforce columns are specific data types and not null depending on database functionality. (#6079)
- Have dbt debug spit out structured json logs with flags enabled. (#5353)
- ✨ add unix-style wildcard selector method (#6598)
- add adapter_response to dbt test and freshness result (#2964)
- add support for DBT_PROJECT_DIR env var (#6078)
- Improve error message for packages missing
dbt_project.yml
(#6663) - Make project version optional (#6603)
- Adjust makefile to have clearer instructions for CI env var changes. (#6689)
- Stand-alone Python module for PostgresColumn (#6772)
- Enable diff based partial parsing (#6592)
- Exposure owner requires one of name or email keys, and accepts additional arbitrary keys (#6833)
- Parse 'group' resource (#6921)
- parse 'group' config on groupable nodes (#6823)
- Implemented new log cli parameters for finer-grained control. (#6639)
- Add access attribute to parsed nodes (#6824)
- Enforce contracts on models materialized as tables, views, and incremental (#6751, #7034, #6756, #7154)
- Add ability to select by group resource (#6825)
- Disallow refing private model across groups (#6826)
- make version configs optional (#7054)
- [CT-1584] New top level commands: interactive compile (#6358)
- Make model contracts agnostic to ordering (#6975, #7064)
- Unified constraints and check_constraints properties for columns and models (#7066)
- Switch from betterproto to google protobuf and enable more flexible meta dictionary in logs (#6832)
- Ignore duplicate edges in subgraph to speed up dbt build (#7191)
- Support setting of callbacks for programmatic uses of
dbtRunner
(#6763) - Detect breaking changes to contracts in state:modified check (#6869)
- New command: dbt show (#7207, #7179, #6359)
- Added prettier printing to ContractError class (#7209)
- Add support for model-level constraints (#6754)
- model versions (##7263)
- Add relation info (database, schema, alias) to node_info dictionary in structured logging (#6724)
- Add --no-populate-cache to optionally skip relation cache population (#1751)
- select resources by patch path (#7315)
- Add version selector method (#7199)
- Remove trailing slashes from source paths (#6102) (#6102)
- add merge_exclude_columns adapter tests (#6699)
- Include adapter_response in NodeFinished run_result log event (#6703)
- Sort cli vars before hashing for partial parsing (#6710)
- [Regression] exposure_content referenced incorrectly (#6738)
- Snapshot strategies: add a newline for subquery (#6781)
- Remove pin on packaging and stop using it for prerelease comparisons (#6834)
- Readd depends_on.macros to SeedNode, to support seeds with hooks calling macros (#6806)
- Fix regression of --quiet cli parameter behavior (#6749)
- Add double type to list of float column types for the column class (#6876)
- Ensure results from hooks contain nodes when processing them (#6796)
- Always flush stdout after logging (#6901)
- Reapply logging fixes which were accidentally reverted (#6936)
- Set relation_name in test nodes at compile time (#6930)
- Readd initialization events, --log-cache-events in new CLI (#6933)
- Fix previous state tests and disabled exposures, metrics (#6752, #6753)
- Make use of hashlib.md5() FIPS compliant (#6900)
- add timeout for dbt --version command (#6992)
- Fix compilation logic for ephemeral nodes (#6885)
- Fix semver comparison logic by ensuring numeric values (#7039)
- add pytz dependency (#7077)
- allow adapters to change model name resolution in py models (#7114)
- Add exception handling in postflight decorator to address exit codes (#7010)
- Recreates missing tracking events (#6097, #6098)
- Fix partial parsing error due to not requiring "version" (#7236)
- Handle internal exceptions (#7118)
- Improved failed event serialization handling and associated tests (#7113, #7108, #6568)
- Fix handling of artifacts in read_and_check_versions (#7252)
- Stringify datetimes in logging for prettier messages (#7255)
- avoid dbtRunner default callbacks being shared across instances (#7278)
- Ensure same_contract is called for state:modified (#7282)
- Avoid revoking grants for views when
copy_grants=true
(#7280) - Duplicated flags now throw errors instead of being overidden by parent-level flag (#6913)
- Ensure that invocation_id changes between programmatic invocations. (#7197)
- Adding a new column is not a breaking contract change (#7332)
- fix versioned model selection in subdirectories (#7348)
- 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 v0 ref resolution (#7408)
- fix groupable node partial parsing, raise DbtReferenceError at runtime for safety (#7437)
- Fix partial parsing of latest_version changes for downstream references (#7369)
- Improve displayed message under "Arguments" section for argumentless macro (dbt-docs/#358)
- update link to installation instructions (dbt-docs/#None)
- Fix JSON path to overview docs (dbt-docs/#366)
- Searchable column descriptions (dbt-docs/#140, dbt-docs/#322, dbt-docs/#369)
- Add access property to model details (dbt-docs/#381)
- Display model owner by name and email (dbt-docs/#377)
- Add view of public models sorted by group to left navigation (dbt-docs/#379)
- Distiguish node "access" in the DAG with node borders & opacity. (dbt-docs/#378)
- Fix JSON path to package overview docs (dbt-docs/#390)
- Add selection by group to DAG (dbt-docs/#380)
- Add support for model versions (dbt-docs/#406)
- [CT-921] dbt compile works in click (#5545)
- Fix use of ConnectionReused logging event (#6168)
- Port docs tests to pytest (#6573)
- Update deprecated github action command (#6153)
- dbt snapshot works in click (#5554)
- dbt list working with click (#5549)
- Add dbt run-operation to click CLI (#5552)
- dbt build working with new click framework (#5541)
- dbt docs generate works with new click framework (#5543)
- Replaced the EmptyLine event with a more general Formatting event, and added a Note event. (#6481)
- Small optimization on manifest parsing benefitting large DAGs (#6697)
- Revised and simplified various structured logging events (#6664, #6665, #6666)
- dbt init works with click (#5548)
- [CT-920][CT-1900] Create Click CLI runner and use it to fix dbt docs commands (#5544, #6722)
- Migrate debug task to click (#5546)
- Optimized GraphQueue to remove graph analysis bottleneck in large dags. (#6759)
- Implement --version for click cli (#6757)
- [CT-1841] Convert custom target test to Pytest (#6638)
- Remove BigQuery-specific btye abbreviations (#6741)
- warn_error/warn_error_options mutual exclusivity in click (#6579)
- Enables the new Click Cli on the commandline! 🚀 (#6784)
- Lazily call --version (#6812)
- Moving simple_seed to adapter zone to help adapter test conversions (#CT-1959)
- flags.THREADS defaults to None (#6887)
- Fixing target type exposure error (#6928)
- Test binary serialization of logging events (#6852)
- Treat contract config as a python object (#6748, #7184)
- Add deprecation warning for DBT_NO_PRINT (#6960)
- Make output_keys click param multi-option instead of a string (#6676)
- Remove cli doc generation workflow (#7088)
- Move validation of group earlier (#7087)
- Deprecate additional environment variables (#6903)
- Add CommandCompleted event, and fire it upon completion of every command (#6878)
- Improves build times for common selections by improving subgraph calculation (#7195)
- Remove upper pin for hologram/jsonschema (#6775)
- Generalize constraint compatibility warnings (#7067)
- Add kwargs support to dbtRunner (#7070)
- Add unique_id to ShowNode and CompiledNode logging events (#7305)
- Prettify message for ListRelations event (#7310)
Parse
now returns manifest when invoked via dbtRunner (#6547)- Track data about group, access, contract, version usage (#7170, #7171)
- Update docs link in ContractBreakingChangeError message (#7366)
- 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)
- Update pathspec requirement from <0.11,>=0.9 to >=0.9,<0.12 in /core (#6737)
- Bump ubuntu from 22.04 to 23.04 (#6865)
- Revert hoisting dbt.cli.main into the dbt.name namespace (#)
- Bump python from 3.11.1-slim-bullseye to 3.11.2-slim-bullseye in /docker (#7196)
- Bump black from 22.12.0 to 23.3.0 (#7243)
- Bump mashumaro[msgpack] from 3.3.1 to 3.6 (#7294)
- Bump mypy from 0.971 to 0.981 (#4904)
- Bump python from 3.10.7-slim-bullseye to 3.11.1-slim-bullseye in /docker (#4904)
- Bump black from 22.10.0 to 22.12.0 (#4904)
- @@ttusing (#7195)
- @Goodkat (#6992)
- @MartinGuindon (#358)
- @MatthieuBlais (#7191)
- @RobbertDM (#6781)
- @aezomz (#2964)
- @benallard (#7294)
- @boxysean (#6697)
- @callum-mcdata (#6928)
- @chamini2 (#7278)
- @dave-connors-3 (#7054, #7315, #6699)
- @davidbloss (#6153)
- @halvorlu (#366)
- @jmg-duarte (#6102)
- @kentkr (#7209)
- @leo-schick (#6078)
- @nielspardon (#6900)
- @rlh1994 (#6876, #390)
- @ryancharris (#None)
- @sdebruyn (#7077)
- @seub (#6603)
- @sungchun12 (#6079)
- @z3z1ma (#6598)
For information on prior major and minor releases, see their changelogs: