* v6.1.0-preview.1 - 2018-03-23

** Breaking Changes

- Throw terminating error in `New-TemporaryFile` and make it not rely on the presence of the `TEMP` environment variable (#6182) (Thanks @bergmeister!)
- Remove the unnecessary `AddTypeCommandBase` class from `Add-Type` (#5407) (Thanks @iSazonov!)
- Remove unsupported members from the enum `Language` in `Add-Type` (#5829) (Thanks @iSazonov!)
- Fix range operator to work better with character ranges (#5732) (Thanks @iSazonov!)

** Engine Updates and Fixes

- Fix `ValidateSet` with generator in a module (#5702)
- Update `SAL` annotation and fix warnings (#5617)
- Add `ForEach` and `Where` methods to `PSCustomobject` (#5756) (Thanks @iSazonov!)
- Add `Count` and `Length` properties to `PSCustomobject` (#5745) (Thanks @iSazonov!)
- Make minor fixes in compiler to properly handle void type expression (#5764)
- Logging: Fix the escaped characters when generating `.resx` file from PowerShell `ETW` manifest. (#5892)
- Remove `PSv2` only code from `Types_Ps1Xml.cs` and `HostUtilities.cs` (#5907) (Thanks @iSazonov!)
- Enable passing arrays to `pwsh -EncodedArguments` on debug builds. (#5836)
- Logging: Handle path that contains spaces in `RegisterManifest.ps1` (#5859) (Thanks @tandasat!)
- Add `-settingsfile` to `pwsh` to support loading a custom powershell config file. (#5920)
- Return better error for `pwsh -WindowStyle` on unsupported platforms. (#5975) (Thanks @thezim!)
- Enable conversions from `PSMethod` to `Delegate` (#5287) (Thanks @powercode!)
- Minor code clean-up changes in tab completion code (#5737) (Thanks @kwkam!)
- Add lambda support to `-replace` operator (#6029) (Thanks @IISResetMe!)
- Fix retrieval of environment variables on Windows in cases where variable names differ only by case. (#6320)
- Fix the `NullRefException` when using `-PipelineVariable` with `DynamicParam` block (#6433)
- Add `NullReference` checks to two code paths related to `PseudoParameterBinder` (#5738) (Thanks @kwkam!)
- Fix `PropertyOnlyAdapter` to allow calling base methods (#6394)
- Improve table view for `Certs` and `Signatures` by adding `EnhancedKeyUsageList` and `StatusMessage` (#6123)
- Fix the filtering of analytic events on Unix platforms. (#6086)
- Update copyright and license headers (#6134)
- Set pipeline thread stack size to 10MB (#6224) (Thanks @iSazonov!)

** General Cmdlet Updates and Fixes

- Fix the `NullRefException` in `Enter-PSHostProcess` (#5995)
- Merge and Sort `BasicHtmlWebResponseObject` and `ContentHelper` in Web Cmdlets (#5720) (Thanks @markekraus!)
- Encoding for `New-ModuleManifest` on all platforms should be `UTF-8 NoBOM` (#5923)
- Make `Set-Location` use path with wildcard characters as literal if it exists (#5839)
- Combine Web Cmdlets partial class files (#5612) (Thanks @markekraus!)
- Change `Microsoft.PowerShell.Commands.SetDateCommand.SystemTime` to `struct`. (#6006) (Thanks @stknohg!)
- Add Simplified `multipart/form-data` support to Web Cmdlets through `-Form` parameter (#5972) (Thanks @markekraus!)
- Make a relative redirect URI absolute when `Authorization` header present (#6325) (Thanks @markekraus!)
- Make relation-link handling in Web Cmdlets case-insensitive (#6338)
- Make `Get-ChildItem -LiteralPath` accept `Include` or `Exclude` filter (#5462)
- Stop `ConvertTo-Json` when `Ctrl+c` is hit (#6392)
- Make `Resolve-Path -Relative` return useful path when `$PWD` and `-Path` is on different drive (#5740) (Thanks @kwkam!)
- Correct the `%c`, `%l`, `%k`, `%s` and `%j` formats in `Get-Date -UFormat` (#4805) (Thanks @iSazonov!)
- Add standard deviation implementation on `Measure-Object` (#6238) (Thanks @CloudyDino!)
- Make `Get-ChildItem <PATH>/* -file` include `<Path>` as search directory (#5431)
- Enable setting `PSSession` Name when using `SSHTransport` and add `Transport` property (#5954)
- Add `Path` alias to `-FilePath` parameters and others for several commands (#5817) (Thanks @KevinMarquette!)
- Add the parameter `-Password` to `Get-PfxCertificate` (#6113) (Thanks @maybe-hello-world!)
- Don't add trailing spaces to last column when using `Format-Table` (#5568)
- Fix table alignment and padding. (#6230)
- Add `-SkipHeaderValidation` Support to `ContentType` on Web Cmdlets (#6018) (Thanks @markekraus!)
- Add common aliases for all `write-*` commands default message parameter (#5816) (Thanks @KevinMarquette!)
- Make `UTF-8` the default encoding for `application/json` (#6109) (Thanks @markekraus!)
- Enable `$env:PAGER` to work correctly if arguments are used (#6144)

** Test

- Convert Web Cmdlets test to `one-true-brace-style` formatting (#5716) (Thanks @markekraus!)
- Add a test for `IValidateSetValuesGenerator` in a module (#5830) (Thanks @iSazonov!)
- Fix function to test for docker OS due to change to use `linuxkit` for macOS (#5843)
- Replace `HttpListener` tests with `WebListener` (#5806, #5840, #5872) (Thanks @markekraus!)
- Stop `HttpListener` from running in Web Cmdlets tests (#5921) (Thanks @markekraus!)
- Fix `PSVersion` in `PSSessionConfiguration` tests (#5554) (Thanks @iSazonov!)
- Update test framework to support Pester v4 (#6064)
- Update tests to use Pester v4 Syntax. (#6294, #6257, #6306, #6304, #6298)
- Add negative tests for `Copy-Item` over remote sessions (#6231)
- Markdown test: Use strict in JavaScript (#6328)
- Add tests for `Get-Process` about the `-Module` and `-FileVersion` parameters (#6272)
- Add test for the `OsLocalDateTime` property of `Get-ComputerInfo`. (#6253)
- Change `Get-FileHash` tests to use raw bytes (#6430)
- Remove `runas.exe` from tests as we have tags to control this behavior (#6432)
- Refactor the `Get-Content` tests to use `-TestCases`. (#6082)
- Use `RequireAdminOnWindows` tag in `Set-Date` tests (#6034) (Thanks @stknohg!)
- Remove `-TimeOutSec` from non timeout related tests (#6055) (Thanks @markekraus!)
- Add verbosity and more accurate timeout implementation for `Start-WebListener` (#6013) (Thanks @markekraus!)
- Skip tests that use `ExecutionPolicy` cmdlets on Unix (#6021)
- Change Web Cmdlet tests to use `127.0.0.1` instead of `Localhost` (#6069) (Thanks @markekraus!)
- Fix `Start-PSPester` to include or exclude `RequireSudoOnUnix` tag smartly on Unix (#6241)
- Fix the terse output on Windows for test runs without admin privilege (#6252)
- Add `RequireSudoOnUnix` tag for `Get-Help` tests. (#6223)
- Add tests for `*-Item` Cmdlets in function provider (#6172)
- Support running tests in root privilege on Linux. (#6145)

** Build and Packaging Improvements

- Add option to add explorer shell context menu in Windows installer (#5774) (Thanks @bergmeister!)
- Make the explorer shell context menu registry entries platform specific to allow side by side of `x86` and `x64`. (#5824) (Thanks @bergmeister!)
- Fix start menu folder clash of shortcut when `x86` and `x64` are both installed by appending ` (x86)` for `x86` installation. (#5826) (Thanks @bergmeister!)
- Reduce image file sizes using lossless compression with `imgbot` (#5808) (Thanks @bergmeister!)
- Windows installer: Allow `Launch PowerShell` checkbox to be toggled using the space bar. (#5792) (Thanks @bergmeister!)
- Fix release packaging build (#6459)
- Fail `AppVeyor` Build if `MSI` does not build (#5755) (Thanks @bergmeister!)
- Cleanup temporarily created `WiX` files after compilation to be able to have a clean re-build (#5757) (Thanks @bergmeister!)
- Fix `install-powershell.ps1` for running during window setup (#5727)
- Start using `Travis-CI` cache (#6003)
- Fix build, packaging and installation scripts for `SLES` (#5918) (Thanks @tomconte!)
- Update recommended `WiX` toolset link to be generic to `WiX 3.x` but mention that latest version of 3.11 has to be taken (#5926) (Thanks @bergmeister!)
- Add service point manager call in `Install-PowerShell.ps1` to force `TLS1.2`. (#6310) (Thanks @DarqueWarrior!)
- Add `-Restore` when build `win-arm` and `win-arm64` (#6353)
- Make sure package verification failure fails the `AppVeyor` build (#6337)
- Specify the runtime when running `dotnet restore` in `Start-PSBuild` (#6345)
- Rename `log` and `logerror` to `Write-Log [$message] [-error]` (#6333)
- Make Linux packages use correct version scheme for preview releases (#6318)
- Add support for Debian in `installpsh-debian.sh` (#6314) (Thanks @Pawamoy!)
- MSI: Make preview builds to install Side by side with release builds (#6301)
- Add `TLS1.2` workaround for code coverage script (#6299)
- Cleanup after Powershell install for `CentOS` and `Fedora` Docker images (#6264) (Thanks @strawgate!)
- MSI: Update the environment variable PATH with proper value (#6441)
- MSI: Remove the version from the product name (#6415)
- Support non-GitHub commits in the change log generation script (#6389)
- Fix secret and JavaScript compliance issues (#6408)
- Remove `AppVeyor` specific cmdlet from `Start-NativeExecution` (#6263)
- Restore modules from the `NuGet` package cache by using `dotnet restore` (#6111)
- CI Build: Use `TRAVIS_PULL_REQUEST_SHA` to accurately get the commit message (#6024)
- Use `TLS1.2` on Windows during `Start-PSBootstrap` (#6235) (Thanks @CallmeJoeBob!)
- Use `TLS1.2` in `Start-PSBootStrap` without breaking `HTTPS` (#6236) (Thanks @markekraus!)
- Add options to enable `PSRemoting` and register Windows Event Logging Manifest to MSI installer (#5999) (Thanks @bergmeister!)

** Documentation and Help Content

- Separate macOS from Linux install instructions. (#5823) (Thanks @thezim!)
- Show usage (short) help if command line parameter is wrong (#5780) (Thanks @iSazonov!)
- Add the breaking changes doc for 6.0.0 release. (#5620) (Thanks @maertendMSFT!)
- Remove DockerFile for Fedora 25 and add DockerFile for Fedora 27 (#5984) (Thanks @seemethere!)
- Add a missing step to prepare the build environment on Mac. (#5901) (Thanks @zackJKnight!)
- Update `BREAKINGCHANGES.md` to include WebCmdlets breaking changes (#5852) (Thanks @markekraus!)
- Fix typos in `BREAKINGCHANGES.md` (#5913) (Thanks @brianbunke!)
- Update `macos.md` to use `brew cask upgrade` for upgrading powershell (#5875) (Thanks @timothywlewis!)
- Add verification step to macOS install docs (#5860) (Thanks @rpalo!)
- Fix links in macOS install docs (#5861) (Thanks @kanjibates!)
- Update docs with test guidelines with the `RequireSudoOnUnix` tag. (#6274)
- Add `Alpine` Linux support (#6367) (Thanks @kasper3!)
- Update to Governance doc to reflect current working model (#6323)
- Add guidance on adding copyright and license header to new source files (#6140)
- Fix the command to build type catalog in `internals.md` (#6084) (Thanks @ppadmavilasom!)
- Fix `Pull Request Process` dead link (#6066) (Thanks @IISResetMe!)
- Update processes to allow for coordinated vulnerability disclosure (#6042)
- Rework Windows Start menu folder name (#5891) (Thanks @Stanzilla!)
- Update `Raspbian` installation instructions to create `symlink` for `pwsh` (#6122)
- Fix various places that still refer to old versions of `pwsh` (#6179) (Thanks @bergmeister!)
- Correct a Linux installation typo (#6219) (Thanks @mababio!)
- Change synopsis of `install-powershell.ps1` to reflect that it works cross-platform (#5465) (Thanks @bergmeister!)
