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
$Description = "This PR synchronizes the task: 'Triage issues to the service team' part of resourceManagement.yml from table of Service Contact List in ADO wiki page"
Copy file name to clipboardExpand all lines: doc/how_to_introduce_breaking_changes.md
+61-21Lines changed: 61 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -29,28 +29,57 @@ You could find the next Breaking Change Release plan in our [milestones](https:/
29
29
>
30
30
> Please note that providing the required info for assessment does not mean it will be assured to be green-lighted for breaking changes. Team will still make the decision based on the overall impact.
31
31
32
-
### Pre-announce Breaking Changes
32
+
### Ahead-of-1-Month Pre-announcement Policy
33
33
34
-
All breaking changes **must** be pre-announced two sprints ahead Release. It give users the buffer time ahead to mitigate for better command experience. There are two approaches to inform both interactive users and automatic users about the breaking changes.
34
+
All breaking changes **must** be pre-announced **30** days(usually **2**sprints for modules in Core CLI) ahead Release. It gives users the buffer time ahead to mitigate for better command experience. There are two approaches to inform both interactive users and automatic users about the breaking changes.
35
35
36
36
1. (**Mandatory**) Breaking Changes must be pre-announced through Warning Log while executing.
37
37
2. (*Automatic*) Breaking Changes would be collected automatically and listed in [Upcoming Breaking Change](https://learn.microsoft.com/en-us/cli/azure/upcoming-breaking-changes) Document.
38
38
39
+
### Breaking Changes in Extensions
40
+
41
+
All breaking changes in GA extensions **must** be pre-announced at least **30** days prior to their Release.
42
+
43
+
Extensions don't need to follow the breaking change window. However, we still strongly recommend releasing breaking changes only in breaking change windows along with Core Azure CLI.
44
+
45
+
```text
46
+
[GA Release with Breaking Change Pre-Announcement]
47
+
│
48
+
├─ Must include complete Breaking Change Information
│ - Other unrelated GA versions (vX.(Y+1), v(X+1).Y) │
54
+
│ - Multiple preview releases (Beta) │
55
+
│ │
56
+
▼ ▼
57
+
[GA Release Containing Breaking Changes]
58
+
(Must fulfill 30-day announcement requirement)
59
+
```
60
+
39
61
## Workflow
40
62
41
-
### Overview
63
+
### CLI Workflow Overview
42
64
43
-
* CLI Owned Module
44
-
* Service Team should create an Issue that requests CLI Team to create the pre-announcement several sprints ahead Breaking Change Window. The issue should include the label `Breaking Change`. The CLI team will look at the issue and evaluate if it will be accepted in the next breaking change release.
65
+
***CLI Owned Module**
66
+
* Service Team should create an Issue that requests CLI Team to create the pre-announcement at least **1** month(usually **2**sprints) ahead of Breaking Change Window. The issue should include the label `Breaking Change`. The CLI team will look at the issue and evaluate if it will be accepted in the next breaking change release.
45
67
* Please ensure sufficient time for CLI Team to finish the pre-announcement.
46
-
* The pre-announcement should be released ahead of Breaking Change Window.
47
-
* Service Owned Module
48
-
* Service Team should create a Pull Request that create the pre-announcement several sprints ahead Breaking Change Window.
49
-
* The pre-announcement should be released ahead of Breaking Change Window.
68
+
* The pre-announcement should be released at least **1** month(usually **2** sprints) ahead of Breaking Change Window.
69
+
***Service Owned Module**
70
+
* Service Team should create a Pull Request that adds the pre-announcement at least **1** month(usually **2**sprints) ahead of Breaking Change Window.
71
+
* The pre-announcement should be released at least **1** month(usually **2** sprints) ahead of Breaking Change Window.
50
72
* After releasing the pre-announcement, a pipeline would be triggered, and the Upcoming Breaking Change Documentation would be updated.
51
73
* At the start of Breaking Change window, the CLI team would notify Service Teams to adopt Breaking Changes.
52
74
* Breaking Changes should be adopted within Breaking Change Window. Any unfinished pre-announcements of breaking changes targeting this release will be deleted by the CLI team.
53
75
76
+
### Extensions Workflow Overview
77
+
78
+
* Service Team should create a Pull Request that includes the pre-announcement.
79
+
* The pre-announcement should be released after merged.
80
+
* After releasing the pre-announcement, a pipeline would be triggered, and the Upcoming Breaking Change Documentation would be updated.
81
+
* After 30 days, the Pull Request that contains the actual breaking changes could be merged and released.
82
+
54
83
### Pre-announce Breaking Changes
55
84
56
85
The breaking change pre-announcement must be released at least two sprints before the breaking change itself. It is strongly recommended to follow the best practice of providing the new behavior along with the pre-announcement. This allows customers to take action as soon as they discover the pre-announcement.
@@ -72,7 +101,7 @@ You can then pre-announce breaking changes for different command groups or comma
72
101
from azure.cli.core.breaking_change import register_required_flag_breaking_change, register_default_value_breaking_change, register_other_breaking_change
# Warning Message: Option `--name` has been deprecated and will be removed in May 2025. Use `--new-name` instead.
146
179
```
147
180
148
181
**Output Change**
@@ -151,7 +184,7 @@ Declare breaking changes that affect the output of a command. This ensures users
151
184
152
185
*`command`: REQUIRED: The name of the command group or command. If it is a command group, the warning would show in the execution of all commands in the group.
153
186
*`description`: REQUIRED: The short-summary description of the breaking change. The description displays in warning messages.
154
-
*`target_version`: REQUIRED: The version when the deprecated item should be removed. The `target_version` is the next breaking change window by default.
187
+
*`target_version`: REQUIRED: The version when the deprecated item should be removed. The `target_version` is the next breaking change window by default. Use either a specific version number or an approximate date in the format [DDth] MMM YYYY.
155
188
*`guide`: REQUIRED: The migration guide that customers can follow to prepare for the future breaking change. Provide as much detail as possible to help our customers transition smoothly.
156
189
*`doc_link`: A link to related documentation, which will be displayed in warning messages.
157
190
@@ -169,7 +202,7 @@ Declare breaking changes in the logic of the command.
169
202
170
203
*`command`: REQUIRED: The name of the command.
171
204
*`summary`: REQUIRED: The short-summary description of the breaking change. The description displays in warning messages.
172
-
*`target_version`: REQUIRED: The version when the breaking change should happen. The `target_version` is the next breaking change window by default.
205
+
*`target_version`: REQUIRED: The version when the breaking change should happen. The `target_version` is the next breaking change window by default. Use either a specific version number or an approximate date in the format [DDth] MMM YYYY.
173
206
*`detail`: A detailed description of the breaking change, including the actions customers should take. Provide as much detail as possible to help our customers transition smoothly.
174
207
*`doc_link`: A link to related documentation, which will be displayed in warning messages.
175
208
@@ -188,7 +221,7 @@ Declare breaking changes caused by changes in default values. This ensures users
188
221
*`arg`: REQUIRED: The name of the argument or one of its options. The default change warning will display whether the argument is used or not.
189
222
*`current_default`: REQUIRED: The current default value of the argument.
190
223
*`new_default`: REQUIRED: The new default value of the argument.
191
-
*`target_version`: REQUIRED: The version in which the breaking change should happen. By default, this is set to the next breaking change window.
224
+
*`target_version`: REQUIRED: The version in which the breaking change should happen. By default, this is set to the next breaking change window. Use either a specific version number or an approximate date in the format [DDth] MMM YYYY.
192
225
*`target`: Use this field to overwrite the argument display in warning messages.
193
226
*`doc_link`: A link to related documentation, which will be displayed in warning messages.
194
227
@@ -197,6 +230,10 @@ from azure.cli.core.breaking_change import register_default_value_breaking_chang
# The default value of `--type` will be changed to `TypeB` from `TypeA` in 3.x.x.
200
237
```
201
238
202
239
**Be Required**
@@ -205,7 +242,7 @@ Declare breaking changes that will make an argument required in a future release
205
242
206
243
*`command`: REQUIRED: The name of the command.
207
244
*`arg`: REQUIRED: The name of the argument that will become required.
208
-
*`target_version`: REQUIRED: The version in which the argument will become required. By default, this is set to the next breaking change window.
245
+
*`target_version`: REQUIRED: The version in which the argument will become required. By default, this is set to the next breaking change window. Use either a specific version number or an approximate date in the format [DDth] MMM YYYY.
209
246
*`target`: Use this field to overwrite the argument display in warning messages.
210
247
*`doc_link`: A link to related documentation, which will be displayed in warning messages.
211
248
@@ -214,6 +251,9 @@ from azure.cli.core.breaking_change import register_required_flag_breaking_chang
# The argument `--type` will become required in May 2024.
217
257
```
218
258
219
259
**Other Changes**
@@ -222,8 +262,8 @@ Declare other custom-breaking changes that do not fall into the predefined categ
222
262
223
263
*`command`: REQUIRED: The name of the command.
224
264
*`message`: REQUIRED: The short-summary description of the breaking change. The description displays in warning messages.
225
-
*`arg`: REQUIRED: The name of the argument associated with the breaking change. If arg is not None, the warning message will only be displayed when the argument is used.
226
-
*`target_version`: REQUIRED: The version in which the breaking change will occur. By default, this is set to the next breaking change window. This information is published in the [Azure CLI Breaking Changes](https://learn.microsoft.com/en-us/cli/azure/upcoming-breaking-changes) article, but does NOT display in the warning message.
265
+
*`arg`: The name of the argument associated with the breaking change. If arg is not None, the warning message will only be displayed when the argument is used.
266
+
*`target_version`: REQUIRED: The version in which the breaking change will occur. By default, this is set to the next breaking change window. This information affect the visibility in the [Azure CLI Breaking Changes](https://learn.microsoft.com/en-us/cli/azure/upcoming-breaking-changes) article, but does NOT display in the warning message.
227
267
228
268
```python
229
269
from azure.cli.core.breaking_change import register_other_breaking_change
@@ -239,12 +279,12 @@ To enhance flexibility, the CLI supports using a designated tag to specify a Bre
239
279
**Note:** We strongly recommend using this method to display breaking change warnings under specific conditions instead of using `logger.warning` directly. This approach enables centralized documentation of breaking changes and assists in automating customer notifications.
0 commit comments