Skip to content

Commit 17ddccf

Browse files
committed
Resolve feedback for breaking change tool help document
1 parent 89519ef commit 17ddccf

File tree

1 file changed

+11
-11
lines changed

1 file changed

+11
-11
lines changed

documentation/breaking-changes/breaking-changes-tool-help.md

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ _Add the alias '`<alias>`' back to the cmdlet '`<cmdlet>`'._
8686

8787
_The cmdlet '`<cmdlet>`' no longer has output type '`<outputType>`'._
8888

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

9191
For example, if we have a cmdlet, `Get-SomeObject` that returns a `Foo` object
9292

@@ -115,8 +115,6 @@ $foo.SomeProperty
115115
$foo.AnotherProperty
116116
```
117117

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-
120118
### Remediation
121119

122120
_Make cmdlet '`<cmdlet>`' return type '`<outputType>`'._
@@ -125,11 +123,11 @@ _Make cmdlet '`<cmdlet>`' return type '`<outputType>`'._
125123

126124
### Description
127125

128-
_The cmdlet '`<cmdlet>`' no longer implements SupportsShouldProcess._
126+
_The cmdlet '`<cmdlet>`' no longer implements ShouldProcess._
129127

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

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

134132
```powershell
135133
Remove-SomeObject -WhatIf
@@ -138,19 +136,19 @@ Remove-SomeObject -Confirm
138136

139137
### Remediation
140138

141-
_Make sure the cmdlet '`<cmdlet>`' implements SupportsShouldProcess._
139+
_Make sure the cmdlet '`<cmdlet>`' implements ShouldProcess._
142140

143141
## 1040 - Removed SupportsPaging
144142

145143
### Description
146144

147-
_The cmdlet '`<cmdlet>`' no longer implements SupportsPaging._
145+
_The cmdlet '`<cmdlet>`' no longer implements Paging._
148146

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

151149
### Remediation
152150

153-
_Make sure the cmdlet '`<cmdlet>`' implements SupportsPaging._
151+
_Make sure the cmdlet '`<cmdlet>`' implements Paging._
154152

155153
## 1050 - Removed Parameter Set
156154

@@ -209,13 +207,15 @@ Also, if the default parameter set is removed entirely from this cmdlet, this wi
209207

210208
_Change the default parameter for cmdlet '`<cmdlet>`' back to '`<parameterSet>`'._
211209

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+
212212
## 1070 - Changed Output Element Type
213213

214214
### Description
215215

216216
_The element type for the output has been changed from `'<oldElementType>'` to `'<newElementType>'`._
217217

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

220220
For example, if we had a cmdlet `Get-SomeObject` that returned an array of `Foo` objects
221221

0 commit comments

Comments
 (0)