-
Notifications
You must be signed in to change notification settings - Fork 4k
Add document explaining the different breaking change tool exceptions #3592
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is awesome. A few minor changes.
|
||
_The cmdlet '`<cmdlet>`' no longer has output type '`<outputType>`'._ | ||
|
||
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Do we want to work on this? This is not strictly true, if the output type is derived from the original output type, or has the same properties, this would not be a breaking change. Please file an issue for us to triage on fixing this
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I have an issue open to do another refactor to the breaking change tool (slated for the May sprint) that includes this change: #3507
|
||
_The cmdlet '`<cmdlet>`' no longer implements SupportsShouldProcess._ | ||
|
||
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. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
implement ShouldProcess, in all cases in this one
|
||
### Description | ||
|
||
_The cmdlet '`<cmdlet>`' no longer implements SupportsPaging._ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
no longer implements Paging
|
||
### Remediation | ||
|
||
_Change the default parameter for cmdlet '`<cmdlet>`' back to '`<parameterSet>`'._ |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We may want to note that the required parameters in the defautl parameter set and the attributes of those parameters need to remain the same as before - the parameter set proeprties and not the name are important.
|
||
_The element type for the output has been changed from `'<oldElementType>'` to `'<newElementType>'`._ | ||
|
||
When the type of the output is an array, and the element type of that array has been changed, that is a breaking change. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Probably want to mention that types need to have the same proeprties, not necessarily the same names
Description
Add document that outlines each of the exceptions from the breaking change tool, and provide additional information about the scenarios that it flags.
This checklist is used to make sure that common guidelines for a pull request are followed. You can find a more complete discussion of PowerShell cmdlet best practices here.
General Guidelines
Testing Guidelines
Cmdlet Signature Guidelines
ShouldProcess
and haveSupportShouldProcess=true
specified in the cmdlet attribute. You can find more information onShouldProcess
here.OutputType
attribute if any output is produced - if the cmdlet produces no output, it should implement aPassThru
parameter.Cmdlet Parameter Guidelines