mirror of
https://github.com/dbt-labs/dbt-core
synced 2025-12-20 22:41:27 +00:00
Compare commits
12 Commits
enable-pos
...
v1.5.0rc2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
1b6cf1a67f | ||
|
|
1d24e94e5d | ||
|
|
437870eb13 | ||
|
|
dee5e70a06 | ||
|
|
f0530e66b3 | ||
|
|
faa279d38d | ||
|
|
c1f3cc1f13 | ||
|
|
d6526b037c | ||
|
|
ffb5a8ff37 | ||
|
|
a67c14ee87 | ||
|
|
9ffe2647ee | ||
|
|
06437df286 |
@@ -1,5 +1,5 @@
|
|||||||
[bumpversion]
|
[bumpversion]
|
||||||
current_version = 1.5.0b5
|
current_version = 1.5.0rc2
|
||||||
parse = (?P<major>[\d]+) # major version number
|
parse = (?P<major>[\d]+) # major version number
|
||||||
\.(?P<minor>[\d]+) # minor version number
|
\.(?P<minor>[\d]+) # minor version number
|
||||||
\.(?P<patch>[\d]+) # patch version number
|
\.(?P<patch>[\d]+) # patch version number
|
||||||
|
|||||||
@@ -1,80 +0,0 @@
|
|||||||
## dbt-core 1.5.0-b1 - February 17, 2023
|
|
||||||
|
|
||||||
### 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](https://github.com/dbt-labs/dbt-core/issues/6079))
|
|
||||||
- Have dbt debug spit out structured json logs with flags enabled. ([#5353](https://github.com/dbt-labs/dbt-core/issues/5353))
|
|
||||||
- add adapter_response to dbt test and freshness result ([#2964](https://github.com/dbt-labs/dbt-core/issues/2964))
|
|
||||||
- Improve error message for packages missing `dbt_project.yml` ([#6663](https://github.com/dbt-labs/dbt-core/issues/6663))
|
|
||||||
- Adjust makefile to have clearer instructions for CI env var changes. ([#6689](https://github.com/dbt-labs/dbt-core/issues/6689))
|
|
||||||
- Stand-alone Python module for PostgresColumn ([#6772](https://github.com/dbt-labs/dbt-core/issues/6772))
|
|
||||||
- Exposure owner requires one of name or email keys, and accepts additional arbitrary keys ([#6833](https://github.com/dbt-labs/dbt-core/issues/6833))
|
|
||||||
- Parse 'group' resource ([#6921](https://github.com/dbt-labs/dbt-core/issues/6921))
|
|
||||||
|
|
||||||
### Fixes
|
|
||||||
|
|
||||||
- add merge_exclude_columns adapter tests ([#6699](https://github.com/dbt-labs/dbt-core/issues/6699))
|
|
||||||
- Include adapter_response in NodeFinished run_result log event ([#6703](https://github.com/dbt-labs/dbt-core/issues/6703))
|
|
||||||
- Sort cli vars before hashing for partial parsing ([#6710](https://github.com/dbt-labs/dbt-core/issues/6710))
|
|
||||||
- [Regression] exposure_content referenced incorrectly ([#6738](https://github.com/dbt-labs/dbt-core/issues/6738))
|
|
||||||
- Remove pin on packaging and stop using it for prerelease comparisons ([#6834](https://github.com/dbt-labs/dbt-core/issues/6834))
|
|
||||||
- Readd depends_on.macros to SeedNode, to support seeds with hooks calling macros ([#6806](https://github.com/dbt-labs/dbt-core/issues/6806))
|
|
||||||
- Fix regression of --quiet cli parameter behavior ([#6749](https://github.com/dbt-labs/dbt-core/issues/6749))
|
|
||||||
- Ensure results from hooks contain nodes when processing them ([#6796](https://github.com/dbt-labs/dbt-core/issues/6796))
|
|
||||||
- Always flush stdout after logging ([#6901](https://github.com/dbt-labs/dbt-core/issues/6901))
|
|
||||||
- Reapply logging fixes which were accidentally reverted ([#6936](https://github.com/dbt-labs/dbt-core/issues/6936))
|
|
||||||
- Set relation_name in test nodes at compile time ([#6930](https://github.com/dbt-labs/dbt-core/issues/6930))
|
|
||||||
- Readd initialization events, --log-cache-events in new CLI ([#6933](https://github.com/dbt-labs/dbt-core/issues/6933))
|
|
||||||
- Fix previous state tests and disabled exposures, metrics ([#6752](https://github.com/dbt-labs/dbt-core/issues/6752), [#6753](https://github.com/dbt-labs/dbt-core/issues/6753))
|
|
||||||
- Make use of hashlib.md5() FIPS compliant ([#6900](https://github.com/dbt-labs/dbt-core/issues/6900))
|
|
||||||
|
|
||||||
### Docs
|
|
||||||
|
|
||||||
- update link to installation instructions ([dbt-docs/#None](https://github.com/dbt-labs/dbt-docs/issues/None))
|
|
||||||
- Fix JSON path to overview docs ([dbt-docs/#366](https://github.com/dbt-labs/dbt-docs/issues/366))
|
|
||||||
- Searchable column descriptions ([dbt-docs/#140](https://github.com/dbt-labs/dbt-docs/issues/140), [dbt-docs/#322](https://github.com/dbt-labs/dbt-docs/issues/322), [dbt-docs/#369](https://github.com/dbt-labs/dbt-docs/issues/369))
|
|
||||||
|
|
||||||
### Under the Hood
|
|
||||||
|
|
||||||
- [CT-921] dbt compile works in click ([#5545](https://github.com/dbt-labs/dbt-core/issues/5545))
|
|
||||||
- Fix use of ConnectionReused logging event ([#6168](https://github.com/dbt-labs/dbt-core/issues/6168))
|
|
||||||
- Port docs tests to pytest ([#6573](https://github.com/dbt-labs/dbt-core/issues/6573))
|
|
||||||
- Update deprecated github action command ([#6153](https://github.com/dbt-labs/dbt-core/issues/6153))
|
|
||||||
- dbt snapshot works in click ([#5554](https://github.com/dbt-labs/dbt-core/issues/5554))
|
|
||||||
- dbt list working with click ([#5549](https://github.com/dbt-labs/dbt-core/issues/5549))
|
|
||||||
- Add dbt run-operation to click CLI ([#5552](https://github.com/dbt-labs/dbt-core/issues/5552))
|
|
||||||
- dbt build working with new click framework ([#5541](https://github.com/dbt-labs/dbt-core/issues/5541))
|
|
||||||
- dbt docs generate works with new click framework ([#5543](https://github.com/dbt-labs/dbt-core/issues/5543))
|
|
||||||
- Replaced the EmptyLine event with a more general Formatting event, and added a Note event. ([#6481](https://github.com/dbt-labs/dbt-core/issues/6481))
|
|
||||||
- Small optimization on manifest parsing benefitting large DAGs ([#6697](https://github.com/dbt-labs/dbt-core/issues/6697))
|
|
||||||
- Revised and simplified various structured logging events ([#6664](https://github.com/dbt-labs/dbt-core/issues/6664), [#6665](https://github.com/dbt-labs/dbt-core/issues/6665), [#6666](https://github.com/dbt-labs/dbt-core/issues/6666))
|
|
||||||
- dbt init works with click ([#5548](https://github.com/dbt-labs/dbt-core/issues/5548))
|
|
||||||
- [CT-920][CT-1900] Create Click CLI runner and use it to fix dbt docs commands ([#5544](https://github.com/dbt-labs/dbt-core/issues/5544), [#6722](https://github.com/dbt-labs/dbt-core/issues/6722))
|
|
||||||
- Migrate debug task to click ([#5546](https://github.com/dbt-labs/dbt-core/issues/5546))
|
|
||||||
- Optimized GraphQueue to remove graph analysis bottleneck in large dags. ([#6759](https://github.com/dbt-labs/dbt-core/issues/6759))
|
|
||||||
- Implement --version for click cli ([#6757](https://github.com/dbt-labs/dbt-core/issues/6757))
|
|
||||||
- [CT-1841] Convert custom target test to Pytest ([#6638](https://github.com/dbt-labs/dbt-core/issues/6638))
|
|
||||||
- Remove BigQuery-specific btye abbreviations ([#6741](https://github.com/dbt-labs/dbt-core/issues/6741))
|
|
||||||
- warn_error/warn_error_options mutual exclusivity in click ([#6579](https://github.com/dbt-labs/dbt-core/issues/6579))
|
|
||||||
- Enables the new Click Cli on the commandline! 🚀 ([#6784](https://github.com/dbt-labs/dbt-core/issues/6784))
|
|
||||||
- Lazily call --version ([#6812](https://github.com/dbt-labs/dbt-core/issues/6812))
|
|
||||||
- Moving simple_seed to adapter zone to help adapter test conversions ([#CT-1959](https://github.com/dbt-labs/dbt-core/issues/CT-1959))
|
|
||||||
- flags.THREADS defaults to None ([#6887](https://github.com/dbt-labs/dbt-core/issues/6887))
|
|
||||||
- Fixing target type exposure error ([#6928](https://github.com/dbt-labs/dbt-core/issues/6928))
|
|
||||||
- Test binary serialization of logging events ([#6852](https://github.com/dbt-labs/dbt-core/issues/6852))
|
|
||||||
|
|
||||||
### Dependencies
|
|
||||||
|
|
||||||
- Bump ubuntu from 22.04 to 23.04 ([#6865](https://github.com/dbt-labs/dbt-core/pull/6865))
|
|
||||||
- Revert hoisting dbt.cli.main into the dbt.name namespace ([#](https://github.com/dbt-labs/dbt-core/pull/))
|
|
||||||
|
|
||||||
### Contributors
|
|
||||||
- [@aezomz](https://github.com/aezomz) ([#2964](https://github.com/dbt-labs/dbt-core/issues/2964))
|
|
||||||
- [@boxysean](https://github.com/boxysean) ([#6697](https://github.com/dbt-labs/dbt-core/issues/6697))
|
|
||||||
- [@callum-mcdata](https://github.com/callum-mcdata) ([#6928](https://github.com/dbt-labs/dbt-core/issues/6928))
|
|
||||||
- [@dave-connors-3](https://github.com/dave-connors-3) ([#6699](https://github.com/dbt-labs/dbt-core/issues/6699))
|
|
||||||
- [@davidbloss](https://github.com/davidbloss) ([#6153](https://github.com/dbt-labs/dbt-core/issues/6153))
|
|
||||||
- [@halvorlu](https://github.com/halvorlu) ([#366](https://github.com/dbt-labs/dbt-core/issues/366))
|
|
||||||
- [@nielspardon](https://github.com/nielspardon) ([#6900](https://github.com/dbt-labs/dbt-core/issues/6900))
|
|
||||||
- [@ryancharris](https://github.com/ryancharris) ([#None](https://github.com/dbt-labs/dbt-core/issues/None))
|
|
||||||
- [@sungchun12](https://github.com/sungchun12) ([#6079](https://github.com/dbt-labs/dbt-core/issues/6079))
|
|
||||||
@@ -1,40 +0,0 @@
|
|||||||
## dbt-core 1.5.0-b2 - March 01, 2023
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
- Make project version optional ([#6603](https://github.com/dbt-labs/dbt-core/issues/6603))
|
|
||||||
- parse 'group' config on groupable nodes ([#6823](https://github.com/dbt-labs/dbt-core/issues/6823))
|
|
||||||
- Implemented new log cli parameters for finer-grained control. ([#6639](https://github.com/dbt-labs/dbt-core/issues/6639))
|
|
||||||
- Add access attribute to parsed nodes ([#6824](https://github.com/dbt-labs/dbt-core/issues/6824))
|
|
||||||
- Add ability to select by group resource ([#6825](https://github.com/dbt-labs/dbt-core/issues/6825))
|
|
||||||
- Disallow refing private model across groups ([#6826](https://github.com/dbt-labs/dbt-core/issues/6826))
|
|
||||||
|
|
||||||
### Fixes
|
|
||||||
|
|
||||||
- Remove trailing slashes from source paths (#6102) ([#6102](https://github.com/dbt-labs/dbt-core/issues/6102))
|
|
||||||
- Fix compilation logic for ephemeral nodes ([#6885](https://github.com/dbt-labs/dbt-core/issues/6885))
|
|
||||||
- Fix semver comparison logic by ensuring numeric values ([#7039](https://github.com/dbt-labs/dbt-core/issues/7039))
|
|
||||||
- add pytz dependency ([#7077](https://github.com/dbt-labs/dbt-core/issues/7077))
|
|
||||||
|
|
||||||
### Docs
|
|
||||||
|
|
||||||
- Improve displayed message under "Arguments" section for argumentless macro ([dbt-docs/#358](https://github.com/dbt-labs/dbt-docs/issues/358))
|
|
||||||
- Add access property to model details ([dbt-docs/#381](https://github.com/dbt-labs/dbt-docs/issues/381))
|
|
||||||
- Display model owner by name and email ([dbt-docs/#377](https://github.com/dbt-labs/dbt-docs/issues/377))
|
|
||||||
- Add view of public models sorted by group to left navigation ([dbt-docs/#379](https://github.com/dbt-labs/dbt-docs/issues/379))
|
|
||||||
|
|
||||||
### Under the Hood
|
|
||||||
|
|
||||||
- Rename "constraint_enabled" to "contract" ([#6748](https://github.com/dbt-labs/dbt-core/issues/6748))
|
|
||||||
- Make output_keys click param multi-option instead of a string ([#6676](https://github.com/dbt-labs/dbt-core/issues/6676))
|
|
||||||
- Move validation of group earlier ([#7087](https://github.com/dbt-labs/dbt-core/issues/7087))
|
|
||||||
|
|
||||||
### Dependency
|
|
||||||
|
|
||||||
- Bump mypy from 0.971 to 0.981 ([#4904](https://github.com/dbt-labs/dbt-core/issues/4904))
|
|
||||||
|
|
||||||
### Contributors
|
|
||||||
- [@MartinGuindon](https://github.com/MartinGuindon) ([#358](https://github.com/dbt-labs/dbt-core/issues/358))
|
|
||||||
- [@jmg-duarte](https://github.com/jmg-duarte) ([#6102](https://github.com/dbt-labs/dbt-core/issues/6102))
|
|
||||||
- [@sdebruyn](https://github.com/sdebruyn) ([#7077](https://github.com/dbt-labs/dbt-core/issues/7077))
|
|
||||||
- [@seub](https://github.com/seub) ([#6603](https://github.com/dbt-labs/dbt-core/issues/6603))
|
|
||||||
@@ -1,5 +0,0 @@
|
|||||||
## dbt-core 1.5.0-b3 - March 02, 2023
|
|
||||||
|
|
||||||
### Under the Hood
|
|
||||||
|
|
||||||
- Remove cli doc generation workflow ([#7088](https://github.com/dbt-labs/dbt-core/issues/7088))
|
|
||||||
@@ -1,39 +0,0 @@
|
|||||||
## dbt-core 1.5.0-b4 - March 16, 2023
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
- ✨ add unix-style wildcard selector method ([#6598](https://github.com/dbt-labs/dbt-core/issues/6598))
|
|
||||||
- add support for DBT_PROJECT_DIR env var ([#6078](https://github.com/dbt-labs/dbt-core/issues/6078))
|
|
||||||
- Enable diff based partial parsing ([#6592](https://github.com/dbt-labs/dbt-core/issues/6592))
|
|
||||||
- Enforce contracts on models materialized as tables and views ([#6751](https://github.com/dbt-labs/dbt-core/issues/6751), [#7034](https://github.com/dbt-labs/dbt-core/issues/7034), [#6756](https://github.com/dbt-labs/dbt-core/issues/6756))
|
|
||||||
- make version configs optional ([#7054](https://github.com/dbt-labs/dbt-core/issues/7054))
|
|
||||||
- [CT-1584] New top level commands: interactive compile ([#6358](https://github.com/dbt-labs/dbt-core/issues/6358))
|
|
||||||
|
|
||||||
### Fixes
|
|
||||||
|
|
||||||
- allow adapters to change model name resolution in py models ([#7114](https://github.com/dbt-labs/dbt-core/issues/7114))
|
|
||||||
|
|
||||||
### Docs
|
|
||||||
|
|
||||||
- Distiguish node "access" in the DAG with node borders & opacity. ([dbt-docs/#378](https://github.com/dbt-labs/dbt-docs/issues/378))
|
|
||||||
- Fix JSON path to package overview docs ([dbt-docs/#390](https://github.com/dbt-labs/dbt-docs/issues/390))
|
|
||||||
- Add selection by group to DAG ([dbt-docs/#380](https://github.com/dbt-labs/dbt-docs/issues/380))
|
|
||||||
|
|
||||||
### Under the Hood
|
|
||||||
|
|
||||||
- Add deprecation warning for DBT_NO_PRINT ([#6960](https://github.com/dbt-labs/dbt-core/issues/6960))
|
|
||||||
|
|
||||||
### Dependencies
|
|
||||||
|
|
||||||
- Update pathspec requirement from <0.11,>=0.9 to >=0.9,<0.12 in /core ([#6737](https://github.com/dbt-labs/dbt-core/pull/6737))
|
|
||||||
|
|
||||||
### Dependency
|
|
||||||
|
|
||||||
- Bump python from 3.10.7-slim-bullseye to 3.11.1-slim-bullseye in /docker ([#4904](https://github.com/dbt-labs/dbt-core/issues/4904))
|
|
||||||
- Bump black from 22.10.0 to 22.12.0 ([#4904](https://github.com/dbt-labs/dbt-core/issues/4904))
|
|
||||||
|
|
||||||
### Contributors
|
|
||||||
- [@dave-connors-3](https://github.com/dave-connors-3) ([#7054](https://github.com/dbt-labs/dbt-core/issues/7054))
|
|
||||||
- [@leo-schick](https://github.com/leo-schick) ([#6078](https://github.com/dbt-labs/dbt-core/issues/6078))
|
|
||||||
- [@rlh1994](https://github.com/rlh1994) ([#390](https://github.com/dbt-labs/dbt-core/issues/390))
|
|
||||||
- [@z3z1ma](https://github.com/z3z1ma) ([#6598](https://github.com/dbt-labs/dbt-core/issues/6598))
|
|
||||||
@@ -1,33 +0,0 @@
|
|||||||
## dbt-core 1.5.0-b5 - March 30, 2023
|
|
||||||
|
|
||||||
### Breaking Changes
|
|
||||||
|
|
||||||
- Allow `--select` and `--exclude` multiple times ([#7158](https://github.com/dbt-labs/dbt-core/issues/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](https://github.com/dbt-labs/dbt-core/issues/6882))
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
- Make model contracts agnostic to ordering ([#6975](https://github.com/dbt-labs/dbt-core/issues/6975), [#7064](https://github.com/dbt-labs/dbt-core/issues/7064))
|
|
||||||
- Unified constraints and check_constraints properties for columns and models ([#7066](https://github.com/dbt-labs/dbt-core/issues/7066))
|
|
||||||
- Switch from betterproto to google protobuf and enable more flexible meta dictionary in logs ([#6832](https://github.com/dbt-labs/dbt-core/issues/6832))
|
|
||||||
- Ignore duplicate edges in subgraph to speed up dbt build ([#7191](https://github.com/dbt-labs/dbt-core/issues/7191))
|
|
||||||
- Support setting of callbacks for programmatic uses of `dbtRunner` ([#6763](https://github.com/dbt-labs/dbt-core/issues/6763))
|
|
||||||
- Detect breaking changes to contracts in state:modified check ([#6869](https://github.com/dbt-labs/dbt-core/issues/6869))
|
|
||||||
|
|
||||||
### Fixes
|
|
||||||
|
|
||||||
- add timeout for dbt --version command ([#6992](https://github.com/dbt-labs/dbt-core/issues/6992))
|
|
||||||
- Add exception handling in postflight decorator to address exit codes ([#7010](https://github.com/dbt-labs/dbt-core/issues/7010))
|
|
||||||
- Recreates missing tracking events ([#6097](https://github.com/dbt-labs/dbt-core/issues/6097), [#6098](https://github.com/dbt-labs/dbt-core/issues/6098))
|
|
||||||
- Fix partial parsing error due to not requiring "version" ([#7236](https://github.com/dbt-labs/dbt-core/issues/7236))
|
|
||||||
|
|
||||||
### Under the Hood
|
|
||||||
|
|
||||||
- Treat contract config as a python object ([#6748](https://github.com/dbt-labs/dbt-core/issues/6748), [#7184](https://github.com/dbt-labs/dbt-core/issues/7184))
|
|
||||||
- Deprecate additional environment variables ([#6903](https://github.com/dbt-labs/dbt-core/issues/6903))
|
|
||||||
- Add CommandCompleted event, and fire it upon completion of every command ([#6878](https://github.com/dbt-labs/dbt-core/issues/6878))
|
|
||||||
- Remove upper pin for hologram/jsonschema ([#6775](https://github.com/dbt-labs/dbt-core/issues/6775))
|
|
||||||
|
|
||||||
### Contributors
|
|
||||||
- [@Goodkat](https://github.com/Goodkat) ([#6992](https://github.com/dbt-labs/dbt-core/issues/6992))
|
|
||||||
- [@MatthieuBlais](https://github.com/MatthieuBlais) ([#7191](https://github.com/dbt-labs/dbt-core/issues/7191))
|
|
||||||
181
.changes/1.5.0-rc1.md
Normal file
181
.changes/1.5.0-rc1.md
Normal file
@@ -0,0 +1,181 @@
|
|||||||
|
## dbt-core 1.5.0-rc1 - April 13, 2023
|
||||||
|
|
||||||
|
### Breaking Changes
|
||||||
|
|
||||||
|
- Allow `--select` and `--exclude` multiple times ([#7158](https://github.com/dbt-labs/dbt-core/issues/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](https://github.com/dbt-labs/dbt-core/issues/6882))
|
||||||
|
- Remove exception functions marked as deprecated in 1.4 release ([#6578](https://github.com/dbt-labs/dbt-core/issues/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](https://github.com/dbt-labs/dbt-core/issues/6079))
|
||||||
|
- Have dbt debug spit out structured json logs with flags enabled. ([#5353](https://github.com/dbt-labs/dbt-core/issues/5353))
|
||||||
|
- ✨ add unix-style wildcard selector method ([#6598](https://github.com/dbt-labs/dbt-core/issues/6598))
|
||||||
|
- add adapter_response to dbt test and freshness result ([#2964](https://github.com/dbt-labs/dbt-core/issues/2964))
|
||||||
|
- add support for DBT_PROJECT_DIR env var ([#6078](https://github.com/dbt-labs/dbt-core/issues/6078))
|
||||||
|
- Improve error message for packages missing `dbt_project.yml` ([#6663](https://github.com/dbt-labs/dbt-core/issues/6663))
|
||||||
|
- Make project version optional ([#6603](https://github.com/dbt-labs/dbt-core/issues/6603))
|
||||||
|
- Adjust makefile to have clearer instructions for CI env var changes. ([#6689](https://github.com/dbt-labs/dbt-core/issues/6689))
|
||||||
|
- Stand-alone Python module for PostgresColumn ([#6772](https://github.com/dbt-labs/dbt-core/issues/6772))
|
||||||
|
- Enable diff based partial parsing ([#6592](https://github.com/dbt-labs/dbt-core/issues/6592))
|
||||||
|
- Exposure owner requires one of name or email keys, and accepts additional arbitrary keys ([#6833](https://github.com/dbt-labs/dbt-core/issues/6833))
|
||||||
|
- Parse 'group' resource ([#6921](https://github.com/dbt-labs/dbt-core/issues/6921))
|
||||||
|
- parse 'group' config on groupable nodes ([#6823](https://github.com/dbt-labs/dbt-core/issues/6823))
|
||||||
|
- Implemented new log cli parameters for finer-grained control. ([#6639](https://github.com/dbt-labs/dbt-core/issues/6639))
|
||||||
|
- Add access attribute to parsed nodes ([#6824](https://github.com/dbt-labs/dbt-core/issues/6824))
|
||||||
|
- Enforce contracts on models materialized as tables, views, and incremental ([#6751](https://github.com/dbt-labs/dbt-core/issues/6751), [#7034](https://github.com/dbt-labs/dbt-core/issues/7034), [#6756](https://github.com/dbt-labs/dbt-core/issues/6756), [#7154](https://github.com/dbt-labs/dbt-core/issues/7154))
|
||||||
|
- Add ability to select by group resource ([#6825](https://github.com/dbt-labs/dbt-core/issues/6825))
|
||||||
|
- Disallow refing private model across groups ([#6826](https://github.com/dbt-labs/dbt-core/issues/6826))
|
||||||
|
- make version configs optional ([#7054](https://github.com/dbt-labs/dbt-core/issues/7054))
|
||||||
|
- [CT-1584] New top level commands: interactive compile ([#6358](https://github.com/dbt-labs/dbt-core/issues/6358))
|
||||||
|
- Make model contracts agnostic to ordering ([#6975](https://github.com/dbt-labs/dbt-core/issues/6975), [#7064](https://github.com/dbt-labs/dbt-core/issues/7064))
|
||||||
|
- Unified constraints and check_constraints properties for columns and models ([#7066](https://github.com/dbt-labs/dbt-core/issues/7066))
|
||||||
|
- Switch from betterproto to google protobuf and enable more flexible meta dictionary in logs ([#6832](https://github.com/dbt-labs/dbt-core/issues/6832))
|
||||||
|
- Ignore duplicate edges in subgraph to speed up dbt build ([#7191](https://github.com/dbt-labs/dbt-core/issues/7191))
|
||||||
|
- Support setting of callbacks for programmatic uses of `dbtRunner` ([#6763](https://github.com/dbt-labs/dbt-core/issues/6763))
|
||||||
|
- Detect breaking changes to contracts in state:modified check ([#6869](https://github.com/dbt-labs/dbt-core/issues/6869))
|
||||||
|
- New command: dbt show ([#7207](https://github.com/dbt-labs/dbt-core/issues/7207), [#7179](https://github.com/dbt-labs/dbt-core/issues/7179), [#6359](https://github.com/dbt-labs/dbt-core/issues/6359))
|
||||||
|
- Added prettier printing to ContractError class ([#7209](https://github.com/dbt-labs/dbt-core/issues/7209))
|
||||||
|
- Add support for model-level constraints ([#6754](https://github.com/dbt-labs/dbt-core/issues/6754))
|
||||||
|
- model versions ([##7263](https://github.com/dbt-labs/dbt-core/issues/#7263))
|
||||||
|
- Add relation info (database, schema, alias) to node_info dictionary in structured logging ([#6724](https://github.com/dbt-labs/dbt-core/issues/6724))
|
||||||
|
- Add --no-populate-cache to optionally skip relation cache population ([#1751](https://github.com/dbt-labs/dbt-core/issues/1751))
|
||||||
|
- select resources by patch path ([#7315](https://github.com/dbt-labs/dbt-core/issues/7315))
|
||||||
|
- Add version selector method ([#7199](https://github.com/dbt-labs/dbt-core/issues/7199))
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
|
||||||
|
- Remove trailing slashes from source paths (#6102) ([#6102](https://github.com/dbt-labs/dbt-core/issues/6102))
|
||||||
|
- add merge_exclude_columns adapter tests ([#6699](https://github.com/dbt-labs/dbt-core/issues/6699))
|
||||||
|
- Include adapter_response in NodeFinished run_result log event ([#6703](https://github.com/dbt-labs/dbt-core/issues/6703))
|
||||||
|
- Sort cli vars before hashing for partial parsing ([#6710](https://github.com/dbt-labs/dbt-core/issues/6710))
|
||||||
|
- [Regression] exposure_content referenced incorrectly ([#6738](https://github.com/dbt-labs/dbt-core/issues/6738))
|
||||||
|
- Snapshot strategies: add a newline for subquery ([#6781](https://github.com/dbt-labs/dbt-core/issues/6781))
|
||||||
|
- Remove pin on packaging and stop using it for prerelease comparisons ([#6834](https://github.com/dbt-labs/dbt-core/issues/6834))
|
||||||
|
- Readd depends_on.macros to SeedNode, to support seeds with hooks calling macros ([#6806](https://github.com/dbt-labs/dbt-core/issues/6806))
|
||||||
|
- Fix regression of --quiet cli parameter behavior ([#6749](https://github.com/dbt-labs/dbt-core/issues/6749))
|
||||||
|
- Add double type to list of float column types for the column class ([#6876](https://github.com/dbt-labs/dbt-core/issues/6876))
|
||||||
|
- Ensure results from hooks contain nodes when processing them ([#6796](https://github.com/dbt-labs/dbt-core/issues/6796))
|
||||||
|
- Always flush stdout after logging ([#6901](https://github.com/dbt-labs/dbt-core/issues/6901))
|
||||||
|
- Reapply logging fixes which were accidentally reverted ([#6936](https://github.com/dbt-labs/dbt-core/issues/6936))
|
||||||
|
- Set relation_name in test nodes at compile time ([#6930](https://github.com/dbt-labs/dbt-core/issues/6930))
|
||||||
|
- Readd initialization events, --log-cache-events in new CLI ([#6933](https://github.com/dbt-labs/dbt-core/issues/6933))
|
||||||
|
- Fix previous state tests and disabled exposures, metrics ([#6752](https://github.com/dbt-labs/dbt-core/issues/6752), [#6753](https://github.com/dbt-labs/dbt-core/issues/6753))
|
||||||
|
- Make use of hashlib.md5() FIPS compliant ([#6900](https://github.com/dbt-labs/dbt-core/issues/6900))
|
||||||
|
- add timeout for dbt --version command ([#6992](https://github.com/dbt-labs/dbt-core/issues/6992))
|
||||||
|
- Fix compilation logic for ephemeral nodes ([#6885](https://github.com/dbt-labs/dbt-core/issues/6885))
|
||||||
|
- Fix semver comparison logic by ensuring numeric values ([#7039](https://github.com/dbt-labs/dbt-core/issues/7039))
|
||||||
|
- add pytz dependency ([#7077](https://github.com/dbt-labs/dbt-core/issues/7077))
|
||||||
|
- allow adapters to change model name resolution in py models ([#7114](https://github.com/dbt-labs/dbt-core/issues/7114))
|
||||||
|
- Add exception handling in postflight decorator to address exit codes ([#7010](https://github.com/dbt-labs/dbt-core/issues/7010))
|
||||||
|
- Recreates missing tracking events ([#6097](https://github.com/dbt-labs/dbt-core/issues/6097), [#6098](https://github.com/dbt-labs/dbt-core/issues/6098))
|
||||||
|
- Fix partial parsing error due to not requiring "version" ([#7236](https://github.com/dbt-labs/dbt-core/issues/7236))
|
||||||
|
- Handle internal exceptions ([#7118](https://github.com/dbt-labs/dbt-core/issues/7118))
|
||||||
|
- Improved failed event serialization handling and associated tests ([#7113](https://github.com/dbt-labs/dbt-core/issues/7113), [#7108](https://github.com/dbt-labs/dbt-core/issues/7108), [#6568](https://github.com/dbt-labs/dbt-core/issues/6568))
|
||||||
|
- Fix handling of artifacts in read_and_check_versions ([#7252](https://github.com/dbt-labs/dbt-core/issues/7252))
|
||||||
|
- Stringify datetimes in logging for prettier messages ([#7255](https://github.com/dbt-labs/dbt-core/issues/7255))
|
||||||
|
- avoid dbtRunner default callbacks being shared across instances ([#7278](https://github.com/dbt-labs/dbt-core/issues/7278))
|
||||||
|
- Ensure same_contract is called for state:modified ([#7282](https://github.com/dbt-labs/dbt-core/issues/7282))
|
||||||
|
- Avoid revoking grants for views when `copy_grants=true` ([#7280](https://github.com/dbt-labs/dbt-core/issues/7280))
|
||||||
|
- Duplicated flags now throw errors instead of being overidden by parent-level flag ([#6913](https://github.com/dbt-labs/dbt-core/issues/6913))
|
||||||
|
- Ensure that invocation_id changes between programmatic invocations. ([#7197](https://github.com/dbt-labs/dbt-core/issues/7197))
|
||||||
|
- Adding a new column is not a breaking contract change ([#7332](https://github.com/dbt-labs/dbt-core/issues/7332))
|
||||||
|
- fix versioned model selection in subdirectories ([#7348](https://github.com/dbt-labs/dbt-core/issues/7348))
|
||||||
|
|
||||||
|
### Docs
|
||||||
|
|
||||||
|
- Improve displayed message under "Arguments" section for argumentless macro ([dbt-docs/#358](https://github.com/dbt-labs/dbt-docs/issues/358))
|
||||||
|
- update link to installation instructions ([dbt-docs/#None](https://github.com/dbt-labs/dbt-docs/issues/None))
|
||||||
|
- Fix JSON path to overview docs ([dbt-docs/#366](https://github.com/dbt-labs/dbt-docs/issues/366))
|
||||||
|
- Searchable column descriptions ([dbt-docs/#140](https://github.com/dbt-labs/dbt-docs/issues/140), [dbt-docs/#322](https://github.com/dbt-labs/dbt-docs/issues/322), [dbt-docs/#369](https://github.com/dbt-labs/dbt-docs/issues/369))
|
||||||
|
- Add access property to model details ([dbt-docs/#381](https://github.com/dbt-labs/dbt-docs/issues/381))
|
||||||
|
- Display model owner by name and email ([dbt-docs/#377](https://github.com/dbt-labs/dbt-docs/issues/377))
|
||||||
|
- Add view of public models sorted by group to left navigation ([dbt-docs/#379](https://github.com/dbt-labs/dbt-docs/issues/379))
|
||||||
|
- Distiguish node "access" in the DAG with node borders & opacity. ([dbt-docs/#378](https://github.com/dbt-labs/dbt-docs/issues/378))
|
||||||
|
- Fix JSON path to package overview docs ([dbt-docs/#390](https://github.com/dbt-labs/dbt-docs/issues/390))
|
||||||
|
- Add selection by group to DAG ([dbt-docs/#380](https://github.com/dbt-labs/dbt-docs/issues/380))
|
||||||
|
- Add support for model versions ([dbt-docs/#406](https://github.com/dbt-labs/dbt-docs/issues/406))
|
||||||
|
|
||||||
|
### Under the Hood
|
||||||
|
|
||||||
|
- [CT-921] dbt compile works in click ([#5545](https://github.com/dbt-labs/dbt-core/issues/5545))
|
||||||
|
- Fix use of ConnectionReused logging event ([#6168](https://github.com/dbt-labs/dbt-core/issues/6168))
|
||||||
|
- Port docs tests to pytest ([#6573](https://github.com/dbt-labs/dbt-core/issues/6573))
|
||||||
|
- Update deprecated github action command ([#6153](https://github.com/dbt-labs/dbt-core/issues/6153))
|
||||||
|
- dbt snapshot works in click ([#5554](https://github.com/dbt-labs/dbt-core/issues/5554))
|
||||||
|
- dbt list working with click ([#5549](https://github.com/dbt-labs/dbt-core/issues/5549))
|
||||||
|
- Add dbt run-operation to click CLI ([#5552](https://github.com/dbt-labs/dbt-core/issues/5552))
|
||||||
|
- dbt build working with new click framework ([#5541](https://github.com/dbt-labs/dbt-core/issues/5541))
|
||||||
|
- dbt docs generate works with new click framework ([#5543](https://github.com/dbt-labs/dbt-core/issues/5543))
|
||||||
|
- Replaced the EmptyLine event with a more general Formatting event, and added a Note event. ([#6481](https://github.com/dbt-labs/dbt-core/issues/6481))
|
||||||
|
- Small optimization on manifest parsing benefitting large DAGs ([#6697](https://github.com/dbt-labs/dbt-core/issues/6697))
|
||||||
|
- Revised and simplified various structured logging events ([#6664](https://github.com/dbt-labs/dbt-core/issues/6664), [#6665](https://github.com/dbt-labs/dbt-core/issues/6665), [#6666](https://github.com/dbt-labs/dbt-core/issues/6666))
|
||||||
|
- dbt init works with click ([#5548](https://github.com/dbt-labs/dbt-core/issues/5548))
|
||||||
|
- [CT-920][CT-1900] Create Click CLI runner and use it to fix dbt docs commands ([#5544](https://github.com/dbt-labs/dbt-core/issues/5544), [#6722](https://github.com/dbt-labs/dbt-core/issues/6722))
|
||||||
|
- Migrate debug task to click ([#5546](https://github.com/dbt-labs/dbt-core/issues/5546))
|
||||||
|
- Optimized GraphQueue to remove graph analysis bottleneck in large dags. ([#6759](https://github.com/dbt-labs/dbt-core/issues/6759))
|
||||||
|
- Implement --version for click cli ([#6757](https://github.com/dbt-labs/dbt-core/issues/6757))
|
||||||
|
- [CT-1841] Convert custom target test to Pytest ([#6638](https://github.com/dbt-labs/dbt-core/issues/6638))
|
||||||
|
- Remove BigQuery-specific btye abbreviations ([#6741](https://github.com/dbt-labs/dbt-core/issues/6741))
|
||||||
|
- warn_error/warn_error_options mutual exclusivity in click ([#6579](https://github.com/dbt-labs/dbt-core/issues/6579))
|
||||||
|
- Enables the new Click Cli on the commandline! 🚀 ([#6784](https://github.com/dbt-labs/dbt-core/issues/6784))
|
||||||
|
- Lazily call --version ([#6812](https://github.com/dbt-labs/dbt-core/issues/6812))
|
||||||
|
- Moving simple_seed to adapter zone to help adapter test conversions ([#CT-1959](https://github.com/dbt-labs/dbt-core/issues/CT-1959))
|
||||||
|
- flags.THREADS defaults to None ([#6887](https://github.com/dbt-labs/dbt-core/issues/6887))
|
||||||
|
- Fixing target type exposure error ([#6928](https://github.com/dbt-labs/dbt-core/issues/6928))
|
||||||
|
- Test binary serialization of logging events ([#6852](https://github.com/dbt-labs/dbt-core/issues/6852))
|
||||||
|
- Treat contract config as a python object ([#6748](https://github.com/dbt-labs/dbt-core/issues/6748), [#7184](https://github.com/dbt-labs/dbt-core/issues/7184))
|
||||||
|
- Add deprecation warning for DBT_NO_PRINT ([#6960](https://github.com/dbt-labs/dbt-core/issues/6960))
|
||||||
|
- Make output_keys click param multi-option instead of a string ([#6676](https://github.com/dbt-labs/dbt-core/issues/6676))
|
||||||
|
- Remove cli doc generation workflow ([#7088](https://github.com/dbt-labs/dbt-core/issues/7088))
|
||||||
|
- Move validation of group earlier ([#7087](https://github.com/dbt-labs/dbt-core/issues/7087))
|
||||||
|
- Deprecate additional environment variables ([#6903](https://github.com/dbt-labs/dbt-core/issues/6903))
|
||||||
|
- Add CommandCompleted event, and fire it upon completion of every command ([#6878](https://github.com/dbt-labs/dbt-core/issues/6878))
|
||||||
|
- Improves build times for common selections by improving subgraph calculation ([#7195](https://github.com/dbt-labs/dbt-core/issues/7195))
|
||||||
|
- Remove upper pin for hologram/jsonschema ([#6775](https://github.com/dbt-labs/dbt-core/issues/6775))
|
||||||
|
- Generalize constraint compatibility warnings ([#7067](https://github.com/dbt-labs/dbt-core/issues/7067))
|
||||||
|
- Add kwargs support to dbtRunner ([#7070](https://github.com/dbt-labs/dbt-core/issues/7070))
|
||||||
|
- Add unique_id to ShowNode and CompiledNode logging events ([#7305](https://github.com/dbt-labs/dbt-core/issues/7305))
|
||||||
|
- Prettify message for ListRelations event ([#7310](https://github.com/dbt-labs/dbt-core/issues/7310))
|
||||||
|
- `Parse` now returns manifest when invoked via dbtRunner ([#6547](https://github.com/dbt-labs/dbt-core/issues/6547))
|
||||||
|
- Track data about group, access, contract, version usage ([#7170](https://github.com/dbt-labs/dbt-core/issues/7170), [#7171](https://github.com/dbt-labs/dbt-core/issues/7171))
|
||||||
|
|
||||||
|
### Dependencies
|
||||||
|
|
||||||
|
- Update pathspec requirement from <0.11,>=0.9 to >=0.9,<0.12 in /core ([#6737](https://github.com/dbt-labs/dbt-core/pull/6737))
|
||||||
|
- Bump ubuntu from 22.04 to 23.04 ([#6865](https://github.com/dbt-labs/dbt-core/pull/6865))
|
||||||
|
- Revert hoisting dbt.cli.main into the dbt.name namespace ([#](https://github.com/dbt-labs/dbt-core/pull/))
|
||||||
|
- Bump python from 3.11.1-slim-bullseye to 3.11.2-slim-bullseye in /docker ([#7196](https://github.com/dbt-labs/dbt-core/pull/7196))
|
||||||
|
- Bump black from 22.12.0 to 23.3.0 ([#7243](https://github.com/dbt-labs/dbt-core/pull/7243))
|
||||||
|
- Bump mashumaro[msgpack] from 3.3.1 to 3.6 ([#7294](https://github.com/dbt-labs/dbt-core/pull/7294))
|
||||||
|
|
||||||
|
### Dependency
|
||||||
|
|
||||||
|
- Bump mypy from 0.971 to 0.981 ([#4904](https://github.com/dbt-labs/dbt-core/issues/4904))
|
||||||
|
- Bump python from 3.10.7-slim-bullseye to 3.11.1-slim-bullseye in /docker ([#4904](https://github.com/dbt-labs/dbt-core/issues/4904))
|
||||||
|
- Bump black from 22.10.0 to 22.12.0 ([#4904](https://github.com/dbt-labs/dbt-core/issues/4904))
|
||||||
|
|
||||||
|
### Contributors
|
||||||
|
- [@@ttusing](https://github.com/@ttusing) ([#7195](https://github.com/dbt-labs/dbt-core/issues/7195))
|
||||||
|
- [@Goodkat](https://github.com/Goodkat) ([#6992](https://github.com/dbt-labs/dbt-core/issues/6992))
|
||||||
|
- [@MartinGuindon](https://github.com/MartinGuindon) ([#358](https://github.com/dbt-labs/dbt-core/issues/358))
|
||||||
|
- [@MatthieuBlais](https://github.com/MatthieuBlais) ([#7191](https://github.com/dbt-labs/dbt-core/issues/7191))
|
||||||
|
- [@RobbertDM](https://github.com/RobbertDM) ([#6781](https://github.com/dbt-labs/dbt-core/issues/6781))
|
||||||
|
- [@aezomz](https://github.com/aezomz) ([#2964](https://github.com/dbt-labs/dbt-core/issues/2964))
|
||||||
|
- [@benallard](https://github.com/benallard) ([#7294](https://github.com/dbt-labs/dbt-core/pull/7294))
|
||||||
|
- [@boxysean](https://github.com/boxysean) ([#6697](https://github.com/dbt-labs/dbt-core/issues/6697))
|
||||||
|
- [@callum-mcdata](https://github.com/callum-mcdata) ([#6928](https://github.com/dbt-labs/dbt-core/issues/6928))
|
||||||
|
- [@chamini2](https://github.com/chamini2) ([#7278](https://github.com/dbt-labs/dbt-core/issues/7278))
|
||||||
|
- [@dave-connors-3](https://github.com/dave-connors-3) ([#7054](https://github.com/dbt-labs/dbt-core/issues/7054), [#7315](https://github.com/dbt-labs/dbt-core/issues/7315), [#6699](https://github.com/dbt-labs/dbt-core/issues/6699))
|
||||||
|
- [@davidbloss](https://github.com/davidbloss) ([#6153](https://github.com/dbt-labs/dbt-core/issues/6153))
|
||||||
|
- [@halvorlu](https://github.com/halvorlu) ([#366](https://github.com/dbt-labs/dbt-core/issues/366))
|
||||||
|
- [@jmg-duarte](https://github.com/jmg-duarte) ([#6102](https://github.com/dbt-labs/dbt-core/issues/6102))
|
||||||
|
- [@kentkr](https://github.com/kentkr) ([#7209](https://github.com/dbt-labs/dbt-core/issues/7209))
|
||||||
|
- [@leo-schick](https://github.com/leo-schick) ([#6078](https://github.com/dbt-labs/dbt-core/issues/6078))
|
||||||
|
- [@nielspardon](https://github.com/nielspardon) ([#6900](https://github.com/dbt-labs/dbt-core/issues/6900))
|
||||||
|
- [@rlh1994](https://github.com/rlh1994) ([#6876](https://github.com/dbt-labs/dbt-core/issues/6876), [#390](https://github.com/dbt-labs/dbt-core/issues/390))
|
||||||
|
- [@ryancharris](https://github.com/ryancharris) ([#None](https://github.com/dbt-labs/dbt-core/issues/None))
|
||||||
|
- [@sdebruyn](https://github.com/sdebruyn) ([#7077](https://github.com/dbt-labs/dbt-core/issues/7077))
|
||||||
|
- [@seub](https://github.com/seub) ([#6603](https://github.com/dbt-labs/dbt-core/issues/6603))
|
||||||
|
- [@sungchun12](https://github.com/sungchun12) ([#6079](https://github.com/dbt-labs/dbt-core/issues/6079))
|
||||||
|
- [@z3z1ma](https://github.com/z3z1ma) ([#6598](https://github.com/dbt-labs/dbt-core/issues/6598))
|
||||||
12
.changes/1.5.0-rc2.md
Normal file
12
.changes/1.5.0-rc2.md
Normal file
@@ -0,0 +1,12 @@
|
|||||||
|
## dbt-core 1.5.0-rc2 - April 20, 2023
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
|
||||||
|
- safe version attribute access in _check_resource_uniqueness ([#7375](https://github.com/dbt-labs/dbt-core/issues/7375))
|
||||||
|
- Fix dbt command missing target-path param ([# 7411](https://github.com/dbt-labs/dbt-core/issues/ 7411))
|
||||||
|
- Fix v0 ref resolution ([#7408](https://github.com/dbt-labs/dbt-core/issues/7408))
|
||||||
|
|
||||||
|
### Under the Hood
|
||||||
|
|
||||||
|
- Update docs link in ContractBreakingChangeError message ([#7366](https://github.com/dbt-labs/dbt-core/issues/7366))
|
||||||
|
- Update --help text for cache-related parameters ([#7381](https://github.com/dbt-labs/dbt-core/issues/7381))
|
||||||
6
.changes/1.5.0/Fixes-20230418-135257.yaml
Normal file
6
.changes/1.5.0/Fixes-20230418-135257.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
kind: Fixes
|
||||||
|
body: safe version attribute access in _check_resource_uniqueness
|
||||||
|
time: 2023-04-18T13:52:57.367108-04:00
|
||||||
|
custom:
|
||||||
|
Author: MichelleArk
|
||||||
|
Issue: "7375"
|
||||||
6
.changes/1.5.0/Fixes-20230419-142150.yaml
Normal file
6
.changes/1.5.0/Fixes-20230419-142150.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
kind: Fixes
|
||||||
|
body: Fix dbt command missing target-path param
|
||||||
|
time: 2023-04-19T14:21:50.959786-07:00
|
||||||
|
custom:
|
||||||
|
Author: ChenyuLInx
|
||||||
|
Issue: "\t7411"
|
||||||
6
.changes/1.5.0/Fixes-20230419-220910.yaml
Normal file
6
.changes/1.5.0/Fixes-20230419-220910.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
kind: Fixes
|
||||||
|
body: Fix v0 ref resolution
|
||||||
|
time: 2023-04-19T22:09:10.155137-04:00
|
||||||
|
custom:
|
||||||
|
Author: MichelleArk
|
||||||
|
Issue: "7408"
|
||||||
6
.changes/1.5.0/Under the Hood-20230417-114501.yaml
Normal file
6
.changes/1.5.0/Under the Hood-20230417-114501.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
kind: Under the Hood
|
||||||
|
body: Update docs link in ContractBreakingChangeError message
|
||||||
|
time: 2023-04-17T11:45:01.005104+02:00
|
||||||
|
custom:
|
||||||
|
Author: jtcohen6
|
||||||
|
Issue: "7366"
|
||||||
6
.changes/1.5.0/Under the Hood-20230418-122323.yaml
Normal file
6
.changes/1.5.0/Under the Hood-20230418-122323.yaml
Normal file
@@ -0,0 +1,6 @@
|
|||||||
|
kind: Under the Hood
|
||||||
|
body: Update --help text for cache-related parameters
|
||||||
|
time: 2023-04-18T12:23:23.276693+02:00
|
||||||
|
custom:
|
||||||
|
Author: jtcohen6
|
||||||
|
Issue: "7381"
|
||||||
234
CHANGELOG.md
234
CHANGELOG.md
@@ -5,150 +5,78 @@
|
|||||||
- "Breaking changes" listed under a version may require action from end users or external maintainers when upgrading to that version.
|
- "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](https://github.com/miniscruff/changie). For details on how to document a change, see [the contributing guide](https://github.com/dbt-labs/dbt-core/blob/main/CONTRIBUTING.md#adding-changelog-entry)
|
- Do not edit this file directly. This file is auto-generated using [changie](https://github.com/miniscruff/changie). For details on how to document a change, see [the contributing guide](https://github.com/dbt-labs/dbt-core/blob/main/CONTRIBUTING.md#adding-changelog-entry)
|
||||||
|
|
||||||
## dbt-core 1.5.0-b5 - March 30, 2023
|
## dbt-core 1.5.0-rc2 - April 20, 2023
|
||||||
|
|
||||||
|
### Fixes
|
||||||
|
|
||||||
|
- safe version attribute access in _check_resource_uniqueness ([#7375](https://github.com/dbt-labs/dbt-core/issues/7375))
|
||||||
|
- Fix dbt command missing target-path param ([# 7411](https://github.com/dbt-labs/dbt-core/issues/ 7411))
|
||||||
|
- Fix v0 ref resolution ([#7408](https://github.com/dbt-labs/dbt-core/issues/7408))
|
||||||
|
|
||||||
|
### Under the Hood
|
||||||
|
|
||||||
|
- Update docs link in ContractBreakingChangeError message ([#7366](https://github.com/dbt-labs/dbt-core/issues/7366))
|
||||||
|
- Update --help text for cache-related parameters ([#7381](https://github.com/dbt-labs/dbt-core/issues/7381))
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
## dbt-core 1.5.0-rc1 - April 13, 2023
|
||||||
|
|
||||||
### Breaking Changes
|
### Breaking Changes
|
||||||
|
|
||||||
- Allow `--select` and `--exclude` multiple times ([#7158](https://github.com/dbt-labs/dbt-core/issues/7158))
|
- Allow `--select` and `--exclude` multiple times ([#7158](https://github.com/dbt-labs/dbt-core/issues/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](https://github.com/dbt-labs/dbt-core/issues/6882))
|
- 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](https://github.com/dbt-labs/dbt-core/issues/6882))
|
||||||
|
- Remove exception functions marked as deprecated in 1.4 release ([#6578](https://github.com/dbt-labs/dbt-core/issues/6578))
|
||||||
|
|
||||||
### Features
|
### 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](https://github.com/dbt-labs/dbt-core/issues/6079))
|
||||||
|
- Have dbt debug spit out structured json logs with flags enabled. ([#5353](https://github.com/dbt-labs/dbt-core/issues/5353))
|
||||||
|
- ✨ add unix-style wildcard selector method ([#6598](https://github.com/dbt-labs/dbt-core/issues/6598))
|
||||||
|
- add adapter_response to dbt test and freshness result ([#2964](https://github.com/dbt-labs/dbt-core/issues/2964))
|
||||||
|
- add support for DBT_PROJECT_DIR env var ([#6078](https://github.com/dbt-labs/dbt-core/issues/6078))
|
||||||
|
- Improve error message for packages missing `dbt_project.yml` ([#6663](https://github.com/dbt-labs/dbt-core/issues/6663))
|
||||||
|
- Make project version optional ([#6603](https://github.com/dbt-labs/dbt-core/issues/6603))
|
||||||
|
- Adjust makefile to have clearer instructions for CI env var changes. ([#6689](https://github.com/dbt-labs/dbt-core/issues/6689))
|
||||||
|
- Stand-alone Python module for PostgresColumn ([#6772](https://github.com/dbt-labs/dbt-core/issues/6772))
|
||||||
|
- Enable diff based partial parsing ([#6592](https://github.com/dbt-labs/dbt-core/issues/6592))
|
||||||
|
- Exposure owner requires one of name or email keys, and accepts additional arbitrary keys ([#6833](https://github.com/dbt-labs/dbt-core/issues/6833))
|
||||||
|
- Parse 'group' resource ([#6921](https://github.com/dbt-labs/dbt-core/issues/6921))
|
||||||
|
- parse 'group' config on groupable nodes ([#6823](https://github.com/dbt-labs/dbt-core/issues/6823))
|
||||||
|
- Implemented new log cli parameters for finer-grained control. ([#6639](https://github.com/dbt-labs/dbt-core/issues/6639))
|
||||||
|
- Add access attribute to parsed nodes ([#6824](https://github.com/dbt-labs/dbt-core/issues/6824))
|
||||||
|
- Enforce contracts on models materialized as tables, views, and incremental ([#6751](https://github.com/dbt-labs/dbt-core/issues/6751), [#7034](https://github.com/dbt-labs/dbt-core/issues/7034), [#6756](https://github.com/dbt-labs/dbt-core/issues/6756), [#7154](https://github.com/dbt-labs/dbt-core/issues/7154))
|
||||||
|
- Add ability to select by group resource ([#6825](https://github.com/dbt-labs/dbt-core/issues/6825))
|
||||||
|
- Disallow refing private model across groups ([#6826](https://github.com/dbt-labs/dbt-core/issues/6826))
|
||||||
|
- make version configs optional ([#7054](https://github.com/dbt-labs/dbt-core/issues/7054))
|
||||||
|
- [CT-1584] New top level commands: interactive compile ([#6358](https://github.com/dbt-labs/dbt-core/issues/6358))
|
||||||
- Make model contracts agnostic to ordering ([#6975](https://github.com/dbt-labs/dbt-core/issues/6975), [#7064](https://github.com/dbt-labs/dbt-core/issues/7064))
|
- Make model contracts agnostic to ordering ([#6975](https://github.com/dbt-labs/dbt-core/issues/6975), [#7064](https://github.com/dbt-labs/dbt-core/issues/7064))
|
||||||
- Unified constraints and check_constraints properties for columns and models ([#7066](https://github.com/dbt-labs/dbt-core/issues/7066))
|
- Unified constraints and check_constraints properties for columns and models ([#7066](https://github.com/dbt-labs/dbt-core/issues/7066))
|
||||||
- Switch from betterproto to google protobuf and enable more flexible meta dictionary in logs ([#6832](https://github.com/dbt-labs/dbt-core/issues/6832))
|
- Switch from betterproto to google protobuf and enable more flexible meta dictionary in logs ([#6832](https://github.com/dbt-labs/dbt-core/issues/6832))
|
||||||
- Ignore duplicate edges in subgraph to speed up dbt build ([#7191](https://github.com/dbt-labs/dbt-core/issues/7191))
|
- Ignore duplicate edges in subgraph to speed up dbt build ([#7191](https://github.com/dbt-labs/dbt-core/issues/7191))
|
||||||
- Support setting of callbacks for programmatic uses of `dbtRunner` ([#6763](https://github.com/dbt-labs/dbt-core/issues/6763))
|
- Support setting of callbacks for programmatic uses of `dbtRunner` ([#6763](https://github.com/dbt-labs/dbt-core/issues/6763))
|
||||||
- Detect breaking changes to contracts in state:modified check ([#6869](https://github.com/dbt-labs/dbt-core/issues/6869))
|
- Detect breaking changes to contracts in state:modified check ([#6869](https://github.com/dbt-labs/dbt-core/issues/6869))
|
||||||
|
- New command: dbt show ([#7207](https://github.com/dbt-labs/dbt-core/issues/7207), [#7179](https://github.com/dbt-labs/dbt-core/issues/7179), [#6359](https://github.com/dbt-labs/dbt-core/issues/6359))
|
||||||
### Fixes
|
- Added prettier printing to ContractError class ([#7209](https://github.com/dbt-labs/dbt-core/issues/7209))
|
||||||
|
- Add support for model-level constraints ([#6754](https://github.com/dbt-labs/dbt-core/issues/6754))
|
||||||
- add timeout for dbt --version command ([#6992](https://github.com/dbt-labs/dbt-core/issues/6992))
|
- model versions ([##7263](https://github.com/dbt-labs/dbt-core/issues/#7263))
|
||||||
- Add exception handling in postflight decorator to address exit codes ([#7010](https://github.com/dbt-labs/dbt-core/issues/7010))
|
- Add relation info (database, schema, alias) to node_info dictionary in structured logging ([#6724](https://github.com/dbt-labs/dbt-core/issues/6724))
|
||||||
- Recreates missing tracking events ([#6097](https://github.com/dbt-labs/dbt-core/issues/6097), [#6098](https://github.com/dbt-labs/dbt-core/issues/6098))
|
- Add --no-populate-cache to optionally skip relation cache population ([#1751](https://github.com/dbt-labs/dbt-core/issues/1751))
|
||||||
- Fix partial parsing error due to not requiring "version" ([#7236](https://github.com/dbt-labs/dbt-core/issues/7236))
|
- select resources by patch path ([#7315](https://github.com/dbt-labs/dbt-core/issues/7315))
|
||||||
|
- Add version selector method ([#7199](https://github.com/dbt-labs/dbt-core/issues/7199))
|
||||||
### Under the Hood
|
|
||||||
|
|
||||||
- Treat contract config as a python object ([#6748](https://github.com/dbt-labs/dbt-core/issues/6748), [#7184](https://github.com/dbt-labs/dbt-core/issues/7184))
|
|
||||||
- Deprecate additional environment variables ([#6903](https://github.com/dbt-labs/dbt-core/issues/6903))
|
|
||||||
- Add CommandCompleted event, and fire it upon completion of every command ([#6878](https://github.com/dbt-labs/dbt-core/issues/6878))
|
|
||||||
- Remove upper pin for hologram/jsonschema ([#6775](https://github.com/dbt-labs/dbt-core/issues/6775))
|
|
||||||
|
|
||||||
### Contributors
|
|
||||||
- [@Goodkat](https://github.com/Goodkat) ([#6992](https://github.com/dbt-labs/dbt-core/issues/6992))
|
|
||||||
- [@MatthieuBlais](https://github.com/MatthieuBlais) ([#7191](https://github.com/dbt-labs/dbt-core/issues/7191))
|
|
||||||
|
|
||||||
|
|
||||||
## dbt-core 1.5.0-b4 - March 16, 2023
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
- ✨ add unix-style wildcard selector method ([#6598](https://github.com/dbt-labs/dbt-core/issues/6598))
|
|
||||||
- add support for DBT_PROJECT_DIR env var ([#6078](https://github.com/dbt-labs/dbt-core/issues/6078))
|
|
||||||
- Enable diff based partial parsing ([#6592](https://github.com/dbt-labs/dbt-core/issues/6592))
|
|
||||||
- Enforce contracts on models materialized as tables and views ([#6751](https://github.com/dbt-labs/dbt-core/issues/6751), [#7034](https://github.com/dbt-labs/dbt-core/issues/7034), [#6756](https://github.com/dbt-labs/dbt-core/issues/6756))
|
|
||||||
- make version configs optional ([#7054](https://github.com/dbt-labs/dbt-core/issues/7054))
|
|
||||||
- [CT-1584] New top level commands: interactive compile ([#6358](https://github.com/dbt-labs/dbt-core/issues/6358))
|
|
||||||
|
|
||||||
### Fixes
|
|
||||||
|
|
||||||
- allow adapters to change model name resolution in py models ([#7114](https://github.com/dbt-labs/dbt-core/issues/7114))
|
|
||||||
|
|
||||||
### Docs
|
|
||||||
|
|
||||||
- Distiguish node "access" in the DAG with node borders & opacity. ([dbt-docs/#378](https://github.com/dbt-labs/dbt-docs/issues/378))
|
|
||||||
- Fix JSON path to package overview docs ([dbt-docs/#390](https://github.com/dbt-labs/dbt-docs/issues/390))
|
|
||||||
- Add selection by group to DAG ([dbt-docs/#380](https://github.com/dbt-labs/dbt-docs/issues/380))
|
|
||||||
|
|
||||||
### Under the Hood
|
|
||||||
|
|
||||||
- Add deprecation warning for DBT_NO_PRINT ([#6960](https://github.com/dbt-labs/dbt-core/issues/6960))
|
|
||||||
|
|
||||||
### Dependencies
|
|
||||||
|
|
||||||
- Update pathspec requirement from <0.11,>=0.9 to >=0.9,<0.12 in /core ([#6737](https://github.com/dbt-labs/dbt-core/pull/6737))
|
|
||||||
|
|
||||||
### Dependency
|
|
||||||
|
|
||||||
- Bump python from 3.10.7-slim-bullseye to 3.11.1-slim-bullseye in /docker ([#4904](https://github.com/dbt-labs/dbt-core/issues/4904))
|
|
||||||
- Bump black from 22.10.0 to 22.12.0 ([#4904](https://github.com/dbt-labs/dbt-core/issues/4904))
|
|
||||||
|
|
||||||
### Contributors
|
|
||||||
- [@dave-connors-3](https://github.com/dave-connors-3) ([#7054](https://github.com/dbt-labs/dbt-core/issues/7054))
|
|
||||||
- [@leo-schick](https://github.com/leo-schick) ([#6078](https://github.com/dbt-labs/dbt-core/issues/6078))
|
|
||||||
- [@rlh1994](https://github.com/rlh1994) ([#390](https://github.com/dbt-labs/dbt-core/issues/390))
|
|
||||||
- [@z3z1ma](https://github.com/z3z1ma) ([#6598](https://github.com/dbt-labs/dbt-core/issues/6598))
|
|
||||||
|
|
||||||
## dbt-core 1.5.0-b3 - March 02, 2023
|
|
||||||
|
|
||||||
### Under the Hood
|
|
||||||
|
|
||||||
- Remove cli doc generation workflow ([#7088](https://github.com/dbt-labs/dbt-core/issues/7088))
|
|
||||||
|
|
||||||
## dbt-core 1.5.0-b2 - March 01, 2023
|
|
||||||
|
|
||||||
### Features
|
|
||||||
|
|
||||||
- Make project version optional ([#6603](https://github.com/dbt-labs/dbt-core/issues/6603))
|
|
||||||
- parse 'group' config on groupable nodes ([#6823](https://github.com/dbt-labs/dbt-core/issues/6823))
|
|
||||||
- Implemented new log cli parameters for finer-grained control. ([#6639](https://github.com/dbt-labs/dbt-core/issues/6639))
|
|
||||||
- Add access attribute to parsed nodes ([#6824](https://github.com/dbt-labs/dbt-core/issues/6824))
|
|
||||||
- Add ability to select by group resource ([#6825](https://github.com/dbt-labs/dbt-core/issues/6825))
|
|
||||||
- Disallow refing private model across groups ([#6826](https://github.com/dbt-labs/dbt-core/issues/6826))
|
|
||||||
|
|
||||||
### Fixes
|
### Fixes
|
||||||
|
|
||||||
- Remove trailing slashes from source paths (#6102) ([#6102](https://github.com/dbt-labs/dbt-core/issues/6102))
|
- Remove trailing slashes from source paths (#6102) ([#6102](https://github.com/dbt-labs/dbt-core/issues/6102))
|
||||||
- Fix compilation logic for ephemeral nodes ([#6885](https://github.com/dbt-labs/dbt-core/issues/6885))
|
|
||||||
- Fix semver comparison logic by ensuring numeric values ([#7039](https://github.com/dbt-labs/dbt-core/issues/7039))
|
|
||||||
- add pytz dependency ([#7077](https://github.com/dbt-labs/dbt-core/issues/7077))
|
|
||||||
|
|
||||||
### Docs
|
|
||||||
|
|
||||||
- Improve displayed message under "Arguments" section for argumentless macro ([dbt-docs/#358](https://github.com/dbt-labs/dbt-docs/issues/358))
|
|
||||||
- Add access property to model details ([dbt-docs/#381](https://github.com/dbt-labs/dbt-docs/issues/381))
|
|
||||||
- Display model owner by name and email ([dbt-docs/#377](https://github.com/dbt-labs/dbt-docs/issues/377))
|
|
||||||
- Add view of public models sorted by group to left navigation ([dbt-docs/#379](https://github.com/dbt-labs/dbt-docs/issues/379))
|
|
||||||
|
|
||||||
### Under the Hood
|
|
||||||
|
|
||||||
- Rename "constraint_enabled" to "contract" ([#6748](https://github.com/dbt-labs/dbt-core/issues/6748))
|
|
||||||
- Make output_keys click param multi-option instead of a string ([#6676](https://github.com/dbt-labs/dbt-core/issues/6676))
|
|
||||||
- Move validation of group earlier ([#7087](https://github.com/dbt-labs/dbt-core/issues/7087))
|
|
||||||
|
|
||||||
### Dependency
|
|
||||||
|
|
||||||
- Bump mypy from 0.971 to 0.981 ([#4904](https://github.com/dbt-labs/dbt-core/issues/4904))
|
|
||||||
|
|
||||||
### Contributors
|
|
||||||
- [@MartinGuindon](https://github.com/MartinGuindon) ([#358](https://github.com/dbt-labs/dbt-core/issues/358))
|
|
||||||
- [@jmg-duarte](https://github.com/jmg-duarte) ([#6102](https://github.com/dbt-labs/dbt-core/issues/6102))
|
|
||||||
- [@sdebruyn](https://github.com/sdebruyn) ([#7077](https://github.com/dbt-labs/dbt-core/issues/7077))
|
|
||||||
- [@seub](https://github.com/seub) ([#6603](https://github.com/dbt-labs/dbt-core/issues/6603))
|
|
||||||
|
|
||||||
## dbt-core 1.5.0-b1 - February 17, 2023
|
|
||||||
|
|
||||||
### 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](https://github.com/dbt-labs/dbt-core/issues/6079))
|
|
||||||
- Have dbt debug spit out structured json logs with flags enabled. ([#5353](https://github.com/dbt-labs/dbt-core/issues/5353))
|
|
||||||
- add adapter_response to dbt test and freshness result ([#2964](https://github.com/dbt-labs/dbt-core/issues/2964))
|
|
||||||
- Improve error message for packages missing `dbt_project.yml` ([#6663](https://github.com/dbt-labs/dbt-core/issues/6663))
|
|
||||||
- Adjust makefile to have clearer instructions for CI env var changes. ([#6689](https://github.com/dbt-labs/dbt-core/issues/6689))
|
|
||||||
- Stand-alone Python module for PostgresColumn ([#6772](https://github.com/dbt-labs/dbt-core/issues/6772))
|
|
||||||
- Exposure owner requires one of name or email keys, and accepts additional arbitrary keys ([#6833](https://github.com/dbt-labs/dbt-core/issues/6833))
|
|
||||||
- Parse 'group' resource ([#6921](https://github.com/dbt-labs/dbt-core/issues/6921))
|
|
||||||
|
|
||||||
### Fixes
|
|
||||||
|
|
||||||
- add merge_exclude_columns adapter tests ([#6699](https://github.com/dbt-labs/dbt-core/issues/6699))
|
- add merge_exclude_columns adapter tests ([#6699](https://github.com/dbt-labs/dbt-core/issues/6699))
|
||||||
- Include adapter_response in NodeFinished run_result log event ([#6703](https://github.com/dbt-labs/dbt-core/issues/6703))
|
- Include adapter_response in NodeFinished run_result log event ([#6703](https://github.com/dbt-labs/dbt-core/issues/6703))
|
||||||
- Sort cli vars before hashing for partial parsing ([#6710](https://github.com/dbt-labs/dbt-core/issues/6710))
|
- Sort cli vars before hashing for partial parsing ([#6710](https://github.com/dbt-labs/dbt-core/issues/6710))
|
||||||
- [Regression] exposure_content referenced incorrectly ([#6738](https://github.com/dbt-labs/dbt-core/issues/6738))
|
- [Regression] exposure_content referenced incorrectly ([#6738](https://github.com/dbt-labs/dbt-core/issues/6738))
|
||||||
|
- Snapshot strategies: add a newline for subquery ([#6781](https://github.com/dbt-labs/dbt-core/issues/6781))
|
||||||
- Remove pin on packaging and stop using it for prerelease comparisons ([#6834](https://github.com/dbt-labs/dbt-core/issues/6834))
|
- Remove pin on packaging and stop using it for prerelease comparisons ([#6834](https://github.com/dbt-labs/dbt-core/issues/6834))
|
||||||
- Readd depends_on.macros to SeedNode, to support seeds with hooks calling macros ([#6806](https://github.com/dbt-labs/dbt-core/issues/6806))
|
- Readd depends_on.macros to SeedNode, to support seeds with hooks calling macros ([#6806](https://github.com/dbt-labs/dbt-core/issues/6806))
|
||||||
- Fix regression of --quiet cli parameter behavior ([#6749](https://github.com/dbt-labs/dbt-core/issues/6749))
|
- Fix regression of --quiet cli parameter behavior ([#6749](https://github.com/dbt-labs/dbt-core/issues/6749))
|
||||||
|
- Add double type to list of float column types for the column class ([#6876](https://github.com/dbt-labs/dbt-core/issues/6876))
|
||||||
- Ensure results from hooks contain nodes when processing them ([#6796](https://github.com/dbt-labs/dbt-core/issues/6796))
|
- Ensure results from hooks contain nodes when processing them ([#6796](https://github.com/dbt-labs/dbt-core/issues/6796))
|
||||||
- Always flush stdout after logging ([#6901](https://github.com/dbt-labs/dbt-core/issues/6901))
|
- Always flush stdout after logging ([#6901](https://github.com/dbt-labs/dbt-core/issues/6901))
|
||||||
- Reapply logging fixes which were accidentally reverted ([#6936](https://github.com/dbt-labs/dbt-core/issues/6936))
|
- Reapply logging fixes which were accidentally reverted ([#6936](https://github.com/dbt-labs/dbt-core/issues/6936))
|
||||||
@@ -156,12 +84,39 @@
|
|||||||
- Readd initialization events, --log-cache-events in new CLI ([#6933](https://github.com/dbt-labs/dbt-core/issues/6933))
|
- Readd initialization events, --log-cache-events in new CLI ([#6933](https://github.com/dbt-labs/dbt-core/issues/6933))
|
||||||
- Fix previous state tests and disabled exposures, metrics ([#6752](https://github.com/dbt-labs/dbt-core/issues/6752), [#6753](https://github.com/dbt-labs/dbt-core/issues/6753))
|
- Fix previous state tests and disabled exposures, metrics ([#6752](https://github.com/dbt-labs/dbt-core/issues/6752), [#6753](https://github.com/dbt-labs/dbt-core/issues/6753))
|
||||||
- Make use of hashlib.md5() FIPS compliant ([#6900](https://github.com/dbt-labs/dbt-core/issues/6900))
|
- Make use of hashlib.md5() FIPS compliant ([#6900](https://github.com/dbt-labs/dbt-core/issues/6900))
|
||||||
|
- add timeout for dbt --version command ([#6992](https://github.com/dbt-labs/dbt-core/issues/6992))
|
||||||
|
- Fix compilation logic for ephemeral nodes ([#6885](https://github.com/dbt-labs/dbt-core/issues/6885))
|
||||||
|
- Fix semver comparison logic by ensuring numeric values ([#7039](https://github.com/dbt-labs/dbt-core/issues/7039))
|
||||||
|
- add pytz dependency ([#7077](https://github.com/dbt-labs/dbt-core/issues/7077))
|
||||||
|
- allow adapters to change model name resolution in py models ([#7114](https://github.com/dbt-labs/dbt-core/issues/7114))
|
||||||
|
- Add exception handling in postflight decorator to address exit codes ([#7010](https://github.com/dbt-labs/dbt-core/issues/7010))
|
||||||
|
- Recreates missing tracking events ([#6097](https://github.com/dbt-labs/dbt-core/issues/6097), [#6098](https://github.com/dbt-labs/dbt-core/issues/6098))
|
||||||
|
- Fix partial parsing error due to not requiring "version" ([#7236](https://github.com/dbt-labs/dbt-core/issues/7236))
|
||||||
|
- Handle internal exceptions ([#7118](https://github.com/dbt-labs/dbt-core/issues/7118))
|
||||||
|
- Improved failed event serialization handling and associated tests ([#7113](https://github.com/dbt-labs/dbt-core/issues/7113), [#7108](https://github.com/dbt-labs/dbt-core/issues/7108), [#6568](https://github.com/dbt-labs/dbt-core/issues/6568))
|
||||||
|
- Fix handling of artifacts in read_and_check_versions ([#7252](https://github.com/dbt-labs/dbt-core/issues/7252))
|
||||||
|
- Stringify datetimes in logging for prettier messages ([#7255](https://github.com/dbt-labs/dbt-core/issues/7255))
|
||||||
|
- avoid dbtRunner default callbacks being shared across instances ([#7278](https://github.com/dbt-labs/dbt-core/issues/7278))
|
||||||
|
- Ensure same_contract is called for state:modified ([#7282](https://github.com/dbt-labs/dbt-core/issues/7282))
|
||||||
|
- Avoid revoking grants for views when `copy_grants=true` ([#7280](https://github.com/dbt-labs/dbt-core/issues/7280))
|
||||||
|
- Duplicated flags now throw errors instead of being overidden by parent-level flag ([#6913](https://github.com/dbt-labs/dbt-core/issues/6913))
|
||||||
|
- Ensure that invocation_id changes between programmatic invocations. ([#7197](https://github.com/dbt-labs/dbt-core/issues/7197))
|
||||||
|
- Adding a new column is not a breaking contract change ([#7332](https://github.com/dbt-labs/dbt-core/issues/7332))
|
||||||
|
- fix versioned model selection in subdirectories ([#7348](https://github.com/dbt-labs/dbt-core/issues/7348))
|
||||||
|
|
||||||
### Docs
|
### Docs
|
||||||
|
|
||||||
|
- Improve displayed message under "Arguments" section for argumentless macro ([dbt-docs/#358](https://github.com/dbt-labs/dbt-docs/issues/358))
|
||||||
- update link to installation instructions ([dbt-docs/#None](https://github.com/dbt-labs/dbt-docs/issues/None))
|
- update link to installation instructions ([dbt-docs/#None](https://github.com/dbt-labs/dbt-docs/issues/None))
|
||||||
- Fix JSON path to overview docs ([dbt-docs/#366](https://github.com/dbt-labs/dbt-docs/issues/366))
|
- Fix JSON path to overview docs ([dbt-docs/#366](https://github.com/dbt-labs/dbt-docs/issues/366))
|
||||||
- Searchable column descriptions ([dbt-docs/#140](https://github.com/dbt-labs/dbt-docs/issues/140), [dbt-docs/#322](https://github.com/dbt-labs/dbt-docs/issues/322), [dbt-docs/#369](https://github.com/dbt-labs/dbt-docs/issues/369))
|
- Searchable column descriptions ([dbt-docs/#140](https://github.com/dbt-labs/dbt-docs/issues/140), [dbt-docs/#322](https://github.com/dbt-labs/dbt-docs/issues/322), [dbt-docs/#369](https://github.com/dbt-labs/dbt-docs/issues/369))
|
||||||
|
- Add access property to model details ([dbt-docs/#381](https://github.com/dbt-labs/dbt-docs/issues/381))
|
||||||
|
- Display model owner by name and email ([dbt-docs/#377](https://github.com/dbt-labs/dbt-docs/issues/377))
|
||||||
|
- Add view of public models sorted by group to left navigation ([dbt-docs/#379](https://github.com/dbt-labs/dbt-docs/issues/379))
|
||||||
|
- Distiguish node "access" in the DAG with node borders & opacity. ([dbt-docs/#378](https://github.com/dbt-labs/dbt-docs/issues/378))
|
||||||
|
- Fix JSON path to package overview docs ([dbt-docs/#390](https://github.com/dbt-labs/dbt-docs/issues/390))
|
||||||
|
- Add selection by group to DAG ([dbt-docs/#380](https://github.com/dbt-labs/dbt-docs/issues/380))
|
||||||
|
- Add support for model versions ([dbt-docs/#406](https://github.com/dbt-labs/dbt-docs/issues/406))
|
||||||
|
|
||||||
### Under the Hood
|
### Under the Hood
|
||||||
|
|
||||||
@@ -191,22 +146,61 @@
|
|||||||
- flags.THREADS defaults to None ([#6887](https://github.com/dbt-labs/dbt-core/issues/6887))
|
- flags.THREADS defaults to None ([#6887](https://github.com/dbt-labs/dbt-core/issues/6887))
|
||||||
- Fixing target type exposure error ([#6928](https://github.com/dbt-labs/dbt-core/issues/6928))
|
- Fixing target type exposure error ([#6928](https://github.com/dbt-labs/dbt-core/issues/6928))
|
||||||
- Test binary serialization of logging events ([#6852](https://github.com/dbt-labs/dbt-core/issues/6852))
|
- Test binary serialization of logging events ([#6852](https://github.com/dbt-labs/dbt-core/issues/6852))
|
||||||
|
- Treat contract config as a python object ([#6748](https://github.com/dbt-labs/dbt-core/issues/6748), [#7184](https://github.com/dbt-labs/dbt-core/issues/7184))
|
||||||
|
- Add deprecation warning for DBT_NO_PRINT ([#6960](https://github.com/dbt-labs/dbt-core/issues/6960))
|
||||||
|
- Make output_keys click param multi-option instead of a string ([#6676](https://github.com/dbt-labs/dbt-core/issues/6676))
|
||||||
|
- Remove cli doc generation workflow ([#7088](https://github.com/dbt-labs/dbt-core/issues/7088))
|
||||||
|
- Move validation of group earlier ([#7087](https://github.com/dbt-labs/dbt-core/issues/7087))
|
||||||
|
- Deprecate additional environment variables ([#6903](https://github.com/dbt-labs/dbt-core/issues/6903))
|
||||||
|
- Add CommandCompleted event, and fire it upon completion of every command ([#6878](https://github.com/dbt-labs/dbt-core/issues/6878))
|
||||||
|
- Improves build times for common selections by improving subgraph calculation ([#7195](https://github.com/dbt-labs/dbt-core/issues/7195))
|
||||||
|
- Remove upper pin for hologram/jsonschema ([#6775](https://github.com/dbt-labs/dbt-core/issues/6775))
|
||||||
|
- Generalize constraint compatibility warnings ([#7067](https://github.com/dbt-labs/dbt-core/issues/7067))
|
||||||
|
- Add kwargs support to dbtRunner ([#7070](https://github.com/dbt-labs/dbt-core/issues/7070))
|
||||||
|
- Add unique_id to ShowNode and CompiledNode logging events ([#7305](https://github.com/dbt-labs/dbt-core/issues/7305))
|
||||||
|
- Prettify message for ListRelations event ([#7310](https://github.com/dbt-labs/dbt-core/issues/7310))
|
||||||
|
- `Parse` now returns manifest when invoked via dbtRunner ([#6547](https://github.com/dbt-labs/dbt-core/issues/6547))
|
||||||
|
- Track data about group, access, contract, version usage ([#7170](https://github.com/dbt-labs/dbt-core/issues/7170), [#7171](https://github.com/dbt-labs/dbt-core/issues/7171))
|
||||||
|
|
||||||
### Dependencies
|
### Dependencies
|
||||||
|
|
||||||
|
- Update pathspec requirement from <0.11,>=0.9 to >=0.9,<0.12 in /core ([#6737](https://github.com/dbt-labs/dbt-core/pull/6737))
|
||||||
- Bump ubuntu from 22.04 to 23.04 ([#6865](https://github.com/dbt-labs/dbt-core/pull/6865))
|
- Bump ubuntu from 22.04 to 23.04 ([#6865](https://github.com/dbt-labs/dbt-core/pull/6865))
|
||||||
- Revert hoisting dbt.cli.main into the dbt.name namespace ([#](https://github.com/dbt-labs/dbt-core/pull/))
|
- Revert hoisting dbt.cli.main into the dbt.name namespace ([#](https://github.com/dbt-labs/dbt-core/pull/))
|
||||||
|
- Bump python from 3.11.1-slim-bullseye to 3.11.2-slim-bullseye in /docker ([#7196](https://github.com/dbt-labs/dbt-core/pull/7196))
|
||||||
|
- Bump black from 22.12.0 to 23.3.0 ([#7243](https://github.com/dbt-labs/dbt-core/pull/7243))
|
||||||
|
- Bump mashumaro[msgpack] from 3.3.1 to 3.6 ([#7294](https://github.com/dbt-labs/dbt-core/pull/7294))
|
||||||
|
|
||||||
|
### Dependency
|
||||||
|
|
||||||
|
- Bump mypy from 0.971 to 0.981 ([#4904](https://github.com/dbt-labs/dbt-core/issues/4904))
|
||||||
|
- Bump python from 3.10.7-slim-bullseye to 3.11.1-slim-bullseye in /docker ([#4904](https://github.com/dbt-labs/dbt-core/issues/4904))
|
||||||
|
- Bump black from 22.10.0 to 22.12.0 ([#4904](https://github.com/dbt-labs/dbt-core/issues/4904))
|
||||||
|
|
||||||
### Contributors
|
### Contributors
|
||||||
|
- [@@ttusing](https://github.com/@ttusing) ([#7195](https://github.com/dbt-labs/dbt-core/issues/7195))
|
||||||
|
- [@Goodkat](https://github.com/Goodkat) ([#6992](https://github.com/dbt-labs/dbt-core/issues/6992))
|
||||||
|
- [@MartinGuindon](https://github.com/MartinGuindon) ([#358](https://github.com/dbt-labs/dbt-core/issues/358))
|
||||||
|
- [@MatthieuBlais](https://github.com/MatthieuBlais) ([#7191](https://github.com/dbt-labs/dbt-core/issues/7191))
|
||||||
|
- [@RobbertDM](https://github.com/RobbertDM) ([#6781](https://github.com/dbt-labs/dbt-core/issues/6781))
|
||||||
- [@aezomz](https://github.com/aezomz) ([#2964](https://github.com/dbt-labs/dbt-core/issues/2964))
|
- [@aezomz](https://github.com/aezomz) ([#2964](https://github.com/dbt-labs/dbt-core/issues/2964))
|
||||||
|
- [@benallard](https://github.com/benallard) ([#7294](https://github.com/dbt-labs/dbt-core/pull/7294))
|
||||||
- [@boxysean](https://github.com/boxysean) ([#6697](https://github.com/dbt-labs/dbt-core/issues/6697))
|
- [@boxysean](https://github.com/boxysean) ([#6697](https://github.com/dbt-labs/dbt-core/issues/6697))
|
||||||
- [@callum-mcdata](https://github.com/callum-mcdata) ([#6928](https://github.com/dbt-labs/dbt-core/issues/6928))
|
- [@callum-mcdata](https://github.com/callum-mcdata) ([#6928](https://github.com/dbt-labs/dbt-core/issues/6928))
|
||||||
- [@dave-connors-3](https://github.com/dave-connors-3) ([#6699](https://github.com/dbt-labs/dbt-core/issues/6699))
|
- [@chamini2](https://github.com/chamini2) ([#7278](https://github.com/dbt-labs/dbt-core/issues/7278))
|
||||||
|
- [@dave-connors-3](https://github.com/dave-connors-3) ([#7054](https://github.com/dbt-labs/dbt-core/issues/7054), [#7315](https://github.com/dbt-labs/dbt-core/issues/7315), [#6699](https://github.com/dbt-labs/dbt-core/issues/6699))
|
||||||
- [@davidbloss](https://github.com/davidbloss) ([#6153](https://github.com/dbt-labs/dbt-core/issues/6153))
|
- [@davidbloss](https://github.com/davidbloss) ([#6153](https://github.com/dbt-labs/dbt-core/issues/6153))
|
||||||
- [@halvorlu](https://github.com/halvorlu) ([#366](https://github.com/dbt-labs/dbt-core/issues/366))
|
- [@halvorlu](https://github.com/halvorlu) ([#366](https://github.com/dbt-labs/dbt-core/issues/366))
|
||||||
|
- [@jmg-duarte](https://github.com/jmg-duarte) ([#6102](https://github.com/dbt-labs/dbt-core/issues/6102))
|
||||||
|
- [@kentkr](https://github.com/kentkr) ([#7209](https://github.com/dbt-labs/dbt-core/issues/7209))
|
||||||
|
- [@leo-schick](https://github.com/leo-schick) ([#6078](https://github.com/dbt-labs/dbt-core/issues/6078))
|
||||||
- [@nielspardon](https://github.com/nielspardon) ([#6900](https://github.com/dbt-labs/dbt-core/issues/6900))
|
- [@nielspardon](https://github.com/nielspardon) ([#6900](https://github.com/dbt-labs/dbt-core/issues/6900))
|
||||||
|
- [@rlh1994](https://github.com/rlh1994) ([#6876](https://github.com/dbt-labs/dbt-core/issues/6876), [#390](https://github.com/dbt-labs/dbt-core/issues/390))
|
||||||
- [@ryancharris](https://github.com/ryancharris) ([#None](https://github.com/dbt-labs/dbt-core/issues/None))
|
- [@ryancharris](https://github.com/ryancharris) ([#None](https://github.com/dbt-labs/dbt-core/issues/None))
|
||||||
|
- [@sdebruyn](https://github.com/sdebruyn) ([#7077](https://github.com/dbt-labs/dbt-core/issues/7077))
|
||||||
|
- [@seub](https://github.com/seub) ([#6603](https://github.com/dbt-labs/dbt-core/issues/6603))
|
||||||
- [@sungchun12](https://github.com/sungchun12) ([#6079](https://github.com/dbt-labs/dbt-core/issues/6079))
|
- [@sungchun12](https://github.com/sungchun12) ([#6079](https://github.com/dbt-labs/dbt-core/issues/6079))
|
||||||
|
- [@z3z1ma](https://github.com/z3z1ma) ([#6598](https://github.com/dbt-labs/dbt-core/issues/6598))
|
||||||
|
|
||||||
## Previous Releases
|
## Previous Releases
|
||||||
|
|
||||||
|
|||||||
3
Makefile
3
Makefile
@@ -30,7 +30,8 @@ CI_FLAGS =\
|
|||||||
.PHONY: dev_req
|
.PHONY: dev_req
|
||||||
dev_req: ## Installs dbt-* packages in develop mode along with only development dependencies.
|
dev_req: ## Installs dbt-* packages in develop mode along with only development dependencies.
|
||||||
@\
|
@\
|
||||||
pip install -r dev-requirements.txt -r editable-requirements.txt
|
pip install -r dev-requirements.txt
|
||||||
|
pip install -r editable-requirements.txt
|
||||||
|
|
||||||
.PHONY: dev
|
.PHONY: dev
|
||||||
dev: dev_req ## Installs dbt-* packages in develop mode along with development dependencies and pre-commit.
|
dev: dev_req ## Installs dbt-* packages in develop mode along with development dependencies and pre-commit.
|
||||||
|
|||||||
@@ -1,4 +1,4 @@
|
|||||||
from pathlib import Path, PurePath
|
from pathlib import Path
|
||||||
|
|
||||||
import click
|
import click
|
||||||
from dbt.cli.options import MultiOption
|
from dbt.cli.options import MultiOption
|
||||||
@@ -23,7 +23,7 @@ browser = click.option(
|
|||||||
cache_selected_only = click.option(
|
cache_selected_only = click.option(
|
||||||
"--cache-selected-only/--no-cache-selected-only",
|
"--cache-selected-only/--no-cache-selected-only",
|
||||||
envvar="DBT_CACHE_SELECTED_ONLY",
|
envvar="DBT_CACHE_SELECTED_ONLY",
|
||||||
help="Pre cache database objects relevant to selected resource only.",
|
help="At start of run, populate relational cache only for schemas containing selected nodes, or for all schemas of interest.",
|
||||||
)
|
)
|
||||||
|
|
||||||
introspect = click.option(
|
introspect = click.option(
|
||||||
@@ -121,7 +121,7 @@ indirect_selection = click.option(
|
|||||||
|
|
||||||
log_cache_events = click.option(
|
log_cache_events = click.option(
|
||||||
"--log-cache-events/--no-log-cache-events",
|
"--log-cache-events/--no-log-cache-events",
|
||||||
help="Enable verbose adapter cache logging.",
|
help="Enable verbose logging for relational cache events to help when debugging.",
|
||||||
envvar="DBT_LOG_CACHE_EVENTS",
|
envvar="DBT_LOG_CACHE_EVENTS",
|
||||||
)
|
)
|
||||||
|
|
||||||
@@ -229,7 +229,7 @@ output_path = click.option(
|
|||||||
envvar=None,
|
envvar=None,
|
||||||
help="Specify the output path for the JSON report. By default, outputs to 'target/sources.json'",
|
help="Specify the output path for the JSON report. By default, outputs to 'target/sources.json'",
|
||||||
type=click.Path(file_okay=True, dir_okay=False, writable=True),
|
type=click.Path(file_okay=True, dir_okay=False, writable=True),
|
||||||
default=PurePath.joinpath(Path.cwd(), "target/sources.json"),
|
default=None,
|
||||||
)
|
)
|
||||||
|
|
||||||
partial_parse = click.option(
|
partial_parse = click.option(
|
||||||
@@ -242,7 +242,7 @@ partial_parse = click.option(
|
|||||||
populate_cache = click.option(
|
populate_cache = click.option(
|
||||||
"--populate-cache/--no-populate-cache",
|
"--populate-cache/--no-populate-cache",
|
||||||
envvar="DBT_POPULATE_CACHE",
|
envvar="DBT_POPULATE_CACHE",
|
||||||
help="Allow for partial parsing by looking for and writing to a pickle file in the target directory. This overrides the user configuration file.",
|
help="At start of run, use `show` or `information_schema` queries to populate a relational cache, which can speed up subsequent materializations.",
|
||||||
default=True,
|
default=True,
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|||||||
@@ -177,7 +177,7 @@ class RefableLookup(dbtClassMixin):
|
|||||||
if node.name not in self.storage:
|
if node.name not in self.storage:
|
||||||
self.storage[node.name] = {}
|
self.storage[node.name] = {}
|
||||||
|
|
||||||
if node.resource_type in self._versioned_types and node.version:
|
if node.is_versioned:
|
||||||
if node.search_name not in self.storage:
|
if node.search_name not in self.storage:
|
||||||
self.storage[node.search_name] = {}
|
self.storage[node.search_name] = {}
|
||||||
self.storage[node.search_name][node.package_name] = node.unique_id
|
self.storage[node.search_name][node.package_name] = node.unique_id
|
||||||
|
|||||||
@@ -119,6 +119,10 @@ class BaseNode(dbtClassMixin, Replaceable):
|
|||||||
def is_relational(self):
|
def is_relational(self):
|
||||||
return self.resource_type in NodeType.refable()
|
return self.resource_type in NodeType.refable()
|
||||||
|
|
||||||
|
@property
|
||||||
|
def is_versioned(self):
|
||||||
|
return self.resource_type in NodeType.versioned() and self.version is not None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_ephemeral(self):
|
def is_ephemeral(self):
|
||||||
return self.config.materialized == "ephemeral"
|
return self.config.materialized == "ephemeral"
|
||||||
@@ -664,8 +668,8 @@ class ModelNode(CompiledNode):
|
|||||||
latest_version: Optional[NodeVersion] = None
|
latest_version: Optional[NodeVersion] = None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def is_latest_version(self):
|
def is_latest_version(self) -> bool:
|
||||||
return self.version and self.version == self.latest_version
|
return self.version is not None and self.version == self.latest_version
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def search_name(self):
|
def search_name(self):
|
||||||
|
|||||||
@@ -244,7 +244,7 @@ class ContractBreakingChangeError(DbtRuntimeError):
|
|||||||
"While comparing to previous project state, dbt detected a breaking change to an enforced contract."
|
"While comparing to previous project state, dbt detected a breaking change to an enforced contract."
|
||||||
f"\n\n{reasons}\n\n"
|
f"\n\n{reasons}\n\n"
|
||||||
"Consider making an additive (non-breaking) change instead, if possible.\n"
|
"Consider making an additive (non-breaking) change instead, if possible.\n"
|
||||||
"Otherwise, create a new model version: https://docs.getdbt.com/docs/collaborate/publish/model-versions"
|
"Otherwise, create a new model version: https://docs.getdbt.com/docs/collaborate/govern/model-versions"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -210,8 +210,7 @@ class QualifiedNameSelectorMethod(SelectorMethod):
|
|||||||
"""
|
"""
|
||||||
parsed_nodes = list(self.parsed_nodes(included_nodes))
|
parsed_nodes = list(self.parsed_nodes(included_nodes))
|
||||||
for node, real_node in parsed_nodes:
|
for node, real_node in parsed_nodes:
|
||||||
is_versioned = isinstance(real_node, ModelNode) and real_node.version is not None
|
if self.node_is_match(selector, real_node.fqn, real_node.is_versioned):
|
||||||
if self.node_is_match(selector, real_node.fqn, is_versioned):
|
|
||||||
yield node
|
yield node
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -1106,7 +1106,7 @@ def _check_resource_uniqueness(
|
|||||||
full_node_name = str(relation)
|
full_node_name = str(relation)
|
||||||
|
|
||||||
existing_node = names_resources.get(name)
|
existing_node = names_resources.get(name)
|
||||||
if existing_node is not None and existing_node.version is None:
|
if existing_node is not None and not existing_node.is_versioned:
|
||||||
raise dbt.exceptions.DuplicateResourceNameError(existing_node, node)
|
raise dbt.exceptions.DuplicateResourceNameError(existing_node, node)
|
||||||
|
|
||||||
existing_alias = alias_resources.get(full_node_name)
|
existing_alias = alias_resources.get(full_node_name)
|
||||||
|
|||||||
@@ -1068,7 +1068,9 @@ class ModelPatchParser(NodePatchParser[UnparsedModelUpdate]):
|
|||||||
else:
|
else:
|
||||||
assert isinstance(self.yaml.file, SchemaSourceFile)
|
assert isinstance(self.yaml.file, SchemaSourceFile)
|
||||||
source_file: SchemaSourceFile = self.yaml.file
|
source_file: SchemaSourceFile = self.yaml.file
|
||||||
latest_version = target.latest_version or max(versions).v
|
latest_version = (
|
||||||
|
target.latest_version if target.latest_version is not None else max(versions).v
|
||||||
|
)
|
||||||
for unparsed_version in versions:
|
for unparsed_version in versions:
|
||||||
versioned_model_name = (
|
versioned_model_name = (
|
||||||
unparsed_version.defined_in or f"{block.name}_{unparsed_version.formatted_v}"
|
unparsed_version.defined_in or f"{block.name}_{unparsed_version.formatted_v}"
|
||||||
|
|||||||
@@ -232,5 +232,5 @@ def _get_adapter_plugin_names() -> Iterator[str]:
|
|||||||
yield plugin_name
|
yield plugin_name
|
||||||
|
|
||||||
|
|
||||||
__version__ = "1.5.0b5"
|
__version__ = "1.5.0rc2"
|
||||||
installed = get_installed_version()
|
installed = get_installed_version()
|
||||||
|
|||||||
@@ -25,7 +25,7 @@ with open(os.path.join(this_directory, "README.md")) as f:
|
|||||||
|
|
||||||
|
|
||||||
package_name = "dbt-core"
|
package_name = "dbt-core"
|
||||||
package_version = "1.5.0b5"
|
package_version = "1.5.0rc2"
|
||||||
description = """With dbt, data analysts and engineers can build analytics \
|
description = """With dbt, data analysts and engineers can build analytics \
|
||||||
the way engineers build applications."""
|
the way engineers build applications."""
|
||||||
|
|
||||||
@@ -58,7 +58,7 @@ setup(
|
|||||||
"networkx>=2.3,<2.8.1;python_version<'3.8'",
|
"networkx>=2.3,<2.8.1;python_version<'3.8'",
|
||||||
"networkx>=2.3,<3;python_version>='3.8'",
|
"networkx>=2.3,<3;python_version>='3.8'",
|
||||||
"packaging>20.9",
|
"packaging>20.9",
|
||||||
"sqlparse>=0.2.3,<0.5",
|
"sqlparse>=0.2.3,<0.4.4",
|
||||||
"dbt-extractor~=0.4.1",
|
"dbt-extractor~=0.4.1",
|
||||||
"typing-extensions>=3.7.4",
|
"typing-extensions>=3.7.4",
|
||||||
"werkzeug>=1,<3",
|
"werkzeug>=1,<3",
|
||||||
|
|||||||
@@ -14,12 +14,12 @@ FROM --platform=$build_for python:3.11.2-slim-bullseye as base
|
|||||||
# N.B. The refs updated automagically every release via bumpversion
|
# N.B. The refs updated automagically every release via bumpversion
|
||||||
# N.B. dbt-postgres is currently found in the core codebase so a value of dbt-core@<some_version> is correct
|
# N.B. dbt-postgres is currently found in the core codebase so a value of dbt-core@<some_version> is correct
|
||||||
|
|
||||||
ARG dbt_core_ref=dbt-core@v1.5.0b5
|
ARG dbt_core_ref=dbt-core@v1.5.0rc2
|
||||||
ARG dbt_postgres_ref=dbt-core@v1.5.0b5
|
ARG dbt_postgres_ref=dbt-core@v1.5.0rc2
|
||||||
ARG dbt_redshift_ref=dbt-redshift@v1.5.0b5
|
ARG dbt_redshift_ref=dbt-redshift@v1.5.0rc2
|
||||||
ARG dbt_bigquery_ref=dbt-bigquery@v1.5.0b5
|
ARG dbt_bigquery_ref=dbt-bigquery@v1.5.0rc2
|
||||||
ARG dbt_snowflake_ref=dbt-snowflake@v1.5.0b5
|
ARG dbt_snowflake_ref=dbt-snowflake@v1.5.0rc2
|
||||||
ARG dbt_spark_ref=dbt-spark@v1.5.0b5
|
ARG dbt_spark_ref=dbt-spark@v1.5.0rc2
|
||||||
# special case args
|
# special case args
|
||||||
ARG dbt_spark_version=all
|
ARG dbt_spark_version=all
|
||||||
ARG dbt_third_party
|
ARG dbt_third_party
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
version = "1.5.0b5"
|
version = "1.5.0rc2"
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ def _dbt_psycopg2_name():
|
|||||||
|
|
||||||
|
|
||||||
package_name = "dbt-postgres"
|
package_name = "dbt-postgres"
|
||||||
package_version = "1.5.0b5"
|
package_version = "1.5.0rc2"
|
||||||
description = """The postgres adapter plugin for dbt (data build tool)"""
|
description = """The postgres adapter plugin for dbt (data build tool)"""
|
||||||
|
|
||||||
this_directory = os.path.abspath(os.path.dirname(__file__))
|
this_directory = os.path.abspath(os.path.dirname(__file__))
|
||||||
|
|||||||
@@ -42,6 +42,7 @@ def _get_manifest(graph):
|
|||||||
resource_type=NodeType.Model,
|
resource_type=NodeType.Model,
|
||||||
empty=False,
|
empty=False,
|
||||||
config=mock.MagicMock(enabled=True),
|
config=mock.MagicMock(enabled=True),
|
||||||
|
is_versioned=False,
|
||||||
)
|
)
|
||||||
nodes[unique_id] = node
|
nodes[unique_id] = node
|
||||||
|
|
||||||
|
|||||||
@@ -25,6 +25,7 @@ def _mock_manifest(nodes):
|
|||||||
empty=False,
|
empty=False,
|
||||||
config=config,
|
config=config,
|
||||||
fqn=["pkg", n],
|
fqn=["pkg", n],
|
||||||
|
is_versioned=False,
|
||||||
)
|
)
|
||||||
for n in nodes
|
for n in nodes
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1399,6 +1399,20 @@ def _refable_parameter_sets():
|
|||||||
version=None,
|
version=None,
|
||||||
expected=None,
|
expected=None,
|
||||||
),
|
),
|
||||||
|
FindNodeSpec(
|
||||||
|
nodes=[MockNode("root", "my_model", version="0", is_latest_version=False)],
|
||||||
|
sources=[],
|
||||||
|
package="root",
|
||||||
|
version=None,
|
||||||
|
expected=None,
|
||||||
|
),
|
||||||
|
FindNodeSpec(
|
||||||
|
nodes=[MockNode("root", "my_model", version="0", is_latest_version=True)],
|
||||||
|
sources=[],
|
||||||
|
package="root",
|
||||||
|
version=None,
|
||||||
|
expected=("root", "my_model", "0"),
|
||||||
|
),
|
||||||
# a source with that name exists, but not a refable
|
# a source with that name exists, but not a refable
|
||||||
FindNodeSpec(
|
FindNodeSpec(
|
||||||
nodes=[],
|
nodes=[],
|
||||||
|
|||||||
@@ -259,9 +259,6 @@ MULTIPLE_TABLE_VERSIONED_MODEL_TESTS = """
|
|||||||
models:
|
models:
|
||||||
- name: my_model
|
- name: my_model
|
||||||
description: A description of my model
|
description: A description of my model
|
||||||
config:
|
|
||||||
materialized: table
|
|
||||||
sql_header: test_sql_header
|
|
||||||
tests:
|
tests:
|
||||||
- unique:
|
- unique:
|
||||||
column_name: color
|
column_name: color
|
||||||
@@ -280,6 +277,31 @@ models:
|
|||||||
columns:
|
columns:
|
||||||
- include: '*'
|
- include: '*'
|
||||||
- name: extra
|
- name: extra
|
||||||
|
- v: 2
|
||||||
|
columns:
|
||||||
|
- include: '*'
|
||||||
|
exclude: ['location_id']
|
||||||
|
- name: extra
|
||||||
|
"""
|
||||||
|
|
||||||
|
MULTIPLE_TABLE_VERSIONED_MODEL = """
|
||||||
|
models:
|
||||||
|
- name: my_model
|
||||||
|
description: A description of my model
|
||||||
|
config:
|
||||||
|
materialized: table
|
||||||
|
sql_header: test_sql_header
|
||||||
|
columns:
|
||||||
|
- name: color
|
||||||
|
description: The color value
|
||||||
|
- name: location_id
|
||||||
|
data_type: int
|
||||||
|
versions:
|
||||||
|
- v: 1
|
||||||
|
defined_in: arbitrary_file_name
|
||||||
|
columns:
|
||||||
|
- include: '*'
|
||||||
|
- name: extra
|
||||||
- v: 2
|
- v: 2
|
||||||
config:
|
config:
|
||||||
materialized: view
|
materialized: view
|
||||||
@@ -289,6 +311,26 @@ models:
|
|||||||
- name: extra
|
- name: extra
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
MULTIPLE_TABLE_VERSIONED_MODEL_V0 = """
|
||||||
|
models:
|
||||||
|
- name: my_model
|
||||||
|
versions:
|
||||||
|
- v: 0
|
||||||
|
defined_in: arbitrary_file_name
|
||||||
|
- v: 2
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
|
MULTIPLE_TABLE_VERSIONED_MODEL_V0_LATEST_VERSION = """
|
||||||
|
models:
|
||||||
|
- name: my_model
|
||||||
|
latest_version: 0
|
||||||
|
versions:
|
||||||
|
- v: 0
|
||||||
|
defined_in: arbitrary_file_name
|
||||||
|
- v: 2
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
SINGLE_TABLE_SOURCE_PATCH = """
|
SINGLE_TABLE_SOURCE_PATCH = """
|
||||||
sources:
|
sources:
|
||||||
@@ -554,7 +596,7 @@ class SchemaParserModelsTest(SchemaParserTest):
|
|||||||
self.assertEqual(self.parser.manifest.files[file_id].node_patches, ["model.root.my_model"])
|
self.assertEqual(self.parser.manifest.files[file_id].node_patches, ["model.root.my_model"])
|
||||||
|
|
||||||
|
|
||||||
class SchemaParserVersionedModelsTest(SchemaParserTest):
|
class SchemaParserVersionedModels(SchemaParserTest):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
super().setUp()
|
super().setUp()
|
||||||
my_model_v1_node = MockNode(
|
my_model_v1_node = MockNode(
|
||||||
@@ -604,11 +646,7 @@ class SchemaParserVersionedModelsTest(SchemaParserTest):
|
|||||||
self.assert_has_manifest_lengths(self.parser.manifest, nodes=5)
|
self.assert_has_manifest_lengths(self.parser.manifest, nodes=5)
|
||||||
|
|
||||||
all_nodes = sorted(self.parser.manifest.nodes.values(), key=lambda n: n.unique_id)
|
all_nodes = sorted(self.parser.manifest.nodes.values(), key=lambda n: n.unique_id)
|
||||||
tests = []
|
tests = [node for node in all_nodes if node.resource_type == NodeType.Test]
|
||||||
for node in all_nodes:
|
|
||||||
if node.resource_type != NodeType.Test:
|
|
||||||
continue
|
|
||||||
tests.append(node)
|
|
||||||
|
|
||||||
# test on color column on my_model v1
|
# test on color column on my_model v1
|
||||||
self.assertEqual(tests[0].config.severity, "WARN")
|
self.assertEqual(tests[0].config.severity, "WARN")
|
||||||
@@ -682,6 +720,84 @@ class SchemaParserVersionedModelsTest(SchemaParserTest):
|
|||||||
["model.snowplow.my_model.v1", "model.snowplow.my_model.v2"],
|
["model.snowplow.my_model.v1", "model.snowplow.my_model.v2"],
|
||||||
)
|
)
|
||||||
|
|
||||||
|
def test__parsed_versioned_models(self):
|
||||||
|
block = self.file_block_for(MULTIPLE_TABLE_VERSIONED_MODEL, "test_one.yml")
|
||||||
|
self.parser.manifest.files[block.file.file_id] = block.file
|
||||||
|
dct = yaml_from_file(block.file)
|
||||||
|
self.parser.parse_file(block, dct)
|
||||||
|
self.assert_has_manifest_lengths(self.parser.manifest, nodes=2)
|
||||||
|
|
||||||
|
all_nodes = sorted(self.parser.manifest.nodes.values(), key=lambda n: n.unique_id)
|
||||||
|
models = [node for node in all_nodes if node.resource_type == NodeType.Model]
|
||||||
|
|
||||||
|
# test v1 model
|
||||||
|
parsed_node_patch_v1 = models[0].patch.call_args_list[0][0][0]
|
||||||
|
self.assertEqual(models[0].unique_id, "model.snowplow.my_model.v1")
|
||||||
|
self.assertEqual(parsed_node_patch_v1.version, 1)
|
||||||
|
self.assertEqual(parsed_node_patch_v1.latest_version, 2)
|
||||||
|
self.assertEqual(
|
||||||
|
list(parsed_node_patch_v1.columns.keys()), ["color", "location_id", "extra"]
|
||||||
|
)
|
||||||
|
self.assertEqual(
|
||||||
|
parsed_node_patch_v1.config, {"materialized": "table", "sql_header": "test_sql_header"}
|
||||||
|
)
|
||||||
|
|
||||||
|
# test v2 model
|
||||||
|
parsed_node_patch_v2 = models[1].patch.call_args_list[0][0][0]
|
||||||
|
self.assertEqual(models[1].unique_id, "model.snowplow.my_model.v2")
|
||||||
|
self.assertEqual(parsed_node_patch_v2.version, 2)
|
||||||
|
self.assertEqual(parsed_node_patch_v2.latest_version, 2)
|
||||||
|
self.assertEqual(list(parsed_node_patch_v2.columns.keys()), ["color", "extra"])
|
||||||
|
self.assertEqual(
|
||||||
|
parsed_node_patch_v2.config, {"materialized": "view", "sql_header": "test_sql_header"}
|
||||||
|
)
|
||||||
|
|
||||||
|
def test__parsed_versioned_models_v0(self):
|
||||||
|
block = self.file_block_for(MULTIPLE_TABLE_VERSIONED_MODEL_V0, "test_one.yml")
|
||||||
|
self.parser.manifest.files[block.file.file_id] = block.file
|
||||||
|
dct = yaml_from_file(block.file)
|
||||||
|
self.parser.parse_file(block, dct)
|
||||||
|
self.assert_has_manifest_lengths(self.parser.manifest, nodes=2)
|
||||||
|
|
||||||
|
all_nodes = sorted(self.parser.manifest.nodes.values(), key=lambda n: n.unique_id)
|
||||||
|
models = [node for node in all_nodes if node.resource_type == NodeType.Model]
|
||||||
|
|
||||||
|
# test v0 model
|
||||||
|
parsed_node_patch_v1 = models[0].patch.call_args_list[0][0][0]
|
||||||
|
self.assertEqual(models[0].unique_id, "model.snowplow.my_model.v0")
|
||||||
|
self.assertEqual(parsed_node_patch_v1.version, 0)
|
||||||
|
self.assertEqual(parsed_node_patch_v1.latest_version, 2)
|
||||||
|
|
||||||
|
# test v2 model
|
||||||
|
parsed_node_patch_v2 = models[1].patch.call_args_list[0][0][0]
|
||||||
|
self.assertEqual(models[1].unique_id, "model.snowplow.my_model.v2")
|
||||||
|
self.assertEqual(parsed_node_patch_v2.version, 2)
|
||||||
|
self.assertEqual(parsed_node_patch_v2.latest_version, 2)
|
||||||
|
|
||||||
|
def test__parsed_versioned_models_v0_latest_version(self):
|
||||||
|
block = self.file_block_for(
|
||||||
|
MULTIPLE_TABLE_VERSIONED_MODEL_V0_LATEST_VERSION, "test_one.yml"
|
||||||
|
)
|
||||||
|
self.parser.manifest.files[block.file.file_id] = block.file
|
||||||
|
dct = yaml_from_file(block.file)
|
||||||
|
self.parser.parse_file(block, dct)
|
||||||
|
self.assert_has_manifest_lengths(self.parser.manifest, nodes=2)
|
||||||
|
|
||||||
|
all_nodes = sorted(self.parser.manifest.nodes.values(), key=lambda n: n.unique_id)
|
||||||
|
models = [node for node in all_nodes if node.resource_type == NodeType.Model]
|
||||||
|
|
||||||
|
# test v0 model
|
||||||
|
parsed_node_patch_v1 = models[0].patch.call_args_list[0][0][0]
|
||||||
|
self.assertEqual(models[0].unique_id, "model.snowplow.my_model.v0")
|
||||||
|
self.assertEqual(parsed_node_patch_v1.version, 0)
|
||||||
|
self.assertEqual(parsed_node_patch_v1.latest_version, 0)
|
||||||
|
|
||||||
|
# test v2 model
|
||||||
|
parsed_node_patch_v2 = models[1].patch.call_args_list[0][0][0]
|
||||||
|
self.assertEqual(models[1].unique_id, "model.snowplow.my_model.v2")
|
||||||
|
self.assertEqual(parsed_node_patch_v2.version, 2)
|
||||||
|
self.assertEqual(parsed_node_patch_v2.latest_version, 0)
|
||||||
|
|
||||||
|
|
||||||
sql_model = """
|
sql_model = """
|
||||||
{{ config(materialized="table") }}
|
{{ config(materialized="table") }}
|
||||||
|
|||||||
@@ -338,8 +338,8 @@ def MockNode(package, name, resource_type=None, **kwargs):
|
|||||||
search_name = name if version is None else f"{name}.v{version}"
|
search_name = name if version is None else f"{name}.v{version}"
|
||||||
unique_id = (
|
unique_id = (
|
||||||
f"{str(resource_type)}.{package}.{name}"
|
f"{str(resource_type)}.{package}.{name}"
|
||||||
if version is None
|
# if version is None
|
||||||
else f"{str(resource_type)}.{package}.{name}.v{version}"
|
# else f"{str(resource_type)}.{package}.{name}.v{version}"
|
||||||
)
|
)
|
||||||
node = mock.MagicMock(
|
node = mock.MagicMock(
|
||||||
__class__=cls,
|
__class__=cls,
|
||||||
|
|||||||
@@ -1 +1 @@
|
|||||||
version = "1.5.0b5"
|
version = "1.5.0rc2"
|
||||||
|
|||||||
@@ -20,7 +20,7 @@ except ImportError:
|
|||||||
|
|
||||||
|
|
||||||
package_name = "dbt-tests-adapter"
|
package_name = "dbt-tests-adapter"
|
||||||
package_version = "1.5.0b5"
|
package_version = "1.5.0rc2"
|
||||||
description = """The dbt adapter tests for adapter plugins"""
|
description = """The dbt adapter tests for adapter plugins"""
|
||||||
|
|
||||||
this_directory = os.path.abspath(os.path.dirname(__file__))
|
this_directory = os.path.abspath(os.path.dirname(__file__))
|
||||||
|
|||||||
@@ -51,6 +51,7 @@ models:
|
|||||||
- name: versioned
|
- name: versioned
|
||||||
latest_version: 2
|
latest_version: 2
|
||||||
versions:
|
versions:
|
||||||
|
- v: 0
|
||||||
- v: 1
|
- v: 1
|
||||||
- v: 2
|
- v: 2
|
||||||
- v: 3
|
- v: 3
|
||||||
|
|||||||
@@ -187,8 +187,15 @@ class TestSourceSnapshotFreshness(SuccessfulSourceFreshnessTest):
|
|||||||
|
|
||||||
|
|
||||||
class TestSourceFreshnessSelection(SuccessfulSourceFreshnessTest):
|
class TestSourceFreshnessSelection(SuccessfulSourceFreshnessTest):
|
||||||
def test_source_freshness_selection_select(self, project):
|
@pytest.fixture(scope="class")
|
||||||
|
def project_config_update(self, logs_dir):
|
||||||
|
return {
|
||||||
|
"target-path": logs_dir,
|
||||||
|
}
|
||||||
|
|
||||||
|
def test_source_freshness_selection_select(self, project, logs_dir):
|
||||||
"""Tests node selection using the --select argument."""
|
"""Tests node selection using the --select argument."""
|
||||||
|
"""Also validate that specify a target-path works as expected."""
|
||||||
self._set_updated_at_to(project, timedelta(hours=-2))
|
self._set_updated_at_to(project, timedelta(hours=-2))
|
||||||
# select source directly
|
# select source directly
|
||||||
results = self.run_dbt_with_vars(
|
results = self.run_dbt_with_vars(
|
||||||
@@ -198,13 +205,11 @@ class TestSourceFreshnessSelection(SuccessfulSourceFreshnessTest):
|
|||||||
"freshness",
|
"freshness",
|
||||||
"--select",
|
"--select",
|
||||||
"source:test_source.test_table",
|
"source:test_source.test_table",
|
||||||
"-o",
|
|
||||||
"target/pass_source.json",
|
|
||||||
],
|
],
|
||||||
)
|
)
|
||||||
assert len(results) == 1
|
assert len(results) == 1
|
||||||
assert results[0].status == "pass"
|
assert results[0].status == "pass"
|
||||||
self._assert_freshness_results("target/pass_source.json", "pass")
|
self._assert_freshness_results(f"{logs_dir}/sources.json", "pass")
|
||||||
|
|
||||||
|
|
||||||
class TestSourceFreshnessExclude(SuccessfulSourceFreshnessTest):
|
class TestSourceFreshnessExclude(SuccessfulSourceFreshnessTest):
|
||||||
|
|||||||
Reference in New Issue
Block a user