dbt-core 1.4.0 - Alain LeRoy Locke (January 25, 2023)
Breaking Changes
- Relevant for maintainers of adapter plugins: Cleaned up exceptions to directly raise in code. Also updated the existing exception to meet PEP guidelines. Removed use of all exception functions in the code base and marked them all as deprecated to be removed next minor release. (#6339, #6393, #6460)
Features
- Added favor-state flag to optionally favor state nodes even if unselected node exists (#5016)
- Update structured logging. Convert to using protobuf messages. Ensure events are enriched with node_info. (#5610)
- incremental predicates (#5680)
- Friendlier error messages when packages.yml is malformed (#5486)
- Allow partitions in external tables to be supplied as a list (#5929)
- extend -f flag shorthand for seed command (#5990)
- This pulls the profile name from args when constructing a RuntimeConfig in lib.py, enabling the dbt-server to override the value that's in the dbt_project.yml (#6201)
- Adding tarball install method for packages. Allowing package tarball to be specified via url in the packages.yaml. (#4205)
- Added an md5 function to the base context (#6246)
- Exposures support metrics in lineage (#6057)
- Add support for Python 3.11 (#6147)
- Making timestamp optional for metrics (#6398)
- The meta configuration field is now included in the node_info property of structured logs. (#6216)
- Adds buildable selection mode (#6365)
- --warn-error-options: Treat warnings as errors for specific events, based on user configuration (#6165)
Fixes
- Account for disabled flags on models in schema files more completely (#3992)
- Add validation of enabled config for metrics, exposures and sources (#6030)
- check length of args of python model function before accessing it (#6041)
- Add functors to ensure event types with str-type attributes are initialized to spec, even when provided non-str type params. (#5436)
- Allow hooks to fail without halting execution flow (#5625)
- fix missing f-strings, convert old .format() messages to f-strings for consistency (#6241)
- Clarify Error Message for how many models are allowed in a Python file (#6245)
- Fix typo in util.py (#4904)
- After this, will be possible to use default values for dbt.config.get (#6309)
- Use full path for writing manifest (#6055)
- add pre-commit install to make dev script in Makefile (#6269)
- Late-rendering for
pre_
andpost_hook
s indbt_project.yml
(#6411) - [CT-1284] Change Python model default materialization to table (#5989)
- [CT-1591] Don't parse empty Python files (#6345)
- Repair a regression which prevented basic logging before the logging subsystem is completely configured. (#6434)
- fix docs generate --defer by adding defer_to_manifest to before_run (#6488)
- Bug when partial parsing with an empty schema file (#4850)
- Fix DBT_FAVOR_STATE env var (#5859)
- Restore historical behavior of certain disabled test messages, so that they are at the less obtrusive debug level, rather than the warning level. (#6501)
- Bump mashumuro version to get regression fix and add unit test to verify that fix. (#6428)
- Call update_event_status earlier for node results. Rename event 'HookFinished' -> FinishedRunningStats (#6571)
- Provide backward compatibility for
get_merge_sql
arguments (#6625) - Fix behavior of --favor-state with --defer (#6617)
- Include adapter_response in NodeFinished run_result log event (#6703)
Docs
- minor doc correction (dbt-docs/#5791)
- Generate API docs for new CLI interface (dbt-docs/#5528)
- (dbt-docs/#5880)
- Fix rendering of sample code for metrics (dbt-docs/#323)
- Alphabetize
core/dbt/README.md
(dbt-docs/#6368) - Updated minor typos encountered when skipping profile setup (dbt-docs/#6529)
Under the Hood
- Put black config in explicit config (#5946)
- Added flat_graph attribute the Manifest class's deepcopy() coverage (#5809)
- Add mypy configs so
mypy
passes from CLI (#5983) - Exception message cleanup. (#6023)
- Add dmypy cache to gitignore (#6028)
- Provide useful errors when the value of 'materialized' is invalid (#5229)
- Clean up string formatting (#6068)
- Fixed extra whitespace in strings introduced by black. (#1350)
- Remove the 'root_path' field from most nodes (#6171)
- Combine certain logging events with different levels (#6173)
- Convert threading tests to pytest (#5942)
- Convert postgres index tests to pytest (#5770)
- Convert use color tests to pytest (#5771)
- Add github actions workflow to generate high level CLI API docs (#5942)
- Functionality-neutral refactor of event logging system to improve encapsulation and modularity. (#6139)
- Consolidate ParsedNode and CompiledNode classes (#6383)
- Prevent doc gen workflow from running on forks (#6386)
- Fix intermittent database connection failure in Windows CI test (#6394)
- Refactor and clean up manifest nodes (#6426)
- Restore important legacy logging behaviors, following refactor which removed them (#6437)
- Treat dense text blobs as binary for
git grep
(#6294) - Prune partial parsing logging events (#6313)
- Updating the deprecation warning in the metric attributes renamed event (#6507)
- [CT-1693] Port severity test to Pytest (#6466)
- [CT-1694] Deprecate event tracking tests (#6467)
- Reorganize structured logging events to have two top keys (#6311)
- Combine some logging events (#1716, #1717, #1719)
- Check length of escaped strings in the adapter test (#6566)
Dependencies
- Update pathspec requirement from ~=0.9.0 to >=0.9,<0.11 in /core (#5917)
- Bump black from 22.8.0 to 22.10.0 (#6019)
- Bump mashumaro[msgpack] from 3.0.4 to 3.1.1 in /core (#6108)
- Update colorama requirement from <0.4.6,>=0.3.9 to >=0.3.9,<0.4.7 in /core (#6144)
- Bump mashumaro[msgpack] from 3.1.1 to 3.2 in /core (#6375)
- Update agate requirement from <1.6.4,>=1.6 to >=1.6,<1.7.1 in /core (#6506)
Contributors
- @NiallRees (#5859)
- @agpapa (#6365)
- @andy-clapson (dbt-docs/#5791)
- @callum-mcdata (#6398, #6507)
- @chamini2 (#6041)
- @daniel-murray (#5016)
- @dave-connors-3 (#5680, #5990, #6625)
- @dbeatty10 (#6411, dbt-docs/#6368, #6394, #6294, #6566)
- @devmessias (#6309)
- @eltociear (#4904)
- @eve-johns (#6068)
- @haritamar (#6246)
- @jared-rimmer (#5486)
- @josephberni (#5016)
- @joshuataylor (#6147)
- @justbldwn (#6241, #6245, #6269)
- @luke-bassett (#1350)
- @max-sixty (#5946, #5983, #6028)
- @mivanicova (#6488)
- @nshuman1 (dbt-docs/#6529)
- @paulbenschmidt (dbt-docs/#5880)
- @pgoslatara (#5929)
- @racheldaniel (#6201)
- @timle2 (#4205)
- @tmastny (#6216)
Alain LeRoy Locke (1885 – 1954)
Thanks to @matthewshaver for writing this biography of Henry George —a famous Philadelphian, and the namesake of this dbt Core release.
It requires ample fortitude and determination to be first at anything. To persevere into greatness, when many would shed blood to prevent even a modicum of success, is the pinnacle of human achievement and the origin of incredible stories throughout recorded history. To then stand in defiance of forces that hold sway over the ebb and flow of an entire nation and spark a cultural renaissance amongst its most vulnerable and exploited people is an ultimate act of humanity.
Alain (né Arthur) LeRoy Locke was born in Philadelphia in 1885 to Pliny and Mary Locke. His father died when he was only six, and his mother, an educator, became his primary influence. Locke studied at Harvard, becoming the rowing team’s first Black coxswain. He completed his studies, graduated magna cum laude, and became the first Black Rhodes Scholar. He studied at Oxford and the University of Berlin before returning home to become a teacher at Howard University (where he was dismissed for advocating equal pay). During a break from teaching, he published a book of stories, poems, and essays that would become the catalyst for the Harlem Renaissance - The New Negro: An Interpretation.
In addition to facing struggles due to his race and class, Locke was a gay man who resisted the heteronormative cultural politics of the time, making him a pariah amongst many of his contemporaries. Despite these challenges, The New Negro was widely respected, and its impact has led to him being championed as the father of the Harlem Renaissance. Locke’s passion for dispelling the stereotypes of his people had an immeasurable impact on the Civil Rights movements during the 20th century. His indelible legacy is imprinted on American culture and will continue reverberating through time.