Skip to content

Commit

Permalink
Merge branch 'current' into issue-4180
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewshaver authored Oct 11, 2023
2 parents f358a5a + 3a9d15e commit 29d1e63
Show file tree
Hide file tree
Showing 4 changed files with 71 additions and 40 deletions.
12 changes: 11 additions & 1 deletion website/docs/docs/cloud/dbt-cloud-ide/lint-format.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,7 +45,11 @@ With the dbt Cloud IDE, you can seamlessly use [SQLFluff](https://sqlfluff.com/)
- Works with Jinja and SQL,
- Comes with built-in [linting rules](https://docs.sqlfluff.com/en/stable/rules.html). You can also [customize](#customize-linting) your own linting rules.
- Empowers you to [enable linting](#enable-linting) with options like **Lint** (displays linting errors and recommends actions) or **Fix** (auto-fixes errors in the IDE).
- Displays a **Code Quality** tab to view code errors, and provides code quality visibility and management.
- Displays a **Code Quality** tab to view code errors, and provides code quality visibility and management.

:::info Ephemeral models not supported
Linting doesn't support ephemeral models in dbt v1.5 and lower. Refer to the [FAQs](#faqs) for more info.
:::

### Enable linting

Expand Down Expand Up @@ -223,6 +227,12 @@ Currently, running SQLFluff commands from the terminal isn't supported.
Make sure you're on a development branch. Formatting or Linting isn't available on "main" or "read-only" branches.
</details>

<details>
<summary>Why is there inconsistent SQLFluff behavior when running outside the dbt Cloud IDE (such as a GitHub Action)?</summary>
&mdash; Double-check your SQLFluff version matches the one in dbt Cloud IDE (found in the <b>Code Quality</b> tab after a lint operation). <br /><br />
&mdash; If your lint operation passes despite clear rule violations, confirm you're not linting models with ephemeral models. Linting doesn't support ephemeral models in dbt v1.5 and lower.
</details>

## Related docs

- [User interface](/docs/cloud/dbt-cloud-ide/ide-user-interface)
Expand Down
8 changes: 8 additions & 0 deletions website/docs/docs/collaborate/govern/project-dependencies.md
Original file line number Diff line number Diff line change
Expand Up @@ -100,3 +100,11 @@ There are a few cases where installing another internal project as a package can
- Coordinated changes &mdash; In development, if you wanted to test the effects of a change to a public model in an upstream project (`jaffle_finance.monthly_revenue`) on a downstream model (`jaffle_marketing.roi_by_channel`) _before_ introducing changes to a staging or production environment, you can install the `jaffle_finance` package as a package within `jaffle_marketing`. The installation can point to a specific git branch, however, if you find yourself frequently needing to perform end-to-end testing across both projects, we recommend you re-examine if this represents a stable interface boundary.

These are the exceptions, rather than the rule. Installing another team's project as a package adds complexity, latency, and risk of unnecessary costs. By defining clear interface boundaries across teams, by serving one team's public models as "APIs" to another, and by enabling practitioners to develop with a more narrowly-defined scope, we can enable more people to contribute, with more confidence, while requiring less context upfront.

## FAQs

<details>
<summary>Can I define private packages in the <code>dependencies.yml</code> file?</summary>

If you're using private packages with the [git token method](/docs/build/packages#git-token-method), you must define them in the `packages.yml` file instead of the `dependencies.yml` file. This is because conditional rendering (like Jinja-in-yaml) is not supported.
</details>
7 changes: 7 additions & 0 deletions website/docs/docs/use-dbt-semantic-layer/gsheets.md
Original file line number Diff line number Diff line change
Expand Up @@ -51,3 +51,10 @@ To use the filter functionality, choose the dimension you want to filter by and
- If it's a categorical dimension, type in the dimension value you want to filter by (no quotes needed) and press enter.
- Continue adding additional filters as needed with AND and OR. If it's a time dimension, choose the operator and select from the calendar.



**Limited Use Policy Disclosure**

The dbt Semantic Layer for Sheet's use and transfer to any other app of information received from Google APIs will adhere to [Google API Services User Data Policy](https://developers.google.com/terms/api-services-user-data-policy), including the Limited Use requirements.


84 changes: 45 additions & 39 deletions website/docs/reference/node-selection/test-selection-examples.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,14 +19,14 @@ Run generic tests only:


```bash
$ dbt test --select test_type:generic
dbt test --select test_type:generic
```

Run singular tests only:


```bash
$ dbt test --select test_type:singular
dbt test --select test_type:singular
```

In both cases, `test_type` checks a property of the test itself. These are forms of "direct" test selection.
Expand Down Expand Up @@ -87,8 +87,8 @@ By default, a test will run when ANY parent is selected; we call this "eager" in
In this mode, any test that depends on unbuilt resources will raise an error.

```shell
$ dbt test --select orders
$ dbt build --select orders
dbt test --select orders
dbt build --select orders
```

</TabItem>
Expand All @@ -102,8 +102,8 @@ It will only include tests whose references are each within the selected nodes.
Put another way, it will prevent tests from running if one or more of its parents is unselected.

```shell
$ dbt test --select orders --indirect-selection=cautious
$ dbt build --select orders --indirect-selection=cautious
dbt test --select orders --indirect-selection=cautious
dbt build --select orders --indirect-selection=cautious
```

</TabItem>
Expand All @@ -122,8 +122,8 @@ By default, a test will run when ANY parent is selected; we call this "eager" in
In this mode, any test that depends on unbuilt resources will raise an error.

```shell
$ dbt test --select orders
$ dbt build --select orders
dbt test --select orders
dbt build --select orders
```

</TabItem>
Expand All @@ -137,8 +137,8 @@ It will only include tests whose references are each within the selected nodes.
Put another way, it will prevent tests from running if one or more of its parents is unselected.

```shell
$ dbt test --select orders --indirect-selection=cautious
$ dbt build --select orders --indirect-selection=cautious
dbt test --select orders --indirect-selection=cautious
dbt build --select orders --indirect-selection=cautious
```

</TabItem>
Expand All @@ -152,8 +152,8 @@ It will only include tests whose references are each within the selected nodes (
This is useful in the same scenarios as "cautious", but also includes when a test depends on a model **and** a direct ancestor of that model (like confirming an aggregation has the same totals as its input).

```shell
$ dbt test --select orders --indirect-selection=buildable
$ dbt build --select orders --indirect-selection=buildable
dbt test --select orders --indirect-selection=buildable
dbt build --select orders --indirect-selection=buildable
```

</TabItem>
Expand All @@ -172,8 +172,8 @@ By default, a test will run when ANY parent is selected; we call this "eager" in
In this mode, any test that depends on unbuilt resources will raise an error.

```shell
$ dbt test --select orders
$ dbt build --select orders
dbt test --select orders
dbt build --select orders
```

</TabItem>
Expand All @@ -187,8 +187,8 @@ It will only include tests whose references are each within the selected nodes.
Put another way, it will prevent tests from running if one or more of its parents is unselected.

```shell
$ dbt test --select orders --indirect-selection=cautious
$ dbt build --select orders --indirect-selection=cautious
dbt test --select orders --indirect-selection=cautious
dbt build --select orders --indirect-selection=cautious
```

</TabItem>
Expand All @@ -202,8 +202,8 @@ It will only include tests whose references are each within the selected nodes (
This is useful in the same scenarios as "cautious", but also includes when a test depends on a model **and** a direct ancestor of that model (like confirming an aggregation has the same totals as its input).

```shell
$ dbt test --select orders --indirect-selection=buildable
$ dbt build --select orders --indirect-selection=buildable
dbt test --select orders --indirect-selection=buildable
dbt build --select orders --indirect-selection=buildable
```

</TabItem>
Expand All @@ -213,8 +213,8 @@ $ dbt build --select orders --indirect-selection=buildable
This mode will only include tests whose references are each within the selected nodes and will ignore all tests from attached nodes.

```shell
$ dbt test --select orders --indirect-selection=empty
$ dbt build --select orders --indirect-selection=empty
dbt test --select orders --indirect-selection=empty
dbt build --select orders --indirect-selection=empty
```

</TabItem>
Expand All @@ -234,22 +234,25 @@ The following examples should feel somewhat familiar if you're used to executing

```bash
# Run tests on a model (indirect selection)
$ dbt test --select customers
dbt test --select customers

# Run tests on two or more specific models (indirect selection)
dbt test --select customers orders

# Run tests on all models in the models/staging/jaffle_shop directory (indirect selection)
$ dbt test --select staging.jaffle_shop
dbt test --select staging.jaffle_shop

# Run tests downstream of a model (note this will select those tests directly!)
$ dbt test --select stg_customers+
dbt test --select stg_customers+

# Run tests upstream of a model (indirect selection)
$ dbt test --select +stg_customers
dbt test --select +stg_customers

# Run tests on all models with a particular tag (direct + indirect)
$ dbt test --select tag:my_model_tag
dbt test --select tag:my_model_tag

# Run tests on all models with a particular materialization (indirect selection)
$ dbt test --select config.materialized:table
dbt test --select config.materialized:table

```

Expand All @@ -258,16 +261,19 @@ The following examples should feel somewhat familiar if you're used to executing

```bash
# tests on all sources
$ dbt test --select source:*
dbt test --select source:*

# tests on one source
$ dbt test --select source:jaffle_shop
dbt test --select source:jaffle_shop

# tests on two or more specific sources
dbt test --select source:jaffle_shop source:raffle_bakery

# tests on one source table
$ dbt test --select source:jaffle_shop.customers
dbt test --select source:jaffle_shop.customers

# tests on everything _except_ sources
$ dbt test --exclude source:*
dbt test --exclude source:*
```

### More complex selection
Expand All @@ -276,10 +282,10 @@ Through the combination of direct and indirect selection, there are many ways to


```bash
$ dbt test --select assert_total_payment_amount_is_positive # directly select the test by name
$ dbt test --select payments,test_type:singular # indirect selection, v1.2
$ dbt test --select payments,test_type:data # indirect selection, v0.18.0
$ dbt test --select payments --data # indirect selection, earlier versions
dbt test --select assert_total_payment_amount_is_positive # directly select the test by name
dbt test --select payments,test_type:singular # indirect selection, v1.2
dbt test --select payments,test_type:data # indirect selection, v0.18.0
dbt test --select payments --data # indirect selection, earlier versions
```


Expand All @@ -288,13 +294,13 @@ Through the combination of direct and indirect selection, there are many ways to

```bash
# Run tests on all models with a particular materialization
$ dbt test --select config.materialized:table
dbt test --select config.materialized:table

# Run tests on all seeds, which use the 'seed' materialization
$ dbt test --select config.materialized:seed
dbt test --select config.materialized:seed

# Run tests on all snapshots, which use the 'snapshot' materialization
$ dbt test --select config.materialized:snapshot
dbt test --select config.materialized:snapshot
```

Note that this functionality may change in future versions of dbt.
Expand Down Expand Up @@ -322,7 +328,7 @@ models:


```bash
$ dbt test --select tag:my_column_tag
dbt test --select tag:my_column_tag
```

Currently, tests "inherit" tags applied to columns, sources, and source tables. They do _not_ inherit tags applied to models, seeds, or snapshots. In all likelihood, those tests would still be selected indirectly, because the tag selects its parent. This is a subtle distinction, and it may change in future versions of dbt.
Expand Down Expand Up @@ -350,5 +356,5 @@ models:


```bash
$ dbt test --select tag:my_test_tag
dbt test --select tag:my_test_tag
```

0 comments on commit 29d1e63

Please sign in to comment.