Skip to content

Commit 32ab698

Browse files
authored
{doc} Add breaking change rule doc (#26779)
* add breaking change rule doc
1 parent 8235008 commit 32ab698

File tree

12 files changed

+766
-0
lines changed

12 files changed

+766
-0
lines changed

doc/breaking_change_rules/1001.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
### 1001 - Cmd Added
2+
3+
**Description**: Checks whether a new cmd is added from the previous cli version.
4+
5+
**Analysis**: This is considered an additive change in new cli version.
6+
7+
**Example**: Cmd `az monitor diagnostic-setting list` is being added in new cli version.
8+
9+
#### Before
10+
> + az (command root)
11+
> + monitor (group)
12+
> + diagnostic-setting (sub-group)
13+
> + create
14+
> + delete
15+
> + update
16+
> + show
17+
>
18+
19+
#### After
20+
> + az (command root)
21+
> + monitor (group)
22+
> + diagnostic-setting (sub-group)
23+
> + create
24+
> + delete
25+
> + update
26+
> + show
27+
> + list
28+
>

doc/breaking_change_rules/1002.md

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
### 1002 - Cmd Removed
2+
3+
**Description**: Checks whether an existing cmd is removed from the previous cli version.
4+
5+
**Analysis**: This is considered a breaking change because it may influence users' current workflow. This change requires to be released during breaking-change window.
6+
7+
**Example**: Cmd `az monitor diagnostic-setting show` is being removed during non-breaking-change window.
8+
9+
#### Before
10+
> + az (command root)
11+
> + monitor (group)
12+
> + diagnostic-setting (sub-group)
13+
> + create
14+
> + delete
15+
> + list
16+
> + update
17+
> + show
18+
>
19+
20+
#### After
21+
> + az (command root)
22+
> + monitor (group)
23+
> + diagnostic-setting (sub-group)
24+
> + create
25+
> + delete
26+
> + list
27+
> + update
28+
>

doc/breaking_change_rules/1003.md

Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
### 1003 - Cmd Property Added
2+
3+
**Description**: Checks whether a new property is configured to a cmd from the previous cli version.
4+
5+
**Analysis**: Not all newly configured properties for a cmd are considered breaking changes. The properties listed in CMD_PROPERTY_ADD_BREAK_LIST below are thought to influence or interrupt current workflow and be breaking changes.
6+
* CMD_PROPERTY_ADD_BREAK_LIST = ["confirmation"]
7+
8+
**Example**: In new cli version, `confirmation` is being added to cmd `az monitor private-link-scope scoped-resource delete` which caused corrupt workflows.
9+
10+
#### Before
11+
```json5
12+
{
13+
"module_name": "monitor",
14+
"name": "az",
15+
"commands": {},
16+
"sub_groups": {
17+
"monitor": {
18+
"name": "monitor",
19+
"commands": {},
20+
"sub_groups": {
21+
"monitor private-link-scope": {
22+
"name": "monitor private-link-scope",
23+
"commands": {},
24+
"sub_groups": {
25+
"monitor private-link-scope scoped-resource": {
26+
"name": "monitor private-link-scope scoped-resource",
27+
"commands": {
28+
"monitor private-link-scope scoped-resource delete": {
29+
"name": "monitor private-link-scope scoped-resource delete",
30+
"is_aaz": false,
31+
"is_preview": true,
32+
"parameters": [
33+
{
34+
"name": "resource_group_name",
35+
"options": ["--resource-group", "-g"],
36+
"required": true,
37+
"id_part": "resource_group"
38+
}
39+
...
40+
...
41+
]
42+
}
43+
}
44+
}
45+
}
46+
}
47+
}
48+
},
49+
...
50+
}
51+
}
52+
```
53+
54+
#### After
55+
```json5
56+
{
57+
"module_name": "monitor",
58+
"name": "az",
59+
"commands": {},
60+
"sub_groups": {
61+
"monitor": {
62+
"name": "monitor",
63+
"commands": {},
64+
"sub_groups": {
65+
"monitor private-link-scope": {
66+
"name": "monitor private-link-scope",
67+
"commands": {},
68+
"sub_groups": {
69+
"monitor private-link-scope scoped-resource": {
70+
"name": "monitor private-link-scope scoped-resource",
71+
"commands": {
72+
"monitor private-link-scope scoped-resource delete": {
73+
"name": "monitor private-link-scope scoped-resource delete",
74+
"is_aaz": false,
75+
"confirmation": true,
76+
"is_preview": true,
77+
"parameters": [
78+
{
79+
"name": "resource_group_name",
80+
"options": ["--resource-group", "-g"],
81+
"required": true,
82+
"id_part": "resource_group"
83+
}
84+
...
85+
...
86+
]
87+
}
88+
}
89+
}
90+
}
91+
}
92+
}
93+
},
94+
...
95+
}
96+
}
97+
```

doc/breaking_change_rules/1004.md

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
### 1004 - Cmd Property Removed
2+
3+
**Description**: Checks whether an existing property of a cmd is removed from the previous cli version.
4+
5+
**Analysis**: Not all configured properties removed from a cmd are considered breaking changes. The properties listed in CMD_PROPERTY_REMOVE_BREAK_LIST below are thought to influence or interrupt current workflow and be breaking changes.
6+
For now, removed properties in cmd level does not break workflow.
7+
* CMD_PROPERTY_REMOVE_BREAK_LIST = []
8+
9+
**Example**: In new cli version, cmd `az monitor diagnostic-setting delete` is changed from `is_preview` to stable, which does not disrupt users' actions.
10+
11+
#### Before
12+
```json5
13+
{
14+
"module_name": "monitor",
15+
"name": "az",
16+
"commands": {},
17+
"sub_groups": {
18+
"monitor": {
19+
"name": "monitor",
20+
"commands": {},
21+
"sub_groups": {
22+
"monitor private-link-scope": {
23+
"name": "monitor private-link-scope",
24+
"commands": {},
25+
"sub_groups": {
26+
"monitor private-link-scope scoped-resource": {
27+
"name": "monitor private-link-scope scoped-resource",
28+
"commands": {
29+
"monitor private-link-scope scoped-resource delete": {
30+
"name": "monitor private-link-scope scoped-resource delete",
31+
"is_preview": true,
32+
"parameters": [
33+
{
34+
"name": "resource_group_name",
35+
"options": ["--resource-group", "-g"],
36+
"required": true,
37+
"id_part": "resource_group"
38+
}
39+
...
40+
...
41+
]
42+
}
43+
}
44+
}
45+
}
46+
}
47+
}
48+
},
49+
...
50+
}
51+
}
52+
```
53+
54+
#### After
55+
```json5
56+
{
57+
"module_name": "monitor",
58+
"name": "az",
59+
"commands": {},
60+
"sub_groups": {
61+
"monitor": {
62+
"name": "monitor",
63+
"commands": {},
64+
"sub_groups": {
65+
"monitor private-link-scope": {
66+
"name": "monitor private-link-scope",
67+
"commands": {},
68+
"sub_groups": {
69+
"monitor private-link-scope scoped-resource": {
70+
"name": "monitor private-link-scope scoped-resource",
71+
"commands": {
72+
"monitor private-link-scope scoped-resource delete": {
73+
"name": "monitor private-link-scope scoped-resource delete",
74+
"parameters": [
75+
{
76+
"name": "resource_group_name",
77+
"options": ["--resource-group", "-g"],
78+
"required": true,
79+
"id_part": "resource_group"
80+
}
81+
...
82+
...
83+
]
84+
}
85+
}
86+
}
87+
}
88+
}
89+
}
90+
},
91+
...
92+
}
93+
}
94+
```

doc/breaking_change_rules/1005.md

Lines changed: 95 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,95 @@
1+
### 1005 - Cmd Property Updated
2+
3+
**Description**: Checks whether a cmd's property value is updated from the previous cli version.
4+
5+
**Analysis**: Not all configured properties updated for a cmd are considered breaking changes. The properties listed in CMD_PROPERTY_UPDATE_BREAK_LIST below are thought to influence or interrupt current workflow and be breaking changes.
6+
For now, updated properties in cmd level does not break workflow.
7+
* CMD_PROPERTY_UPDATE_BREAK_LIST = []
8+
9+
**Example**: In new cli version, cmd `az monitor diagnostic-setting delete` is changed from `is_aaz=false` to `is_aaz=true` after migration, which does not disrupt users' actions.
10+
11+
#### Before
12+
```json5
13+
{
14+
"module_name": "monitor",
15+
"name": "az",
16+
"commands": {},
17+
"sub_groups": {
18+
"monitor": {
19+
"name": "monitor",
20+
"commands": {},
21+
"sub_groups": {
22+
"monitor private-link-scope": {
23+
"name": "monitor private-link-scope",
24+
"commands": {},
25+
"sub_groups": {
26+
"monitor private-link-scope scoped-resource": {
27+
"name": "monitor private-link-scope scoped-resource",
28+
"commands": {
29+
"monitor private-link-scope scoped-resource delete": {
30+
"name": "monitor private-link-scope scoped-resource delete",
31+
"is_aaz": false,
32+
"parameters": [
33+
{
34+
"name": "resource_group_name",
35+
"options": ["--resource-group", "-g"],
36+
"required": true,
37+
"id_part": "resource_group"
38+
}
39+
...
40+
...
41+
]
42+
}
43+
}
44+
}
45+
}
46+
}
47+
}
48+
},
49+
...
50+
}
51+
}
52+
```
53+
54+
#### After
55+
```json5
56+
{
57+
"module_name": "monitor",
58+
"name": "az",
59+
"commands": {},
60+
"sub_groups": {
61+
"monitor": {
62+
"name": "monitor",
63+
"commands": {},
64+
"sub_groups": {
65+
"monitor private-link-scope": {
66+
"name": "monitor private-link-scope",
67+
"commands": {},
68+
"sub_groups": {
69+
"monitor private-link-scope scoped-resource": {
70+
"name": "monitor private-link-scope scoped-resource",
71+
"commands": {
72+
"monitor private-link-scope scoped-resource delete": {
73+
"name": "monitor private-link-scope scoped-resource delete",
74+
"is_aaz": true,
75+
"parameters": [
76+
{
77+
"name": "resource_group_name",
78+
"options": ["--resource-group", "-g"],
79+
"required": true,
80+
"id_part": "resource_group"
81+
}
82+
...
83+
...
84+
]
85+
}
86+
}
87+
}
88+
}
89+
}
90+
}
91+
},
92+
...
93+
}
94+
}
95+
```

0 commit comments

Comments
 (0)