v6.0.0-beta.1 release of PowerShellCore

@daxian-dbw daxian-dbw released this May 9, 2017 · 1405 commits to master since this release

Note: Windows 7 support is currently broken, and we plan to release a working package in the future.

Move to .NET Core 2.0 (.NET Standard 2.0 support)

PowerShell Core has moved to using .NET Core 2.0 so that we can leverage all the benefits of .NET Standard 2.0 (#3556). To learn more about .NET Standard 2.0, there's some great starter content on Youtube, on the .NET blog, and on GitHub. We'll also have more content soon in our repository documentation (which will eventually make its way to official documentation). In a nutshell, .NET Standard 2.0 allows us to have universal, portable modules between Windows PowerShell (which uses the full .NET Framework) and PowerShell Core (which uses .NET Core).
Many modules and cmdlets that didn't work in the past may now work on .NET Core, so import your favorite modules and tell us what does and doesn't work in our GitHub Issues!

Telemetry

  • For the first beta of PowerShell Core 6.0, telemetry has been to the console host to report two values (#3620):
    • the OS platform ($PSVersionTable.OS)
    • the exact version of PowerShell ($PSVersionTable.GitCommitId)

If you want to opt-out of this telemetry, simply delete $PSHome\DELETE_ME_TO_DISABLE_CONSOLEHOST_TELEMETRY. Even before the first run of Powershell, deleting this file will bypass all telemetry. In the future, we plan on also enabling a configuration value for whatever is approved as part of RFC0015. We also plan on exposing this telemetry data (as well as whatever insights we leverage from the telemetry) in our community dashboard.

If you have any questions or comments about our telemetry, please file an issue.

Engine updates and fixes

  • Add support for native command globbing on Unix platforms. (#3643)
    • This means you can now use wildcards with native binaries/commands (e.g. ls *.txt).
  • Fix PowerShell Core to find help content from $PSHome instead of the Windows PowerShell base directory. (#3528)
    • This should fix issues where about_* topics couldn't be found on Unix platforms.
  • Add the OS entry to $PSVersionTable. (#3654)
  • Arrange the display of $PSVersionTable entries in the following way: (#3562) (Thanks to @iSazonov!)
    • PSVersion
    • PSEdition
    • alphabetical order for rest entries based on the keys
  • Make PowerShell Core more resilient when being used with an account that doesn't have some key environment variables. (#3437)
  • Update PowerShell Core to accept the -i switch to indicate an interactive shell. (#3558)
    • This will help when using PowerShell as a default shell on Unix platforms.
  • Relax the PowerShell SemanticVersion constructors to not require 'minor' and 'patch' portions of a semantic version name. (#3696)
  • Improve performance to security checks when group policies are in effect for ExecutionPolicy. (#2588) (Thanks to @powercode)
  • Fix code in PowerShell to use IntPtr(-1) for INVALID_HANDLE_VALUE instead of IntPtr.Zero. (#3544) (Thanks to @0xfeeddeadbeef)

General cmdlet updates and fixes

  • Change the default encoding and OEM encoding used in PowerShell Core to be compatible with Windows PowerShell. (#3467) (Thanks to @iSazonov!)
  • Fix a bug in Import-Module to avoid incorrect cyclic dependency detection. (#3594)
  • Fix New-ModuleManifest to correctly check if a URI string is well formed. (#3631)

Filesystem-specific updates and fixes

  • Use operating system calls to determine whether two paths refer to the same file in file system operations. (#3441)
    • This will fix issues where case-sensitive file paths were being treated as case-insensitive on Unix platforms.
  • Fix New-Item to allow creating symbolic links to file/directory targets and even a non-existent target. (#3509)
  • Change the behavior of Remove-Item on a symbolic link to only removing the link itself. (#3637)
  • Use better error message when New-Item fails to create a symbolic link because the specified link path points to an existing item. (#3703)
  • Change Get-ChildItem to list the content of a link to a directory on Unix platforms. (#3697)
  • Fix Rename-Item to allow Unix globbing patterns in paths. (#3661)

Interactive fixes

  • Add Hashtable tab completion for -Property of Select-Object. (#3625) (Thanks to @powercode)
  • Fix tab completion with @{<tab> to avoid crash in PSReadline. (#3626) (Thanks to @powercode)
  • Use <id> - <name> as ToolTip and ListItemText when tab completing process ID. (#3664) (Thanks to @powercode)

Remoting fixes

  • Update PowerShell SSH remoting to handle multi-line error messages from OpenSSH client. (#3612)
  • Add -Port parameter to New-PSSession to create PowerShell SSH remote sessions on non-standard (non-22) ports. (#3499) (Thanks to @Lee303)

API Updates

  • Add the public property ValidRootDrives to ValidateDriveAttribute to make it easy to discover the attribute state via ParameterMetadata or PSVariable objects. (#3510) (Thanks to @indented-automation!)
  • Improve error messages for ValidateCountAttribute. (#3656) (Thanks to @iSazonov)
  • Update ValidatePatternAttribute, ValidateSetAttribute and ValidateScriptAttribute to allow users to more easily specify customized error messages. (#2728) (Thanks to @powercode)

Windows 7 Packages

Windows 7 packages were not produced for this release due to a downlevel API set issue (#3747) that we are working to resolve. Until it is fixed, users who wish to run PowerShell Core on Windows 7 systems can use the Alpha.18 release.

SHA256 Hashes of the release artifacts:

  • powershell-6.0.0-beta.1-osx.10.12-x64.pkg
    • 8ED67321503A22E9C4442C588FC014AA61698E12AD389B7A8C38C98FAB9206D1
  • PowerShell-6.0.0-beta.1-win10-win2016-x64.msi
    • 615FC02200E18E6811A867A03DB23D52962230F147F79750DC88FF7E7EEC45FE
  • PowerShell-6.0.0-beta.1-win10-win2016-x64.zip
    • 0686F46ECE75009401A2ED3B70B645888118276054BB2F8493200C69F52F8A95
  • PowerShell-6.0.0-beta.1-win81-win2012r2-x64.msi
    • EC002C2918C2B9895F37DBB5EB80B151B29FB593DCC997B5FAE2F4CEFC0CC466
  • PowerShell-6.0.0-beta.1-win81-win2012r2-x64.zip
    • FF2D79265DFF2B41E8CEEA1A93C009FAD4646394368D75AD46BE494E350D4BB2
  • PowerShell-6.0.0-beta.1-x86_64.AppImage
    • 6DC2D4C076E59EBBC54CFF239F78F70F4D5B5B33B9F4BA0E404A0961143B64C5
  • powershell-6.0.0_beta.1-1.el7.centos.x86_64.rpm
    • 752279BE1A52FD4412D2E63CFB51A474A0B11AE94C1DA9F916499377B1B12FB3
  • powershell-6.0.0_beta.1-1.suse.42.1.x86_64.rpm
    • 8FE3251D712482BD9742737AC751A0A6F85E8F7DB399ECDD5F4E326D3C89DECB
  • powershell_6.0.0-beta.1-1ubuntu1.14.04.1_amd64.deb
    • B74A3A287E4265BB4E3F1CCD5E004D280980E8D09C54ADC35EB29BB182D32ADD
  • powershell_6.0.0-beta.1-1ubuntu1.16.04.1_amd64.deb
    • CECC756C7525ADEA770044EF16878C8F0545B4BE30E58D1248F244B4B7DAA2DA