You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
This repository was archived by the owner on May 9, 2025. It is now read-only.
Copy file name to clipboardExpand all lines: docs/docs/features/breaking-change-analysis.md
+20-10
Original file line number
Diff line number
Diff line change
@@ -3,21 +3,27 @@ title: Breaking Change Analysis
3
3
icon: octicons/diff-modified-24
4
4
---
5
5
6
-
Breaking change analysis examines models for modifications to the SQL semantic tree that could potentially alter the data generated by the model, resulting in downstream impact.
6
+
**Breaking Change Analysis** examines modified models and categorizes changes into three types:
7
7
8
-
Currently, all modified models are treated as **breaking changes** unless:
8
+
- Breaking changes
9
+
- Partial breaking changes
10
+
- Non-breaking changes
9
11
10
-
1. The semantics are unchanged.
11
-
1. The modification only involves adding a new column.
12
+
It's generally assumed that any modification to a model’s SQL will affect all downstream models. However, not all changes have the same level of impact. For example, formatting adjustments or the addition of a new column should not break downstream dependencies. Breaking change analysis helps you assess whether a change affects downstream models and, if so, to what extent.
12
13
13
-
If no structural differences are detected or the changes involve simply adding new columns, the modification is classified as non-breaking changes.
14
+
15
+
## Categories of change
16
+
Category | Downstream Impact | Examples
17
+
---|---|---
18
+
Non-breaking change | No downstream models are affected | New column, formatting SQL, adding comments
19
+
Partial breaking change | Only downstream models referencing certain columns are affected | Removing, renaming, or modifying the definition of a column
20
+
Breaking change | All downstream models are affected | Changing filter conditions (e.g. `WHERE`), sort order (`ORDER BY`), or other SQL logic
14
21
15
22
## Usage
16
23
17
-
To enable the feature, click the **breaking Change Analysis** toggle on the **Lineage** page.
24
+
To enable **Breaking Change Analysis**, click the toggle on the **Lineage** page.
18
25
19
-
- Models with **breaking changes** can be identified by a solid orange border.
20
-
- Models with **non-breaking changes** can be identified by the dashed orange border.
26
+
All modified models display their change category directly on the node. Additionally, partial breaking changes are highlighted with a dashed orange border to indicate that they may not impact downstream models.
21
27
22
28
=== "Disabled"
23
29
@@ -28,12 +34,16 @@ To enable the feature, click the **breaking Change Analysis** toggle on the **L
In models classified as **non-breaking** or **partial breaking** - added, removed, or modified columns will be listed. Click on a column to open its [Column-Level Lineage](./column-level-lineage.md)
The current implementation of breaking change analysis is still very conservative. As a result, a modified model may be classified as a breaking change when it is actually non-breaking. Common cases include:
45
+
The current implementation of breaking change analysis is still very conservative. As a result, a modified model may be classified as a breaking change when it is actually nonbreaking or partial breaking changes. Common cases include:
35
46
36
-
1. Adding a column using a `CASE WHEN` statement.
37
47
1. Logical equivalence in operations, such as changing `a + b` to `b + a`.
38
48
1. Adding a `LEFT JOIN` to a table and selecting columns from it. This is often used to enrich the current model with additional dimension table data without affecting existing downstream tables.
39
49
1. All modified python models or seeds are treated as breaking change.
0 commit comments