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
Copy file name to clipboardExpand all lines: documentation/breaking-changes/breaking-changes-tool-help.md
+11-11Lines changed: 11 additions & 11 deletions
Original file line number
Diff line number
Diff line change
@@ -86,7 +86,7 @@ _Add the alias '`<alias>`' back to the cmdlet '`<cmdlet>`'._
86
86
87
87
_The cmdlet '`<cmdlet>`' no longer has output type '`<outputType>`'._
88
88
89
-
When the output of a cmdlet changes types, that is a breaking change. Existing scripts that assign the output of a cmdlet to a variable and call one of its properties or pass it through to another cmdlet will no longer work.
89
+
When the output of a cmdlet changes types, that is a breaking change. Existing scripts that assign the output of a cmdlet to a variable and call one of its properties or pass it through to another cmdlet will no longer work. If the new output type has all of the same properties as the previous output type, then this is not considered a breaking change.
90
90
91
91
For example, if we have a cmdlet, `Get-SomeObject` that returns a `Foo` object
92
92
@@ -115,8 +115,6 @@ $foo.SomeProperty
115
115
$foo.AnotherProperty
116
116
```
117
117
118
-
The exception to this rule is when the output changes from type `A` to type `B`, and all of the properties of `A` can also be found in `B`. In this case, there are no changes to the external interface, so this is not considered a breaking change.
119
-
120
118
### Remediation
121
119
122
120
_Make cmdlet '`<cmdlet>`' return type '`<outputType>`'._
@@ -125,11 +123,11 @@ _Make cmdlet '`<cmdlet>`' return type '`<outputType>`'._
125
123
126
124
### Description
127
125
128
-
_The cmdlet '`<cmdlet>`' no longer implements SupportsShouldProcess._
126
+
_The cmdlet '`<cmdlet>`' no longer implements ShouldProcess._
129
127
130
-
When a cmdlet that previously implemented `SupportsShouldProcess` no longer does, that is a breaking change. Users will no longer be able to use the `WhatIf` and `Confirm` parameters with the cmdlet.
128
+
When a cmdlet that previously implemented `ShouldProcess` no longer does, that is a breaking change. Users will no longer be able to use the `WhatIf` and `Confirm` parameters with the cmdlet.
131
129
132
-
For example, if we had a cmdlet `Remove-SomeObject` that implemented `SupportsShouldProcess`, but no longer does, the following script will no longer work since the `WhatIf` and `Confirm` parameters are not defined in the cmdlet.
130
+
For example, if we had a cmdlet `Remove-SomeObject` that implemented `ShouldProcess`, but no longer does, the following script will no longer work since the `WhatIf` and `Confirm` parameters are not defined in the cmdlet.
133
131
134
132
```powershell
135
133
Remove-SomeObject -WhatIf
@@ -138,19 +136,19 @@ Remove-SomeObject -Confirm
138
136
139
137
### Remediation
140
138
141
-
_Make sure the cmdlet '`<cmdlet>`' implements SupportsShouldProcess._
139
+
_Make sure the cmdlet '`<cmdlet>`' implements ShouldProcess._
142
140
143
141
## 1040 - Removed SupportsPaging
144
142
145
143
### Description
146
144
147
-
_The cmdlet '`<cmdlet>`' no longer implements SupportsPaging._
145
+
_The cmdlet '`<cmdlet>`' no longer implements Paging._
148
146
149
-
When a cmdlet that previously implemented `SupportsPaging` no longer does, that is a breaking change. Users will no longer be able to use the `First`, `Skip`, and `IncludeTotalCount` parameters with the cmdlet.
147
+
When a cmdlet that previously implemented `Paging` no longer does, that is a breaking change. Users will no longer be able to use the `First`, `Skip`, and `IncludeTotalCount` parameters with the cmdlet.
150
148
151
149
### Remediation
152
150
153
-
_Make sure the cmdlet '`<cmdlet>`' implements SupportsPaging._
151
+
_Make sure the cmdlet '`<cmdlet>`' implements Paging._
154
152
155
153
## 1050 - Removed Parameter Set
156
154
@@ -209,13 +207,15 @@ Also, if the default parameter set is removed entirely from this cmdlet, this wi
209
207
210
208
_Change the default parameter for cmdlet '`<cmdlet>`' back to '`<parameterSet>`'._
211
209
210
+
_Note_: if the default parameter set name is changed, this breaking change can also be resolved by ensuring that the same set of parameters in the previous default parameter set are found in the new one. This also means the parameters' attributes (such as `Mandatory` and `Position`) must also remain the same for the set of parameters that were included.
211
+
212
212
## 1070 - Changed Output Element Type
213
213
214
214
### Description
215
215
216
216
_The element type for the output has been changed from `'<oldElementType>'` to `'<newElementType>'`._
217
217
218
-
When the type of the output is an array, and the element type of that array has been changed, that is a breaking change.
218
+
When the type of the output is an array, and the element type of that array has been changed, that is a breaking change. If the new output type has all of the properties found in the previous output type, then this is not considered a breaking change.
219
219
220
220
For example, if we had a cmdlet `Get-SomeObject` that returned an array of `Foo` objects
0 commit comments