Skip to content
This repository was archived by the owner on May 9, 2025. It is now read-only.

Commit 78dd1a1

Browse files
authored
Merge pull request #180 from DataRecce/feature/drc-1201-add-the-doc-for-partial-breaknig-change
[Doc] Update the breaking change analysis doc
2 parents 7990a81 + ba74c72 commit 78dd1a1

File tree

4 files changed

+20
-10
lines changed

4 files changed

+20
-10
lines changed
Loading
Loading
-3.07 KB
Loading

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

+20-10
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,27 @@ 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:
77

8-
Currently, all modified models are treated as **breaking changes** unless:
8+
- Breaking changes
9+
- Partial breaking changes
10+
- Non-breaking changes
911

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.
1213

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
1421

1522
## Usage
1623

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.
1825

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.
2127

2228
=== "Disabled"
2329

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

3036

37+
## Column-Level Lineage
38+
39+
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)
40+
41+
![Column-level lineage](../../assets/images/features/breaking-change-lineage.png){: .shadow}
3142

3243
## Limitations
3344

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:
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 non breaking or partial breaking changes. Common cases include:
3546

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

0 commit comments

Comments
 (0)