mirror of
https://github.com/dbt-labs/dbt-core
synced 2025-12-19 12:41:28 +00:00
Compare commits
1 Commits
postgres-s
...
ns/add-to-
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
dd53725f43 |
@@ -1,19 +1,15 @@
|
||||
[bumpversion]
|
||||
current_version = 1.9.0a1
|
||||
parse = (?P<major>[\d]+) # major version number
|
||||
\.(?P<minor>[\d]+) # minor version number
|
||||
\.(?P<patch>[\d]+) # patch version number
|
||||
(?P<prerelease> # optional pre-release - ex: a1, b2, rc25
|
||||
(?P<prekind>a|b|rc) # pre-release type
|
||||
(?P<num>[\d]+) # pre-release version number
|
||||
current_version = 1.5.0a1
|
||||
parse = (?P<major>\d+)
|
||||
\.(?P<minor>\d+)
|
||||
\.(?P<patch>\d+)
|
||||
((?P<prekind>a|b|rc)
|
||||
(?P<pre>\d+) # pre-release version num
|
||||
)(\.(?P<nightly>[a-z..0-9]+)
|
||||
)?
|
||||
( # optional nightly release indicator
|
||||
\.(?P<nightly>dev[0-9]+) # ex: .dev02142023
|
||||
)? # expected matches: `1.15.0`, `1.5.0a11`, `1.5.0a1.dev123`, `1.5.0.dev123457`, expected failures: `1`, `1.5`, `1.5.2-a1`, `text1.5.0`
|
||||
serialize =
|
||||
{major}.{minor}.{patch}{prekind}{num}.{nightly}
|
||||
{major}.{minor}.{patch}.{nightly}
|
||||
{major}.{minor}.{patch}{prekind}{num}
|
||||
{major}.{minor}.{patch}{prekind}{pre}.{nightly}
|
||||
{major}.{minor}.{patch}{prekind}{pre}
|
||||
{major}.{minor}.{patch}
|
||||
commit = False
|
||||
tag = False
|
||||
@@ -27,7 +23,7 @@ values =
|
||||
rc
|
||||
final
|
||||
|
||||
[bumpversion:part:num]
|
||||
[bumpversion:part:pre]
|
||||
first_value = 1
|
||||
|
||||
[bumpversion:part:nightly]
|
||||
@@ -35,3 +31,13 @@ first_value = 1
|
||||
[bumpversion:file:core/setup.py]
|
||||
|
||||
[bumpversion:file:core/dbt/version.py]
|
||||
|
||||
[bumpversion:file:plugins/postgres/setup.py]
|
||||
|
||||
[bumpversion:file:plugins/postgres/dbt/adapters/postgres/__version__.py]
|
||||
|
||||
[bumpversion:file:docker/Dockerfile]
|
||||
|
||||
[bumpversion:file:tests/adapter/setup.py]
|
||||
|
||||
[bumpversion:file:tests/adapter/dbt/tests/adapter/__version__.py]
|
||||
|
||||
@@ -3,9 +3,6 @@
|
||||
For information on prior major and minor releases, see their changelogs:
|
||||
|
||||
|
||||
* [1.7](https://github.com/dbt-labs/dbt-core/blob/1.7.latest/CHANGELOG.md)
|
||||
* [1.6](https://github.com/dbt-labs/dbt-core/blob/1.6.latest/CHANGELOG.md)
|
||||
* [1.5](https://github.com/dbt-labs/dbt-core/blob/1.5.latest/CHANGELOG.md)
|
||||
* [1.4](https://github.com/dbt-labs/dbt-core/blob/1.4.latest/CHANGELOG.md)
|
||||
* [1.3](https://github.com/dbt-labs/dbt-core/blob/1.3.latest/CHANGELOG.md)
|
||||
* [1.2](https://github.com/dbt-labs/dbt-core/blob/1.2.latest/CHANGELOG.md)
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
# dbt Core Changelog
|
||||
|
||||
- This file provides a full account of all changes to `dbt-core`
|
||||
- This file provides a full account of all changes to `dbt-core` and `dbt-postgres`
|
||||
- Changes are listed under the (pre)release in which they first appear. Subsequent releases include changes from previous releases.
|
||||
- "Breaking changes" listed under a version may require action from end users or external maintainers when upgrading to that version.
|
||||
- Do not edit this file directly. This file is auto-generated using [changie](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)
|
||||
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Breaking Changes
|
||||
body: Fix changing the current working directory when using dpt deps, clean and init.
|
||||
time: 2023-12-06T19:24:42.575372+09:00
|
||||
custom:
|
||||
Author: rariyama
|
||||
Issue: "8997"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Dependencies
|
||||
body: Remove logbook dependency
|
||||
time: 2024-05-09T09:37:17.745129-05:00
|
||||
custom:
|
||||
Author: emmyoop
|
||||
Issue: "8027"
|
||||
@@ -1,7 +0,0 @@
|
||||
kind: Dependencies
|
||||
body: Increase supported version range for dbt-semantic-interfaces. Needed to support
|
||||
custom calendar features.
|
||||
time: 2024-08-20T13:19:09.015225-07:00
|
||||
custom:
|
||||
Author: courtneyholcomb
|
||||
Issue: "9265"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Docs
|
||||
body: Enable display of unit tests
|
||||
time: 2024-03-11T14:03:44.490834-04:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "501"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Docs
|
||||
body: Unit tests not rendering
|
||||
time: 2024-05-01T02:10:50.987412+02:00
|
||||
custom:
|
||||
Author: aranke
|
||||
Issue: "506"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Docs
|
||||
body: Add support for Saved Query node
|
||||
time: 2024-05-16T22:30:36.206492-07:00
|
||||
custom:
|
||||
Author: ChenyuLInx
|
||||
Issue: "486"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Docs
|
||||
body: Fix npm security vulnerabilities as of June 2024
|
||||
time: 2024-06-13T15:10:48.301989+01:00
|
||||
custom:
|
||||
Author: aranke
|
||||
Issue: "513"
|
||||
6
.changes/unreleased/Features-20230107-003157.yaml
Normal file
6
.changes/unreleased/Features-20230107-003157.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Features
|
||||
body: Have dbt debug spit out structured json logs with flags enabled.
|
||||
time: 2023-01-07T00:31:57.516063-08:00
|
||||
custom:
|
||||
Author: versusfacit
|
||||
Issue: "5353"
|
||||
6
.changes/unreleased/Features-20230118-233801.yaml
Normal file
6
.changes/unreleased/Features-20230118-233801.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Features
|
||||
body: add adapter_response to dbt test and freshness result
|
||||
time: 2023-01-18T23:38:01.857342+08:00
|
||||
custom:
|
||||
Author: aezomz
|
||||
Issue: "2964"
|
||||
6
.changes/unreleased/Features-20230120-112921.yaml
Normal file
6
.changes/unreleased/Features-20230120-112921.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Features
|
||||
body: Improve error message for packages missing `dbt_project.yml`
|
||||
time: 2023-01-20T11:29:21.509967-07:00
|
||||
custom:
|
||||
Author: dbeatty10
|
||||
Issue: "6663"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Features
|
||||
body: serialize inferred primary key
|
||||
time: 2024-05-06T17:56:42.757673-05:00
|
||||
custom:
|
||||
Author: dave-connors-3
|
||||
Issue: "9824"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Features
|
||||
body: 'Add unit_test: selection method'
|
||||
time: 2024-05-07T16:27:17.047585-04:00
|
||||
custom:
|
||||
Author: michelleark
|
||||
Issue: "10053"
|
||||
@@ -1,7 +0,0 @@
|
||||
kind: Features
|
||||
body: Maximally parallelize dbt clone
|
||||
in clone command"
|
||||
time: 2024-05-22T00:03:09.765977-04:00
|
||||
custom:
|
||||
Author: michelleark
|
||||
Issue: "7914"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Features
|
||||
body: Add --host flag to dbt docs serve, defaulting to '127.0.0.1'
|
||||
time: 2024-05-27T12:44:05.040843-04:00
|
||||
custom:
|
||||
Author: michelleark
|
||||
Issue: "10229"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Features
|
||||
body: Update data_test to accept arbitrary config options
|
||||
time: 2024-05-31T15:08:16.431966-05:00
|
||||
custom:
|
||||
Author: McKnight-42
|
||||
Issue: "10197"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Features
|
||||
body: add pre_model and post_model hook calls to data and unit tests to be able to provide extra config options
|
||||
time: 2024-06-06T11:23:34.758675-05:00
|
||||
custom:
|
||||
Author: McKnight-42
|
||||
Issue: "10198"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Features
|
||||
body: add --empty value to jinja context as flags.EMPTY
|
||||
time: 2024-06-17T10:39:48.275801-04:00
|
||||
custom:
|
||||
Author: michelleark
|
||||
Issue: "10317"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Features
|
||||
body: Warning message for snapshot timestamp data types
|
||||
time: 2024-06-21T14:16:35.717637-04:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "10234"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Features
|
||||
body: Support cumulative_type_params & sub-daily granularities in semantic manifest.
|
||||
time: 2024-06-25T09:51:07.983248-07:00
|
||||
custom:
|
||||
Author: courtneyholcomb
|
||||
Issue: "10360"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Features
|
||||
body: Add time_granularity to metric spec.
|
||||
time: 2024-06-27T16:29:53.500917-07:00
|
||||
custom:
|
||||
Author: courtneyholcomb
|
||||
Issue: "10376"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Features
|
||||
body: Support standard schema/database fields for snapshots
|
||||
time: 2024-07-12T21:45:46.06011-04:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "10301"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Features
|
||||
body: Support ref and source in foreign key constraint expressions, bump dbt-common minimum to 1.6
|
||||
time: 2024-07-19T16:18:41.434278-04:00
|
||||
custom:
|
||||
Author: michelleark
|
||||
Issue: "8062"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Features
|
||||
body: Support new semantic layer time spine configs to enable sub-daily granularity.
|
||||
time: 2024-07-22T20:22:38.258249-07:00
|
||||
custom:
|
||||
Author: courtneyholcomb
|
||||
Issue: "10475"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Features
|
||||
body: Add support for behavior flags
|
||||
time: 2024-08-29T13:53:20.16122-04:00
|
||||
custom:
|
||||
Author: mikealfare
|
||||
Issue: "10618"
|
||||
6
.changes/unreleased/Fixes-20230116-123645.yaml
Normal file
6
.changes/unreleased/Fixes-20230116-123645.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Fixes
|
||||
body: Respect quoting config for dbt.ref(), dbt.source(), and dbt.this() in dbt-py models
|
||||
time: 2023-01-16T12:36:45.63092+01:00
|
||||
custom:
|
||||
Author: jtcohen6
|
||||
Issue: 6103 6619
|
||||
6
.changes/unreleased/Fixes-20230117-101342.yaml
Normal file
6
.changes/unreleased/Fixes-20230117-101342.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Fixes
|
||||
body: Provide backward compatibility for `get_merge_sql` arguments
|
||||
time: 2023-01-17T10:13:42.118336-06:00
|
||||
custom:
|
||||
Author: dave-connors-3
|
||||
Issue: "6625"
|
||||
6
.changes/unreleased/Fixes-20230124-115837.yaml
Normal file
6
.changes/unreleased/Fixes-20230124-115837.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Fixes
|
||||
body: Include adapter_response in NodeFinished run_result log event
|
||||
time: 2023-01-24T11:58:37.74179-05:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "6703"
|
||||
6
.changes/unreleased/Fixes-20230124-141943.yaml
Normal file
6
.changes/unreleased/Fixes-20230124-141943.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Fixes
|
||||
body: Sort cli vars before hashing for partial parsing
|
||||
time: 2023-01-24T14:19:43.333628-05:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "6710"
|
||||
6
.changes/unreleased/Fixes-20230125-191739.yaml
Normal file
6
.changes/unreleased/Fixes-20230125-191739.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Fixes
|
||||
body: '[Regression] exposure_content referenced incorrectly'
|
||||
time: 2023-01-25T19:17:39.942081-05:00
|
||||
custom:
|
||||
Author: Mathyoub
|
||||
Issue: "6738"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Remove unused check_new method
|
||||
time: 2023-06-01T20:41:57.556342+02:00
|
||||
custom:
|
||||
Author: kevinneville
|
||||
Issue: "7586"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Convert "Skipping model due to fail_fast" message to DEBUG level
|
||||
time: 2024-01-13T07:36:15.836294-00:00
|
||||
custom:
|
||||
Author: scottgigante,nevdelap
|
||||
Issue: "8774"
|
||||
@@ -1,7 +0,0 @@
|
||||
kind: Fixes
|
||||
body: 'Restore previous behavior for --favor-state: only favor defer_relation if not
|
||||
selected in current command"'
|
||||
time: 2024-05-08T15:11:27.510912+02:00
|
||||
custom:
|
||||
Author: jtcohen6
|
||||
Issue: "10107"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Unit test fixture (csv) returns null for empty value
|
||||
time: 2024-05-09T09:14:11.772709-04:00
|
||||
custom:
|
||||
Author: michelleark
|
||||
Issue: "9881"
|
||||
@@ -1,7 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Fix json format log and --quiet for ls and jinja print by converting print call
|
||||
to fire events
|
||||
time: 2024-05-16T15:39:13.896723-07:00
|
||||
custom:
|
||||
Author: ChenyuLInx
|
||||
Issue: "8756"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Add resource type to saved_query
|
||||
time: 2024-05-16T22:35:10.287514-07:00
|
||||
custom:
|
||||
Author: ChenyuLInx
|
||||
Issue: "10168"
|
||||
@@ -1,7 +0,0 @@
|
||||
kind: Fixes
|
||||
body: 'Fix: Order-insensitive unit test equality assertion for expected/actual with
|
||||
multiple nulls'
|
||||
time: 2024-05-22T18:28:55.91733-04:00
|
||||
custom:
|
||||
Author: michelleark
|
||||
Issue: "10167"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Renaming or removing a contracted model should raise a BreakingChange warning/error
|
||||
time: 2024-05-23T20:42:51.033946-04:00
|
||||
custom:
|
||||
Author: michelleark
|
||||
Issue: "10116"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: prefer disabled project nodes to external node
|
||||
time: 2024-05-24T13:11:35.440443-04:00
|
||||
custom:
|
||||
Author: michelleark
|
||||
Issue: "10224"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Fix issues with selectors and inline nodes
|
||||
time: 2024-06-05T11:16:52.187667-04:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: 8943 9269
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Fix snapshot config to work in yaml files
|
||||
time: 2024-06-07T13:46:48.383215-04:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "4000"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Improve handling of error when loading schema file list
|
||||
time: 2024-06-10T13:21:30.963371-04:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "10284"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Use model alias for the CTE identifier generated during ephemeral materialization
|
||||
time: 2024-06-10T20:05:22.510814008Z
|
||||
custom:
|
||||
Author: jeancochrane
|
||||
Issue: "5273"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Saved Query node fail during skip
|
||||
time: 2024-06-12T12:42:56.329073-07:00
|
||||
custom:
|
||||
Author: ChenyuLInx
|
||||
Issue: "10029"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Implement state:modified for saved queries
|
||||
time: 2024-06-12T15:21:39.851426-04:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "10294"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: DOn't warn on `unit_test` config paths that are properly used
|
||||
time: 2024-06-13T18:31:17.486497-07:00
|
||||
custom:
|
||||
Author: QMalcolm
|
||||
Issue: "10311"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Fix setting `silence` of `warn_error_options` via `dbt_project.yaml` flags
|
||||
time: 2024-06-24T17:17:29.464865-07:00
|
||||
custom:
|
||||
Author: QMalcolm
|
||||
Issue: "10160"
|
||||
@@ -1,7 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Attempt to provide test fixture tables with all values to set types correctly
|
||||
for comparisong with source tables
|
||||
time: 2024-06-25T17:17:37.514619-07:00
|
||||
custom:
|
||||
Author: versusfacit
|
||||
Issue: "10365"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Limit data_tests deprecation to root_project
|
||||
time: 2024-06-27T15:44:48.579869-04:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "9835"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: CLI flags should take precedence over env var flags
|
||||
time: 2024-07-09T17:24:40.918977-04:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "10304"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Fix typing for artifact schemas
|
||||
time: 2024-07-14T10:02:54.452099+09:00
|
||||
custom:
|
||||
Author: nakamichiworks
|
||||
Issue: "10442"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Fix over deletion of generated_metrics in partial parsing
|
||||
time: 2024-07-16T13:37:03.49651-04:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "10450"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Fix error constructing warn_error_options
|
||||
time: 2024-07-16T17:14:27.837171-04:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "10452"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Do not update varchar column definitions if a contract exists
|
||||
time: 2024-07-28T22:14:21.67712-04:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "10362"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: fix all_constraints access, disabled node parsing of non-uniquely named resources
|
||||
time: 2024-07-31T09:51:52.751135-04:00
|
||||
custom:
|
||||
Author: michelleark gshank
|
||||
Issue: "10509"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Propagate measure label when using create_metrics
|
||||
time: 2024-08-06T17:21:10.265494-07:00
|
||||
custom:
|
||||
Author: aliceliu
|
||||
Issue: "10536"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: respect --quiet and --warn-error-options for flag deprecations
|
||||
time: 2024-08-06T19:48:43.399453-04:00
|
||||
custom:
|
||||
Author: michelleark
|
||||
Issue: "10105"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Fix state:modified check for exports
|
||||
time: 2024-08-13T15:42:35.471685-07:00
|
||||
custom:
|
||||
Author: aliceliu
|
||||
Issue: "10138"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Filter out empty nodes after graph selection to support consistent selection of nodes that depend on upstream public models
|
||||
time: 2024-08-16T14:08:07.426235-07:00
|
||||
custom:
|
||||
Author: jtcohen6
|
||||
Issue: "8987"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Late render pre- and post-hooks configs in properties / schema YAML files
|
||||
time: 2024-08-24T21:09:03.252733-06:00
|
||||
custom:
|
||||
Author: dbeatty10
|
||||
Issue: "10603"
|
||||
@@ -1,7 +0,0 @@
|
||||
kind: Fixes
|
||||
body: Allow the use of env_var function in certain macros in which it was previously
|
||||
unavailable.
|
||||
time: 2024-08-29T10:57:01.160613-04:00
|
||||
custom:
|
||||
Author: peterallenwebb
|
||||
Issue: "10609"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Fixes
|
||||
body: 'Remove deprecation for tests: to data_tests: change'
|
||||
time: 2024-09-05T18:02:48.086421-04:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "10564"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Security
|
||||
body: Explicitly bind to localhost in docs serve
|
||||
time: 2024-05-22T09:45:40.748185-04:00
|
||||
custom:
|
||||
Author: ChenyuLInx michelleark
|
||||
Issue: "10209"
|
||||
6
.changes/unreleased/Under the Hood-20230113-132513.yaml
Normal file
6
.changes/unreleased/Under the Hood-20230113-132513.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Under the Hood
|
||||
body: Fix use of ConnectionReused logging event
|
||||
time: 2023-01-13T13:25:13.023168-05:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "6168"
|
||||
6
.changes/unreleased/Under the Hood-20230113-150700.yaml
Normal file
6
.changes/unreleased/Under the Hood-20230113-150700.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Under the Hood
|
||||
body: Port docs tests to pytest
|
||||
time: 2023-01-13T15:07:00.477038-05:00
|
||||
custom:
|
||||
Author: peterallenwebb
|
||||
Issue: "6573"
|
||||
6
.changes/unreleased/Under the Hood-20230117-111737.yaml
Normal file
6
.changes/unreleased/Under the Hood-20230117-111737.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Under the Hood
|
||||
body: Update deprecated github action command
|
||||
time: 2023-01-17T11:17:37.046095-06:00
|
||||
custom:
|
||||
Author: davidbloss
|
||||
Issue: "6153"
|
||||
7
.changes/unreleased/Under the Hood-20230120-172254.yaml
Normal file
7
.changes/unreleased/Under the Hood-20230120-172254.yaml
Normal file
@@ -0,0 +1,7 @@
|
||||
kind: Under the Hood
|
||||
body: Replaced the EmptyLine event with a more general Formatting event, and added
|
||||
a Note event.
|
||||
time: 2023-01-20T17:22:54.45828-05:00
|
||||
custom:
|
||||
Author: peterallenwebb
|
||||
Issue: "6481"
|
||||
6
.changes/unreleased/Under the Hood-20230122-215235.yaml
Normal file
6
.changes/unreleased/Under the Hood-20230122-215235.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Under the Hood
|
||||
body: Small optimization on manifest parsing benefitting large DAGs
|
||||
time: 2023-01-22T21:52:35.549814+01:00
|
||||
custom:
|
||||
Author: boxysean
|
||||
Issue: "6697"
|
||||
6
.changes/unreleased/Under the Hood-20230124-153553.yaml
Normal file
6
.changes/unreleased/Under the Hood-20230124-153553.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Under the Hood
|
||||
body: Revised and simplified various structured logging events
|
||||
time: 2023-01-24T15:35:53.065356-05:00
|
||||
custom:
|
||||
Author: peterallenwebb
|
||||
Issue: 6664 6665 6666
|
||||
6
.changes/unreleased/Under the Hood-20230126-135939.yaml
Normal file
6
.changes/unreleased/Under the Hood-20230126-135939.yaml
Normal file
@@ -0,0 +1,6 @@
|
||||
kind: Under the Hood
|
||||
body: ' Optimized GraphQueue to remove graph analysis bottleneck in large dags.'
|
||||
time: 2023-01-26T13:59:39.518345-05:00
|
||||
custom:
|
||||
Author: peterallenwebb
|
||||
Issue: "6759"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Under the Hood
|
||||
body: Clear error message for Private package in dbt-core
|
||||
time: 2024-05-02T15:44:30.713097-07:00
|
||||
custom:
|
||||
Author: ChenyuLInx
|
||||
Issue: "10083"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Under the Hood
|
||||
body: Enable use of context in serialization
|
||||
time: 2024-05-06T14:55:11.1812-04:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "10093"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Under the Hood
|
||||
body: Make RSS high water mark measurement more accurate on Linux
|
||||
time: 2024-05-19T15:59:46.700842315-04:00
|
||||
custom:
|
||||
Author: peterallenwebb
|
||||
Issue: "10177"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Under the Hood
|
||||
body: Enable record filtering by type.
|
||||
time: 2024-05-29T10:28:14.547624-05:00
|
||||
custom:
|
||||
Author: emmyoop
|
||||
Issue: "10240"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Under the Hood
|
||||
body: Remove IntermediateSnapshotNode
|
||||
time: 2024-06-18T14:06:52.618602-04:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "10326"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Under the Hood
|
||||
body: Additional logging for skipped ephemeral models
|
||||
time: 2024-07-01T13:17:50.827788-04:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "10389"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Under the Hood
|
||||
body: bump black to 24.3.0
|
||||
time: 2024-07-16T18:48:59.651834-04:00
|
||||
custom:
|
||||
Author: michelleark
|
||||
Issue: "10454"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Under the Hood
|
||||
body: generate protos with protoc version 5.26.1
|
||||
time: 2024-07-16T20:57:03.332448-04:00
|
||||
custom:
|
||||
Author: michelleark
|
||||
Issue: "10457"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Under the Hood
|
||||
body: Move from minimal-snowplow-tracker fork back to snowplow-tracker
|
||||
time: 2024-08-06T15:54:06.422444-04:00
|
||||
custom:
|
||||
Author: peterallenwebb
|
||||
Issue: "8409"
|
||||
@@ -1,7 +0,0 @@
|
||||
kind: Under the Hood
|
||||
body: Add group info to RunResultError, RunResultFailure, RunResultWarning log lines
|
||||
time: 2024-08-07T15:56:52.171199-05:00
|
||||
custom:
|
||||
Author: aranke
|
||||
Issue: ""
|
||||
JiraID: "364"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Under the Hood
|
||||
body: Improve speed of tree traversal when finding children, increasing build speed for some selectors
|
||||
time: 2024-08-09T13:02:34.759905-07:00
|
||||
custom:
|
||||
Author: ttusing
|
||||
Issue: "10434"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Under the Hood
|
||||
body: Add test for sources tables with quotes
|
||||
time: 2024-08-21T09:55:16.038101-04:00
|
||||
custom:
|
||||
Author: gshank
|
||||
Issue: "10582"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Under the Hood
|
||||
body: Additional type hints for `core/dbt/version.py`
|
||||
time: 2024-08-27T10:50:14.047859-05:00
|
||||
custom:
|
||||
Author: QMalcolm
|
||||
Issue: "10612"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Under the Hood
|
||||
body: Fix typing issues in core/dbt/contracts/sql.py
|
||||
time: 2024-08-27T11:31:23.749912-05:00
|
||||
custom:
|
||||
Author: QMalcolm
|
||||
Issue: "10614"
|
||||
@@ -1,6 +0,0 @@
|
||||
kind: Under the Hood
|
||||
body: Fix type errors in `dbt/core/task/clean.py`
|
||||
time: 2024-08-27T11:48:10.438173-05:00
|
||||
custom:
|
||||
Author: QMalcolm
|
||||
Issue: "10616"
|
||||
@@ -4,7 +4,6 @@ headerPath: header.tpl.md
|
||||
versionHeaderPath: ""
|
||||
changelogPath: CHANGELOG.md
|
||||
versionExt: md
|
||||
envPrefix: "CHANGIE_"
|
||||
versionFormat: '## dbt-core {{.Version}} - {{.Time.Format "January 02, 2006"}}'
|
||||
kindFormat: '### {{.Kind}}'
|
||||
changeFormat: |-
|
||||
@@ -31,7 +30,43 @@ kinds:
|
||||
- {{.Body}} ({{ range $index, $element := $IssueList }}{{if $index}}, {{end}}{{$element}}{{end}})
|
||||
- label: Under the Hood
|
||||
- label: Dependencies
|
||||
changeFormat: |-
|
||||
{{- $PRList := list }}
|
||||
{{- $changes := splitList " " $.Custom.PR }}
|
||||
{{- range $pullrequest := $changes }}
|
||||
{{- $changeLink := "[#nbr](https://github.com/dbt-labs/dbt-core/pull/nbr)" | replace "nbr" $pullrequest }}
|
||||
{{- $PRList = append $PRList $changeLink }}
|
||||
{{- end -}}
|
||||
- {{.Body}} ({{ range $index, $element := $PRList }}{{if $index}}, {{end}}{{$element}}{{end}})
|
||||
skipGlobalChoices: true
|
||||
additionalChoices:
|
||||
- key: Author
|
||||
label: GitHub Username(s) (separated by a single space if multiple)
|
||||
type: string
|
||||
minLength: 3
|
||||
- key: PR
|
||||
label: GitHub Pull Request Number (separated by a single space if multiple)
|
||||
type: string
|
||||
minLength: 1
|
||||
- label: Security
|
||||
changeFormat: |-
|
||||
{{- $PRList := list }}
|
||||
{{- $changes := splitList " " $.Custom.PR }}
|
||||
{{- range $pullrequest := $changes }}
|
||||
{{- $changeLink := "[#nbr](https://github.com/dbt-labs/dbt-core/pull/nbr)" | replace "nbr" $pullrequest }}
|
||||
{{- $PRList = append $PRList $changeLink }}
|
||||
{{- end -}}
|
||||
- {{.Body}} ({{ range $index, $element := $PRList }}{{if $index}}, {{end}}{{$element}}{{end}})
|
||||
skipGlobalChoices: true
|
||||
additionalChoices:
|
||||
- key: Author
|
||||
label: GitHub Username(s) (separated by a single space if multiple)
|
||||
type: string
|
||||
minLength: 3
|
||||
- key: PR
|
||||
label: GitHub Pull Request Number (separated by a single space if multiple)
|
||||
type: string
|
||||
minLength: 1
|
||||
|
||||
newlines:
|
||||
afterChangelogHeader: 1
|
||||
@@ -52,36 +87,32 @@ custom:
|
||||
|
||||
footerFormat: |
|
||||
{{- $contributorDict := dict }}
|
||||
{{- /* ensure all names in this list are all lowercase for later matching purposes */}}
|
||||
{{- $core_team := splitList " " .Env.CORE_TEAM }}
|
||||
{{- /* ensure we always skip snyk and dependabot in addition to the core team */}}
|
||||
{{- $maintainers := list "dependabot[bot]" "snyk-bot"}}
|
||||
{{- range $team_member := $core_team }}
|
||||
{{- $team_member_lower := lower $team_member }}
|
||||
{{- $maintainers = append $maintainers $team_member_lower }}
|
||||
{{- end }}
|
||||
{{- /* any names added to this list should be all lowercase for later matching purposes */}}
|
||||
{{- $core_team := list "michelleark" "peterallenwebb" "emmyoop" "nathaniel-may" "gshank" "leahwicz" "chenyulinx" "stu-k" "iknox-fa" "versusfacit" "mcknight-42" "jtcohen6" "aranke" "dependabot[bot]" "snyk-bot" "colin-rogers-dbt" "nssalian" }}
|
||||
{{- range $change := .Changes }}
|
||||
{{- $authorList := splitList " " $change.Custom.Author }}
|
||||
{{- /* loop through all authors for a single changelog */}}
|
||||
{{- range $author := $authorList }}
|
||||
{{- $authorLower := lower $author }}
|
||||
{{- /* we only want to include non-core team contributors */}}
|
||||
{{- if not (has $authorLower $maintainers)}}
|
||||
{{- if not (has $authorLower $core_team)}}
|
||||
{{- $changeList := splitList " " $change.Custom.Author }}
|
||||
{{- $IssueList := list }}
|
||||
{{- /* Docs kind link back to dbt-docs instead of dbt-core issues */}}
|
||||
{{- $changeLink := $change.Kind }}
|
||||
{{- $changes := splitList " " $change.Custom.Issue }}
|
||||
{{- range $issueNbr := $changes }}
|
||||
{{- $changeLink := "[#nbr](https://github.com/dbt-labs/dbt-core/issues/nbr)" | replace "nbr" $issueNbr }}
|
||||
{{- $IssueList = append $IssueList $changeLink }}
|
||||
{{- if or (eq $change.Kind "Dependencies") (eq $change.Kind "Security") }}
|
||||
{{- $changeLink = "[#nbr](https://github.com/dbt-labs/dbt-core/pull/nbr)" | replace "nbr" $change.Custom.PR }}
|
||||
{{- else if eq $change.Kind "Docs"}}
|
||||
{{- $changeLink = "[dbt-docs/#nbr](https://github.com/dbt-labs/dbt-docs/issues/nbr)" | replace "nbr" $change.Custom.Issue }}
|
||||
{{- else }}
|
||||
{{- $changeLink = "[#nbr](https://github.com/dbt-labs/dbt-core/issues/nbr)" | replace "nbr" $change.Custom.Issue }}
|
||||
{{- end }}
|
||||
{{- /* check if this contributor has other changes associated with them already */}}
|
||||
{{- if hasKey $contributorDict $author }}
|
||||
{{- $contributionList := get $contributorDict $author }}
|
||||
{{- $contributionList = concat $contributionList $IssueList }}
|
||||
{{- $contributionList = append $contributionList $changeLink }}
|
||||
{{- $contributorDict := set $contributorDict $author $contributionList }}
|
||||
{{- else }}
|
||||
{{- $contributionList := $IssueList }}
|
||||
{{- $contributionList := list $changeLink }}
|
||||
{{- $contributorDict := set $contributorDict $author $contributionList }}
|
||||
{{- end }}
|
||||
{{- end}}
|
||||
|
||||
3
.flake8
3
.flake8
@@ -7,9 +7,6 @@ ignore =
|
||||
W503 # makes Flake8 work like black
|
||||
W504
|
||||
E203 # makes Flake8 work like black
|
||||
E704 # makes Flake8 work like black
|
||||
E741
|
||||
E501 # long line checking is done in black
|
||||
exclude = test/
|
||||
per-file-ignores =
|
||||
*/__init__.py: F401
|
||||
|
||||
6
.gitattributes
vendored
6
.gitattributes
vendored
@@ -1,6 +1,2 @@
|
||||
core/dbt/task/docs/index.html binary
|
||||
core/dbt/include/index.html binary
|
||||
tests/functional/artifacts/data/state/*/manifest.json binary
|
||||
core/dbt/docs/build/html/searchindex.js binary
|
||||
core/dbt/docs/build/html/index.html binary
|
||||
performance/runner/Cargo.lock binary
|
||||
core/dbt/events/types_pb2.py binary
|
||||
|
||||
63
.github/CODEOWNERS
vendored
63
.github/CODEOWNERS
vendored
@@ -11,8 +11,65 @@
|
||||
|
||||
# As a default for areas with no assignment,
|
||||
# the core team as a whole will be assigned
|
||||
* @dbt-labs/core-team
|
||||
* @dbt-labs/core
|
||||
|
||||
### ARTIFACTS
|
||||
# Changes to GitHub configurations including Actions
|
||||
/.github/ @leahwicz
|
||||
|
||||
/schemas/dbt @dbt-labs/cloud-artifacts
|
||||
### LANGUAGE
|
||||
|
||||
# Language core modules
|
||||
/core/dbt/config/ @dbt-labs/core-language
|
||||
/core/dbt/context/ @dbt-labs/core-language
|
||||
/core/dbt/contracts/ @dbt-labs/core-language
|
||||
/core/dbt/deps/ @dbt-labs/core-language
|
||||
/core/dbt/events/ @dbt-labs/core-language # structured logging
|
||||
/core/dbt/parser/ @dbt-labs/core-language
|
||||
|
||||
# Language misc files
|
||||
/core/dbt/dataclass_schema.py @dbt-labs/core-language
|
||||
/core/dbt/hooks.py @dbt-labs/core-language
|
||||
/core/dbt/node_types.py @dbt-labs/core-language
|
||||
/core/dbt/semver.py @dbt-labs/core-language
|
||||
|
||||
|
||||
### EXECUTION
|
||||
|
||||
# Execution core modules
|
||||
/core/dbt/graph/ @dbt-labs/core-execution
|
||||
/core/dbt/task/ @dbt-labs/core-execution
|
||||
|
||||
# Execution misc files
|
||||
/core/dbt/compilation.py @dbt-labs/core-execution
|
||||
/core/dbt/flags.py @dbt-labs/core-execution
|
||||
/core/dbt/lib.py @dbt-labs/core-execution
|
||||
/core/dbt/main.py @dbt-labs/core-execution
|
||||
/core/dbt/profiler.py @dbt-labs/core-execution
|
||||
/core/dbt/selected_resources.py @dbt-labs/core-execution
|
||||
/core/dbt/tracking.py @dbt-labs/core-execution
|
||||
/core/dbt/version.py @dbt-labs/core-execution
|
||||
|
||||
|
||||
### ADAPTERS
|
||||
|
||||
# Adapter interface ("base" + "sql" adapter defaults, cache)
|
||||
/core/dbt/adapters @dbt-labs/core-adapters
|
||||
|
||||
# Global project (default macros + materializations), starter project
|
||||
/core/dbt/include @dbt-labs/core-adapters
|
||||
|
||||
# Postgres plugin
|
||||
/plugins/ @dbt-labs/core-adapters
|
||||
|
||||
# Functional tests for adapter plugins
|
||||
/tests/adapter @dbt-labs/core-adapters
|
||||
|
||||
### TESTS
|
||||
|
||||
# Overlapping ownership for vast majority of unit + functional tests
|
||||
|
||||
# Perf regression testing framework
|
||||
# This excludes the test project files itself since those aren't specific
|
||||
# framework changes (excluded by not setting an owner next to it- no owner)
|
||||
/performance @nathaniel-may
|
||||
/performance/projects
|
||||
|
||||
18
.github/ISSUE_TEMPLATE/code-docs.yml
vendored
18
.github/ISSUE_TEMPLATE/code-docs.yml
vendored
@@ -1,18 +0,0 @@
|
||||
name: 📄 Code docs
|
||||
description: Report an issue for markdown files within this repo, such as README, ARCHITECTURE, etc.
|
||||
title: "[Code docs] <title>"
|
||||
labels: ["triage"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: |
|
||||
Thanks for taking the time to fill out this code docs issue!
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Please describe the issue and your proposals.
|
||||
description: |
|
||||
Links? References? Anything that will give us more context about the issue you are encountering!
|
||||
|
||||
Tip: You can attach images by clicking this area to highlight it and then dragging files in.
|
||||
validations:
|
||||
required: false
|
||||
3
.github/ISSUE_TEMPLATE/config.yml
vendored
3
.github/ISSUE_TEMPLATE/config.yml
vendored
@@ -1,8 +1,5 @@
|
||||
blank_issues_enabled: false
|
||||
contact_links:
|
||||
- name: Documentation
|
||||
url: https://github.com/dbt-labs/docs.getdbt.com/issues/new/choose
|
||||
about: Problems and issues with dbt product documentation hosted on docs.getdbt.com. Issues for markdown files within this repo, such as README, should be opened using the "Code docs" template.
|
||||
- name: Ask the community for help
|
||||
url: https://github.com/dbt-labs/docs.getdbt.com/discussions
|
||||
about: Need help troubleshooting? Check out our guide on how to ask
|
||||
|
||||
67
.github/ISSUE_TEMPLATE/implementation-ticket.yml
vendored
67
.github/ISSUE_TEMPLATE/implementation-ticket.yml
vendored
@@ -1,67 +0,0 @@
|
||||
name: 🛠️ Implementation
|
||||
description: This is an implementation ticket intended for use by the maintainers of dbt-core
|
||||
title: "[<project>] <title>"
|
||||
labels: ["user docs"]
|
||||
body:
|
||||
- type: markdown
|
||||
attributes:
|
||||
value: This is an implementation ticket intended for use by the maintainers of dbt-core
|
||||
- type: checkboxes
|
||||
attributes:
|
||||
label: Housekeeping
|
||||
description: >
|
||||
A couple friendly reminders:
|
||||
1. Remove the `user docs` label if the scope of this work does not require changes to https://docs.getdbt.com/docs: no end-user interface (e.g. yml spec, CLI, error messages, etc) or functional changes
|
||||
2. Link any blocking issues in the "Blocked on" field under the "Core devs & maintainers" project.
|
||||
options:
|
||||
- label: I am a maintainer of dbt-core
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Short description
|
||||
description: |
|
||||
Describe the scope of the ticket, a high-level implementation approach and any tradeoffs to consider
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Acceptance criteria
|
||||
description: |
|
||||
What is the definition of done for this ticket? Include any relevant edge cases and/or test cases
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Suggested Tests
|
||||
description: |
|
||||
Provide scenarios to test. Link to existing similar tests if appropriate.
|
||||
placeholder: |
|
||||
1. Test with no version specified in the schema file and use selection logic on a versioned model for a specific version. Expect pass.
|
||||
2. Test with a version specified in the schema file that is no valid. Expect ParsingError.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Impact to Other Teams
|
||||
description: |
|
||||
Will this change impact other teams? Include details of the kinds of changes required (new tests, code changes, related tickets) and _add the relevant `Impact:[team]` label_.
|
||||
placeholder: |
|
||||
Example: This change impacts `dbt-redshift` because the tests will need to be modified. The `Impact:[Adapter]` label has been added.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Will backports be required?
|
||||
description: |
|
||||
Will this change need to be backported to previous versions? Add details, possible blockers to backporting and _add the relevant backport labels `backport 1.x.latest`_
|
||||
placeholder: |
|
||||
Example: Backport to 1.6.latest, 1.5.latest and 1.4.latest. Since 1.4 isn't using click, the backport may be complicated. The `backport 1.6.latest`, `backport 1.5.latest` and `backport 1.4.latest` labels have been added.
|
||||
validations:
|
||||
required: true
|
||||
- type: textarea
|
||||
attributes:
|
||||
label: Context
|
||||
description: |
|
||||
Provide the "why", motivation, and alternative approaches considered -- linking to previous refinement issues, spikes and documentation as appropriate
|
||||
validations:
|
||||
required: false
|
||||
5
.github/_README.md
vendored
5
.github/_README.md
vendored
@@ -47,8 +47,7 @@ ___
|
||||
|
||||
### How to re-run jobs
|
||||
|
||||
- From the UI you can rerun from failure
|
||||
- You can retrigger the cla check by commenting on the PR with `@cla-bot check`
|
||||
- Some actions cannot be rerun in the GitHub UI. Namely the snyk checks and the cla check. Snyk checks are rerun by closing and reopening the PR. You can retrigger the cla check by commenting on the PR with `@cla-bot check`
|
||||
|
||||
___
|
||||
|
||||
@@ -198,7 +197,7 @@ ___
|
||||
|
||||
```yaml
|
||||
- name: Configure AWS credentials from Test account
|
||||
uses: aws-actions/configure-aws-credentials@v2
|
||||
uses: aws-actions/configure-aws-credentials@v1
|
||||
with:
|
||||
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
|
||||
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
|
||||
|
||||
2
.github/actions/latest-wrangler/README.md
vendored
2
.github/actions/latest-wrangler/README.md
vendored
@@ -35,7 +35,7 @@ jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v1
|
||||
- name: Wrangle latest tag
|
||||
id: is_latest
|
||||
uses: ./.github/actions/latest-wrangler
|
||||
|
||||
21
.github/actions/latest-wrangler/action.yml
vendored
21
.github/actions/latest-wrangler/action.yml
vendored
@@ -1,21 +1,20 @@
|
||||
name: "GitHub package `latest` tag wrangler for containers"
|
||||
description: "Determines if the published image should include `latest` tags"
|
||||
|
||||
name: "Github package 'latest' tag wrangler for containers"
|
||||
description: "Determines wether or not a given dbt container should be given a bare 'latest' tag (I.E. dbt-core:latest)"
|
||||
inputs:
|
||||
package_name:
|
||||
description: "Package being published (i.e. `dbt-core`, `dbt-redshift`, etc.)"
|
||||
description: "Package to check (I.E. dbt-core, dbt-redshift, etc)"
|
||||
required: true
|
||||
new_version:
|
||||
description: "SemVer of the package being published (i.e. 1.7.2, 1.8.0a1, etc.)"
|
||||
description: "Semver of the container being built (I.E. 1.0.4)"
|
||||
required: true
|
||||
github_token:
|
||||
description: "Auth token for GitHub (must have view packages scope)"
|
||||
gh_token:
|
||||
description: "Auth token for github (must have view packages scope)"
|
||||
required: true
|
||||
|
||||
outputs:
|
||||
tags:
|
||||
description: "A list of tags to associate with this version"
|
||||
|
||||
latest:
|
||||
description: "Wether or not built container should be tagged latest (bool)"
|
||||
minor_latest:
|
||||
description: "Wether or not built container should be tagged minor.latest (bool)"
|
||||
runs:
|
||||
using: "docker"
|
||||
image: "Dockerfile"
|
||||
|
||||
@@ -13,7 +13,7 @@ jobs:
|
||||
build:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
- uses: actions/checkout@v1
|
||||
- name: Wrangle latest tag
|
||||
id: is_latest
|
||||
uses: ./.github/actions/latest-wrangler
|
||||
|
||||
161
.github/actions/latest-wrangler/main.py
vendored
161
.github/actions/latest-wrangler/main.py
vendored
@@ -1,71 +1,98 @@
|
||||
import os
|
||||
from packaging.version import Version, parse
|
||||
import requests
|
||||
import sys
|
||||
from typing import List
|
||||
|
||||
|
||||
def main():
|
||||
package_name: str = os.environ["INPUT_PACKAGE_NAME"]
|
||||
new_version: Version = parse(os.environ["INPUT_NEW_VERSION"])
|
||||
github_token: str = os.environ["INPUT_GITHUB_TOKEN"]
|
||||
|
||||
response = _package_metadata(package_name, github_token)
|
||||
published_versions = _published_versions(response)
|
||||
new_version_tags = _new_version_tags(new_version, published_versions)
|
||||
_register_tags(new_version_tags, package_name)
|
||||
|
||||
|
||||
def _package_metadata(package_name: str, github_token: str) -> requests.Response:
|
||||
url = f"https://api.github.com/orgs/dbt-labs/packages/container/{package_name}/versions"
|
||||
return requests.get(url, auth=("", github_token))
|
||||
|
||||
|
||||
def _published_versions(response: requests.Response) -> List[Version]:
|
||||
package_metadata = response.json()
|
||||
return [
|
||||
parse(tag)
|
||||
for version in package_metadata
|
||||
for tag in version["metadata"]["container"]["tags"]
|
||||
if "latest" not in tag
|
||||
]
|
||||
|
||||
|
||||
def _new_version_tags(new_version: Version, published_versions: List[Version]) -> List[str]:
|
||||
# the package version is always a tag
|
||||
tags = [str(new_version)]
|
||||
|
||||
# pre-releases don't get tagged with `latest`
|
||||
if new_version.is_prerelease:
|
||||
return tags
|
||||
|
||||
if new_version > max(published_versions):
|
||||
tags.append("latest")
|
||||
|
||||
published_patches = [
|
||||
version
|
||||
for version in published_versions
|
||||
if version.major == new_version.major and version.minor == new_version.minor
|
||||
]
|
||||
if new_version > max(published_patches):
|
||||
tags.append(f"{new_version.major}.{new_version.minor}.latest")
|
||||
|
||||
return tags
|
||||
|
||||
|
||||
def _register_tags(tags: List[str], package_name: str) -> None:
|
||||
fully_qualified_tags = ",".join([f"ghcr.io/dbt-labs/{package_name}:{tag}" for tag in tags])
|
||||
github_output = os.environ.get("GITHUB_OUTPUT")
|
||||
with open(github_output, "at", encoding="utf-8") as gh_output:
|
||||
gh_output.write(f"fully_qualified_tags={fully_qualified_tags}")
|
||||
|
||||
|
||||
def _validate_response(response: requests.Response) -> None:
|
||||
message = response["message"]
|
||||
if response.status_code != 200:
|
||||
print(f"Call to GitHub API failed: {response.status_code} - {message}")
|
||||
sys.exit(1)
|
||||
|
||||
import requests
|
||||
from distutils.util import strtobool
|
||||
from typing import Union
|
||||
from packaging.version import parse, Version
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
# get inputs
|
||||
package = os.environ["INPUT_PACKAGE"]
|
||||
new_version = parse(os.environ["INPUT_NEW_VERSION"])
|
||||
gh_token = os.environ["INPUT_GH_TOKEN"]
|
||||
halt_on_missing = strtobool(os.environ.get("INPUT_HALT_ON_MISSING", "False"))
|
||||
|
||||
# get package metadata from github
|
||||
package_request = requests.get(
|
||||
f"https://api.github.com/orgs/dbt-labs/packages/container/{package}/versions",
|
||||
auth=("", gh_token),
|
||||
)
|
||||
package_meta = package_request.json()
|
||||
|
||||
# Log info if we don't get a 200
|
||||
if package_request.status_code != 200:
|
||||
print(f"Call to GH API failed: {package_request.status_code} {package_meta['message']}")
|
||||
|
||||
# Make an early exit if there is no matching package in github
|
||||
if package_request.status_code == 404:
|
||||
if halt_on_missing:
|
||||
sys.exit(1)
|
||||
# everything is the latest if the package doesn't exist
|
||||
github_output = os.environ.get("GITHUB_OUTPUT")
|
||||
with open(github_output, "at", encoding="utf-8") as gh_output:
|
||||
gh_output.write("latest=True")
|
||||
gh_output.write("minor_latest=True")
|
||||
sys.exit(0)
|
||||
|
||||
# TODO: verify package meta is "correct"
|
||||
# https://github.com/dbt-labs/dbt-core/issues/4640
|
||||
|
||||
# map versions and tags
|
||||
version_tag_map = {
|
||||
version["id"]: version["metadata"]["container"]["tags"] for version in package_meta
|
||||
}
|
||||
|
||||
# is pre-release
|
||||
pre_rel = True if any(x in str(new_version) for x in ["a", "b", "rc"]) else False
|
||||
|
||||
# semver of current latest
|
||||
for version, tags in version_tag_map.items():
|
||||
if "latest" in tags:
|
||||
# N.B. This seems counterintuitive, but we expect any version tagged
|
||||
# 'latest' to have exactly three associated tags:
|
||||
# latest, major.minor.latest, and major.minor.patch.
|
||||
# Subtracting everything that contains the string 'latest' gets us
|
||||
# the major.minor.patch which is what's needed for comparison.
|
||||
current_latest = parse([tag for tag in tags if "latest" not in tag][0])
|
||||
else:
|
||||
current_latest = False
|
||||
|
||||
# semver of current_minor_latest
|
||||
for version, tags in version_tag_map.items():
|
||||
if f"{new_version.major}.{new_version.minor}.latest" in tags:
|
||||
# Similar to above, only now we expect exactly two tags:
|
||||
# major.minor.patch and major.minor.latest
|
||||
current_minor_latest = parse([tag for tag in tags if "latest" not in tag][0])
|
||||
else:
|
||||
current_minor_latest = False
|
||||
|
||||
def is_latest(
|
||||
pre_rel: bool, new_version: Version, remote_latest: Union[bool, Version]
|
||||
) -> bool:
|
||||
"""Determine if a given contaier should be tagged 'latest' based on:
|
||||
- it's pre-release status
|
||||
- it's version
|
||||
- the version of a previously identified container tagged 'latest'
|
||||
|
||||
:param pre_rel: Wether or not the version of the new container is a pre-release
|
||||
:param new_version: The version of the new container
|
||||
:param remote_latest: The version of the previously identified container that's
|
||||
already tagged latest or False
|
||||
"""
|
||||
# is a pre-release = not latest
|
||||
if pre_rel:
|
||||
return False
|
||||
# + no latest tag found = is latest
|
||||
if not remote_latest:
|
||||
return True
|
||||
# + if remote version is lower than current = is latest, else not latest
|
||||
return True if remote_latest <= new_version else False
|
||||
|
||||
latest = is_latest(pre_rel, new_version, current_latest)
|
||||
minor_latest = is_latest(pre_rel, new_version, current_minor_latest)
|
||||
|
||||
github_output = os.environ.get("GITHUB_OUTPUT")
|
||||
with open(github_output, "at", encoding="utf-8") as gh_output:
|
||||
gh_output.write(f"latest={latest}")
|
||||
gh_output.write(f"minor_latest={minor_latest}")
|
||||
|
||||
12
.github/dependabot.yml
vendored
12
.github/dependabot.yml
vendored
@@ -11,6 +11,11 @@ updates:
|
||||
schedule:
|
||||
interval: "daily"
|
||||
rebase-strategy: "disabled"
|
||||
- package-ecosystem: "pip"
|
||||
directory: "/plugins/postgres"
|
||||
schedule:
|
||||
interval: "daily"
|
||||
rebase-strategy: "disabled"
|
||||
|
||||
# docker dependencies
|
||||
- package-ecosystem: "docker"
|
||||
@@ -23,10 +28,3 @@ updates:
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
rebase-strategy: "disabled"
|
||||
|
||||
# github dependencies
|
||||
- package-ecosystem: "github-actions"
|
||||
directory: "/"
|
||||
schedule:
|
||||
interval: "weekly"
|
||||
rebase-strategy: "disabled"
|
||||
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user