github dbt-labs/dbt-core v1.5.0
dbt-core v1.5.0

latest releases: v1.8.6, v1.6.18, v1.7.18...
17 months ago

dbt-core 1.5.0 - Dawn Staley (April 27, 2023)

Breaking Changes

  • 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)

Features

  • 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)

Fixes

  • 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)

Docs

Under the Hood

  • [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)

Dependencies

  • 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)

Dependency

  • 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)

Contributors


Dawn Staley (b. 1970)

Thanks to @dbeatty10 for writing this ode to Dawn Staley —a famous Philadelphian, and the namesake of this dbt Core release.

Ode to Dawn Staley, Queen of the Court
In the city of brotherly love, a legend arose,
From the halls of Dobbins Tech, her story unfolds.
A spark of talent, a fiery soul,
Dawn Staley's journey, a tale to be told.
With passion ignited, her skills honed and refined,
In the land of the Liberty Bell, a star did shine.
Through high school triumphs, her legend grew,
As Murrell Dobbins Tech watched with pride and cooed.
From the streets of Philly, to the world stage she flew,
Her athletic prowess, a flame that grew.
An Olympian, a champion, with gold medals abound,
In the annals of history, her name is now found.
With a spirit unyielding, and a heart so pure,
The mentor, the coach, with wisdom to cure.
Through her guidance and leadership, she has paved the way,
For generations of athletes, their dreams on display.
From her time on the court, to the lessons she taught,
Dawn Staley's impact, forever sought.
In the annals of basketball, her name engraved,
A testament to her legacy, so lovingly saved.
O Dawn Staley, a titan of the game,
A beacon of hope, through trials and pain.
We honor your journey, your unyielding fight,
And may your story inspire, through day and through night.

Don't miss a new dbt-core release

NewReleases is sending notifications on new releases.