Skip to content

Commit 0c763b6

Browse files
committed
Update the breaking change analysis doc
Signed-off-by: popcorny <[email protected]>
1 parent 7990a81 commit 0c763b6

File tree

4 files changed

+16
-10
lines changed

4 files changed

+16
-10
lines changed
-8.35 KB
Loading
143 KB
Loading
-3.07 KB
Loading

docs/docs/features/breaking-change-analysis.md

Lines changed: 16 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,23 @@ title: Breaking Change Analysis
33
icon: octicons/diff-modified-24
44
---
55

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: **Breaking change**, **Partial breaking change**, and **Non breaking change**.
77

8-
Currently, all modified models are treated as **breaking changes** unless:
8+
Traditionally, any modification to a model’s SQL was assumed to affect all downstream models. However, not all changes have the same level of impact. For example, formatting adjustments or adding a new column should not break any downstream dependencies. **Breaking Change Analysis** helps you assess whether a change affects downstream models, and if so, to what extent.
99

10-
1. The semantics are unchanged.
11-
1. The modification only involves adding a new column.
1210

13-
If no structural differences are detected or the changes involve simply adding new columns, the modification is classified as non-breaking changes.
11+
## Categories
12+
Category | Downstream Impact | Examples
13+
---|---|---
14+
Non breaking change | No downstream models are affected | Adding a new column, formatting SQL, adding comments
15+
Partial breaking change | Only downstream models referencing certain columns are affected | Removing, renaming, or modifying the definition of a column
16+
Breaking change | All downstream models are affected | Changing filter conditions (e.g. `WHERE`), sort order (`ORDER BY`), or other SQL logic
1417

1518
## Usage
1619

17-
To enable the feature, click the **breaking Change Analysis** toggle on the **Lineage** page.
20+
To enable the feature, click the **Breaking Change Analysis** toggle on the **Lineage** page.
1821

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.
22+
All modified models will 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 your downstream models.
2123

2224
=== "Disabled"
2325

@@ -28,12 +30,16 @@ To enable the feature, click the **breaking Change Analysis** toggle on the **L
2830
![Breaking Change Analysis](../../assets/images/features/breaking-change.png){: .shadow}
2931

3032

33+
## Column-Level Lineage
34+
35+
In models classified as **Non breaking** or **Partial breaking**, added, removed, or modified columns will be listed. You can click on a column to open its [Column-Level Lineage](./column-level-lineage.md)
36+
37+
![Column-level lineage](../../assets/images/features/breaking-change-lineage.png){: .shadow}
3138

3239
## Limitations
3340

34-
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:
41+
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 or partial breaking changes. Common cases include:
3542

36-
1. Adding a column using a `CASE WHEN` statement.
3743
1. Logical equivalence in operations, such as changing `a + b` to `b + a`.
3844
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.
3945
1. All modified python models or seeds are treated as breaking change.

0 commit comments

Comments
 (0)