-
Notifications
You must be signed in to change notification settings - Fork 8.1k
Add the breaking changes doc #5620
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
|
You have spelling issues to fix: https://travis-ci.org/PowerShell/PowerShell/jobs/311493778#L3284 |
|
Also markdown issues, If you install markdownlint in vs code it will detect these: |
|
@TravisEz13, thanks for point these out. I am aware of the issues, the doc is not ready to merge. This is a working PR |
|
I see here a problem - not all PRs with breaking changes was labeled. |
|
I updated the description with the current PR template. Please fill it out when the PR is ready to be reviewed. |
|
Need to add removal of Pester (#5458) and cmdlet/module availability per https://github.com/PowerShell/PowerShell/blob/2be13a623eae2583604ab51449eefc10a8fd9c12/test/powershell/engine/Basic/DefaultCommands.Tests.ps1 |
docs/BREAKINGCHANGES.md
Outdated
| ### Change $OutputEncoding to use iso-8859-1 encoding rather than ASCII [5361](https://github.com/PowerShell/PowerShell/issues/5361) | ||
| TODO | ||
|
|
||
| This is marked as a breaking change because the output of the pipeline is not altered as it was previously, anyone relying on ascii encoding (especially for extended ascii sequences) will no longer have that behavior. |
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 description isn't correct. Also, I don't think we need to mention "breaking change" in the description since the doc itself is about breaking changes. The PR linked to is not valid as we closed that one and decided to use UTF-8 instead of ISO-8859-1. Correct PR is #5369. I suggest using:
The default encoding of output was previously ASCII (7-bit) which in some cases resulted in incorrect
alteration of the output. Change is to default to UTF-8 NoBOM which preserves unicode output with an
encoding supported by most tools and operating systems.
docs/BREAKINGCHANGES.md
Outdated
| When an API returns just `null`, Invoke-RestMethod was serializing this as the string `"null"` instead of `$null`. This change fixes the logic in `Invoke-RestMethod` to properly serialize a valid single value JSON `null` literal as `$null`. | ||
|
|
||
|
|
||
| ### Remove DCOM support from *-Computer cmdlets (replacement for 5152) [5277](https://github.com/PowerShell/PowerShell/issues/5277) |
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.
You need to escape the asterisk otherwise markdown things you're emphasizing everything:
\*-ComputerApplies everywhere below.
docs/BREAKINGCHANGES.md
Outdated
|
|
||
| ### Remove DCOM support from *-Computer cmdlets (replacement for 5152) [5277](https://github.com/PowerShell/PowerShell/issues/5277) | ||
| TODO | ||
| DCOM is not supported in corefx, therefore the *-Computer cmdlets were removed. |
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.
The *-Computer cmdlets are still there on Windows (since they rely on WMI), but the -ComputerName parameter was removed since it relied on RPC (DotNet remoting).
docs/BREAKINGCHANGES.md
Outdated
|
|
||
| ### Fix performance issues in Add-Type [5243](https://github.com/PowerShell/PowerShell/issues/5243) | ||
| TODO | ||
| To speed up spope creation, AllScope was removed from most default aliases. AllScope was left for a few frequently used aliases where the lookup was faster. |
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.
Should we have different sections for impactful Breaking Changes and technical Breaking Changes? This one falls under the latter where it shouldn't affect anyone.
docs/BREAKINGCHANGES.md
Outdated
|
|
||
| ### fix get-item -literalpath a*b if `a*b` doesn't actually exist to return error [5197](https://github.com/PowerShell/PowerShell/issues/5197) | ||
| TODO | ||
| Previously, `-literalpath` given a wildcard will treat it the same as -path and if the wildcard found no files, it would silently exit. Correct behavior should be that -literalpath is literal so if the file doesn't exist, it should error. Fix is to also see if wildcard is being suppressed. |
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.
Last sentence should be: Change is to treat wildcards used with -Literal as literal.
Also, use semantic linefeeds.
docs/BREAKINGCHANGES.md
Outdated
|
|
||
| ### Rename $IsOSX to $IsMacOS [4757](https://github.com/PowerShell/PowerShell/issues/4757) | ||
| TODO | ||
| ### Rename $IsOSX to $IsacOS [4700](https://github.com/PowerShell/PowerShell/issues/4700) |
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.
typo $IsMacOS
docs/BREAKINGCHANGES.md
Outdated
|
|
||
| ### Make error message consistent when invalid script is passed to -File, better error when passed ambiguous arg [4573](https://github.com/PowerShell/PowerShell/issues/4573) | ||
| TODO | ||
| TODO (I believe the breaking change here is for "Enable -WindowStyle to work", changing the exit code. Need to confirm) |
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 need to mention enabling -WindowStyle to work, the breaking change is modifying exit codes of pwsh.exe to align with Unix conventions.
docs/BREAKINGCHANGES.md
Outdated
|
|
||
| ### Due to the use of unsupported APIs, we must remove the Counter CmdLets in the Diagnostics Module until a better solution is found. [4303](https://github.com/PowerShell/PowerShell/issues/4303) | ||
| TODO | ||
| TODO (Not sure how to document more than the title) |
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.
Should be a separate section on cmdlet coverage compared to Windows PowerShell
docs/BREAKINGCHANGES.md
Outdated
|
|
||
| ### Due to the use of unsupported APIs, we must remove the LocalAccounts module until a better solution is found. [4302](https://github.com/PowerShell/PowerShell/issues/4302) | ||
| TODO | ||
| TODO (Not sure how to document more than the title) |
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.
Should be a separate section on cmdlet coverage compared to Windows PowerShell
docs/BREAKINGCHANGES.md
Outdated
| ### Change positional parameter for powershell.exe from -Command to -File [4019](https://github.com/PowerShell/PowerShell/issues/4019) | ||
| TODO | ||
|
|
||
| This fixes the usage of `#!` in PowerShell scripts that are being executed from non-PowerShell shells on non-Windows platforms. |
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.
Enable shebang use of PowerShell on non-Windows platforms. This means on Unix based systems,
you can make a script executable which would invoke PowerShell automatically rather than explicitly
invoking pwsh.
|
@maertendMSFT looks like you made a big update while I was adding comments so they appear "out dated", but you should look at them to see if they've been addressed since GitHub doesn't know |
docs/BREAKINGCHANGES.md
Outdated
|
|
||
| ### Unify cmdlets with parameter `Encoding` to be of type `System.Text.Encoding` [#5080](https://github.com/PowerShell/PowerShell/issues/5080) | ||
|
|
||
| <<<<<<< HEAD |
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.
Typo.
docs/BREAKINGCHANGES.md
Outdated
| The `-Encoding` value `Byte` has been removed from the filesystem provider cmdlets. | ||
| A new parameter `-Byte` is now used to specify that a byte stream is required as input or that output will be a stream of bytes. | ||
|
|
||
| >>>>>>> reformatting to BREAKINGCHANGES |
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.
Typo.
docs/BREAKINGCHANGES.md
Outdated
| Previously, an enum value of `Byte` was used with `-Encoding` to indicate a byte stream. | ||
| However, `Byte` is not an actual encoding. The change is remove that enum value and replace | ||
| it with a `-AsByteStream` switch to indicate input or output should be a byte stream. | ||
| ======= |
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.
Typo.
docs/BREAKINGCHANGES.md
Outdated
| In order to give users a deterministic way to call PowerShell Core on Windows (as opposed to Windows PowerShell), | ||
| the PowerShell Core binary was changed to `pwsh.exe` on Windows and `pwsh` on non-Windows platforms. | ||
|
|
||
| Additionally, this was done to reduce the typing time to open PowerShell, |
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 don't think this is worth calling out the reduced typing time. Instead you can say: The shortened name is also consistent with naming of shells on non-Windows platforms.
docs/BREAKINGCHANGES.md
Outdated
| Additionally, this was done to reduce the typing time to open PowerShell, | ||
| especially for non-Windows users who are used to three or four letter shell names. | ||
|
|
||
| In the future, some kind of alias or symbolic link for `powershell` may be added to non-Windows platforms. |
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 wouldn't mention this particularly since dotnetcore doesn't work if the symlink doesn't match the library name
docs/BREAKINGCHANGES.md
Outdated
| ### Skip null-element check for collections with a value-type element type [#5432](https://github.com/PowerShell/PowerShell/issues/5432) | ||
| For the `Mandatory` parameter and `ValidateNotNull` and `ValidateNotNullOrEmpty` attributes, skip the null-element check if the collection's element type is value type. | ||
|
|
||
| ### Change `$OutputEncoding` to use `iso-8859-1` encoding rather than ASCII [#5369](https://github.com/PowerShell/PowerShell/issues/5369) |
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.
Should be UTF8 w/o BOM instead of iso-8859-1
docs/BREAKINGCHANGES.md
Outdated
| To speed up scope creation, `AllScope` was removed from most default aliases. | ||
| `AllScope` was left for a few frequently used aliases where the lookup was faster. | ||
|
|
||
| ### Don't wrap `stderr` as `ErrorRecord` [#5190](https://github.com/PowerShell/PowerShell/issues/5190) |
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 PR was closed and not merged. Remove.
|
|
||
| ### `-Verbose` and `-Debug` no longer overrides `$ErrorActionPreference` [#5113](https://github.com/PowerShell/PowerShell/issues/5113) | ||
|
|
||
| Previously, if `-Verbose` or `-Debug` were specified, it overrode the behavior of `$ErrorActionPreference`. |
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 think it should be was, not were. Sounds better to me, but not an English major.
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 think this could go either way, since there are 2 parameters specified I used there plural were. But was would be appropriate because the parameters can be used individually. In this case, I think were is correct since we are listing multiple parameters.
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.
Ok
docs/BREAKINGCHANGES.md
Outdated
| However, this change now requires that you explicitly specify `-c` or `-Command` when trying to do things like `powershell.exe Get-Command`. | ||
|
|
||
| ### Implement Unicode escape parsing [#3958](https://github.com/PowerShell/PowerShell/issues/3958) | ||
| TODO |
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 think you can just say:
`u#### or `u{####} is converted to the corresponding Unicode character. To output a literal `u, escape the backtick: ``u.
docs/BREAKINGCHANGES.md
Outdated
|
|
||
| ### Completions for environment variables differ between platforms [#3227](https://github.com/PowerShell/PowerShell/issues/3227) | ||
| The casing of `$PSModulePath` has been corrected to be consistent with Windows PowerShell. | ||
| TODO: not sure if this actually a breaking change. If the change is to make something consistent with Windows, there would be no difference between 6.0 and 5.1 |
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 think you can remove this, this was only a breaking change between releases of PSCore6
docs/BREAKINGCHANGES.md
Outdated
|
|
||
|
|
||
| ### Add Get-StringHash and Get-FileHash cmdlets [#3024](https://github.com/PowerShell/PowerShell/issues/3024) | ||
| TODO: Labeled with breaking change so the difference between windows and core can be described |
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.
The breaking change is that some hash algorithms are not supported by corefx and so no longer available: MACTripleDES, RIPEMD160
docs/BREAKINGCHANGES.md
Outdated
|
|
||
|
|
||
| ### Add support W3C Extended Log File Format in Import-Csv [#2482](https://github.com/PowerShell/PowerShell/issues/2482) | ||
| Previously, the `Iport-Csv` cmdlet cannot be used to directly import the log files in W3C extended log format and additional action would be required. |
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.
typo Import-CSV
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.
@SteveL-MSFT Casing issue. Import-Csv.
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.
@alexandair thanks for the correction of the correction :)
docs/BREAKINGCHANGES.md
Outdated
|
|
||
|
|
||
| ### Parameter binding problem with ValueFromRemainingArguments in PS functions [#2035](https://github.com/PowerShell/PowerShell/issues/2035) | ||
| TODO |
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.
ValueFromRemainingArguments now returns the values as an array instead of a single value which itself is an array
|
@TravisEz13 these spelling errors in Travis CI don't make any sense, you mind helping out? |
|
The change in Web Cmdlets from
|
|
@markekraus thanks for the callout! This is definitely going to be a living document. We're doing the launch in just a few mins...would you mind submitting a PR with that stuff into here? I can't afford to break spelling right now.... :\ |
|
One spelling issue, https://travis-ci.org/PowerShell/PowerShell/jobs/327363249#L3337, please fix. |
|
@joeyaiello Might be a few hours, but yes. I will put in a PR for that.. erm.. How do you want it and where? |
|
Oh, definitely no rush. It'd be awesome if you just added another H3 summarizing "changes to web cmdlets" or something like. And into this doc in master, please. You're the best! |
PR Summary
PR Checklist
Note: Please mark anything not applicable to this PR
NA.[feature]if the change is significant or affects feature testsWIP:to the beginning of the title and remove the prefix when the PR is ready.