diff --git a/.spelling b/.spelling index a79de1002..59384fb1e 100644 --- a/.spelling +++ b/.spelling @@ -801,6 +801,10 @@ WebRequest win7-x86 WindowsVersion XPath +alpha.18 +behavioral +MiaRomero +TheFlyingCorpse - test/tools/CodeCoverageAutomation/README.md CodeCoverage.zip Coveralls.exe diff --git a/CHANGELOG.md b/CHANGELOG.md index 56bbc619c..ef372a4d6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,42 @@ # Changelog +## v6.0.0-alpha.18 - 2017-04-05 + +### Progress Bar + +We made a number of fixes to the progress bar rendering and the `ProgressRecord` object that improved cmdlet performance and fixed some rendering bugs on non-Windows platforms. + +- Fix a bug that caused the progress bar to drift on Unix platforms. (#3289) +- Improve the performance of writing progress records. (#2822) (Thanks to @iSazonov!) +- Fix the progress bar rendering on Unix platforms. (#3362) (#3453) +- Reuse `ProgressRecord` in Web Cmdlets to reduce the GC overhead. (#3411) (Thanks to @iSazonov!) + +### Cmdlet updates + +- Use `ShellExecute` with `Start-Process`, `Invoke-Item`, and `Get-Help -Online` so that those cmdlets use standard shell associations to open a file/URI. + This means you `Get-Help -Online` will always use your default browser, and `Start-Process`/`Invoke-Item` can open any file or path with a handler. + (Note: there are still some problems with STA threads.) (#3281, partially fixes #2969) +- Add `-Extension` and `-LeafBase` switches to `Split-Path` so that you can split paths between the filename extension and the rest of the filename. (#2721) (Thanks to @powercode!) +- Implement `Format-Hex` in C# along with some behavioral changes to multiple parameters and the pipeline. (#3320) (Thanks to @MiaRomero!) +- Add `-NoProxy` to web cmdlets so that they ignore the system-wide proxy setting. (#3447) (Thanks to @TheFlyingCorpse!) +- Fix `Out-Default -Transcript` to properly revert out of the `TranscribeOnly` state, so that further output can be displayed on Console. (#3436) (Thanks to @PetSerAl!) +- Fix `Get-Help` to not return multiple instances of the same help file. (#3410) + +### Interactive fixes + +- Enable argument auto-completion for `-ExcludeProperty` and `-ExpandProperty` of `Select-Object`. (#3443) (Thanks to @iSazonov!) +- Fix a tab completion bug that prevented `Import-Module -n` from working. (#1345) + +### Cross-platform fixes + +- Ignore the `-ExecutionPolicy` switch when running PowerShell on non-Windows platforms because script signing is not currently supported. (#3481) +- Standardize the casing of the `PSModulePath` environment variable. (#3255) + +### JEA fixes + +- Fix the JEA transcription to include the endpoint configuration name in the transcript header. (#2890) +- Fix `Get-Help` in a JEA session. (#2988) + ## v6.0.0-alpha.17 - 2017-03-08 - Update PSRP client libraries for Linux and Mac. diff --git a/README.md b/README.md index 54d786779..83d9afb22 100644 --- a/README.md +++ b/README.md @@ -33,16 +33,16 @@ You can download and install a PowerShell package for any of the following platf | macOS 10.11 | [.pkg][rl-macos] | [Instructions][in-macos] | | Docker | | [Instructions][in-docker] | -[rl-windows10]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.17/PowerShell_6.0.0-alpha.17-win10-win2016-x64.msi -[rl-windows81]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.17/PowerShell_6.0.0-alpha.17-win81-win2012r2-x64.msi -[rl-windows7-64]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.17/PowerShell_6.0.0-alpha.17-win7-win2008r2-x64.msi -[rl-windows7-86]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.17/PowerShell_6.0.0-alpha.17-win7-x86.msi -[rl-ubuntu16]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.17/powershell_6.0.0-alpha.17-1ubuntu1.16.04.1_amd64.deb -[rl-ubuntu14]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.17/powershell_6.0.0-alpha.17-1ubuntu1.14.04.1_amd64.deb -[rl-centos]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.17/powershell-6.0.0_alpha.17-1.el7.centos.x86_64.rpm -[rl-ai]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.17/PowerShell-x86_64.AppImage -[rl-macos]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.17/powershell-6.0.0-alpha.17.pkg -[rl-opensuse421]: tbd +[rl-windows10]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.18/PowerShell_6.0.0-alpha.18-win10-win2016-x64.msi +[rl-windows81]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.18/PowerShell_6.0.0-alpha.18-win81-win2012r2-x64.msi +[rl-windows7-64]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.18/PowerShell_6.0.0-alpha.18-win7-win2008r2-x64.msi +[rl-windows7-86]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.18/PowerShell_6.0.0-alpha.18-win7-x86.msi +[rl-ubuntu16]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.18/powershell_6.0.0-alpha.18-1ubuntu1.16.04.1_amd64.deb +[rl-ubuntu14]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.18/powershell_6.0.0-alpha.18-1ubuntu1.14.04.1_amd64.deb +[rl-centos]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.18/powershell-6.0.0_alpha.18-1.el7.centos.x86_64.rpm +[rl-ai]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.18/PowerShell-6.0.0-alpha.18-x86_64.AppImage +[rl-macos]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.18/powershell-6.0.0-alpha.18-osx.10.11-x64.pkg +[rl-opensuse421]: https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.18/powershell-6.0.0_alpha.18-1.suse.42.1.x86_64.rpm [installation]: docs/installation [in-windows]: docs/installation/windows.md#msi diff --git a/appveyor.yml b/appveyor.yml index ca393dd65..fd66fb178 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -1,4 +1,4 @@ -version: 6.0.0-alpha.17-{build} +version: 6.0.0-alpha.18-{build} image: Visual Studio 2015 diff --git a/docker/release/fedora24/Dockerfile b/docker/release/fedora24/Dockerfile index f979a48de..4896cd8c4 100644 --- a/docker/release/fedora24/Dockerfile +++ b/docker/release/fedora24/Dockerfile @@ -4,9 +4,9 @@ MAINTAINER Andrew Schwartzmeyer # TODO: Until a release of PowerShell for Fedora 24 is available, # this Dockerfile installs the CentOS 7 version for compatibility. -ARG POWERSHELL_VERSION=6.0.0-alpha.17 -ARG POWERSHELL_RELEASE=v6.0.0-alpha.17 -ARG POWERSHELL_PACKAGE=powershell-6.0.0_alpha.17-1.el7.centos.x86_64.rpm +ARG POWERSHELL_VERSION=6.0.0-alpha.18 +ARG POWERSHELL_RELEASE=v6.0.0-alpha.18 +ARG POWERSHELL_PACKAGE=powershell-6.0.0_alpha.18-1.el7.centos.x86_64.rpm # The CentOS 7 release relies on an older version of libicu, so we'll be downloading it # from the University of Kent (GB) mirror service. diff --git a/docker/release/nanoserver/Dockerfile b/docker/release/nanoserver/Dockerfile index a55c04dc1..6604d0281 100644 --- a/docker/release/nanoserver/Dockerfile +++ b/docker/release/nanoserver/Dockerfile @@ -4,7 +4,7 @@ MAINTAINER brycem@microsoft.com LABEL Readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" LABEL Description="This Dockerfile will install the latest release of PS." -ARG POWERSHELL_ZIP=https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.17/PowerShell_6.0.0-alpha.17-win10-win2016-x64.zip +ARG POWERSHELL_ZIP=https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.18/PowerShell_6.0.0-alpha.18-win10-win2016-x64.zip ARG POWERSHELL_SHA256=3D770CF4C5744992622E043A52F9A285C695BFE8F1B94BB070C4026582CA64B0 # Setup PowerShell - Log-to > C:\Docker.log diff --git a/docker/release/opensuse13.2/Dockerfile b/docker/release/opensuse13.2/Dockerfile index b5dedcf84..f823c0710 100644 --- a/docker/release/opensuse13.2/Dockerfile +++ b/docker/release/opensuse13.2/Dockerfile @@ -2,8 +2,8 @@ FROM opensuse:harlequin LABEL maintainer Travis Plunk -ARG POWERSHELL_VERSION=6.0.0_alpha.17 -ARG POWERSHELL_RELEASE=v6.0.0-alpha.17 +ARG POWERSHELL_VERSION=6.0.0_alpha.18 +ARG POWERSHELL_RELEASE=v6.0.0-alpha.18 ARG POWERSHELL_PACKAGE=powershell-$POWERSHELL_VERSION-1.suse.13.2.x86_64.rpm # Update, Install packages to generate localedef and CURL which is used by RPM diff --git a/docker/release/opensuse42.1/Dockerfile b/docker/release/opensuse42.1/Dockerfile index 202f1eee0..5c92ebe1e 100644 --- a/docker/release/opensuse42.1/Dockerfile +++ b/docker/release/opensuse42.1/Dockerfile @@ -2,8 +2,8 @@ FROM opensuse:42.1 LABEL maintainer Travis Plunk -ARG POWERSHELL_VERSION=6.0.0_alpha.17 -ARG POWERSHELL_RELEASE=v6.0.0-alpha.17 +ARG POWERSHELL_VERSION=6.0.0_alpha.18 +ARG POWERSHELL_RELEASE=v6.0.0-alpha.18 ARG FORK=PowerShell ARG POWERSHELL_PACKAGE=powershell-$POWERSHELL_VERSION-1.suse.42.1.x86_64.rpm diff --git a/docker/release/windowsservercore/Dockerfile b/docker/release/windowsservercore/Dockerfile index d28ea05c2..bcfc40175 100644 --- a/docker/release/windowsservercore/Dockerfile +++ b/docker/release/windowsservercore/Dockerfile @@ -4,7 +4,7 @@ MAINTAINER brycem@microsoft.com LABEL Readme.md="https://github.com/PowerShell/PowerShell/blob/master/docker/README.md" LABEL Description="This Dockerfile will install the latest release of PS." -ARG POWERSHELL_MSI=https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.17/PowerShell_6.0.0-alpha.17-win10-win2016-x64.msi +ARG POWERSHELL_MSI=https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.18/PowerShell_6.0.0-alpha.18-win10-win2016-x64.msi ARG POWERSHELL_SHA256=07CAAB19CE891131AF7A64F267D59C15865B85ADB679E206389189E928C2E597 # Setup PowerShell - Log-to > C:\Docker.log diff --git a/docs/installation/linux.md b/docs/installation/linux.md index e9915c84f..f9a4c157d 100644 --- a/docs/installation/linux.md +++ b/docs/installation/linux.md @@ -10,7 +10,7 @@ You should *never* run a script without reading it first! Please **read the [download][] script first**, and then if you want to run it, use: ```sh -bash <(curl -fsSL https://raw.githubusercontent.com/PowerShell/PowerShell/v6.0.0-alpha.17/tools/download.sh) +bash <(curl -fsSL https://raw.githubusercontent.com/PowerShell/PowerShell/v6.0.0-alpha.18/tools/download.sh) ``` Once the package is installed, run `powershell` from a terminal. @@ -21,7 +21,7 @@ Once the package is installed, run `powershell` from a terminal. [arch]: #arch-linux [lai]: #linux-appimage [mac]: #macos-1011 -[download]: https://github.com/PowerShell/PowerShell/blob/v6.0.0-alpha.17/tools/download.sh +[download]: https://github.com/PowerShell/PowerShell/blob/v6.0.0-alpha.18/tools/download.sh ## Ubuntu 14.04 @@ -53,13 +53,13 @@ from then on, you just need to use `sudo apt-get upgrade powershell` to update i ### Installation via Direct Download Using [Ubuntu 14.04][], download the Debian package -`powershell_6.0.0-alpha.17-1ubuntu1.14.04.1_amd64.deb` +`powershell_6.0.0-alpha.18-1ubuntu1.14.04.1_amd64.deb` from the [releases][] page onto the Ubuntu machine. Then execute the following in the terminal: ```sh -sudo dpkg -i powershell_6.0.0-alpha.17-1ubuntu1.14.04.1_amd64.deb +sudo dpkg -i powershell_6.0.0-alpha.18-1ubuntu1.14.04.1_amd64.deb sudo apt-get install -f ``` @@ -105,13 +105,13 @@ from then on, you just need to use `sudo apt-get upgrade powershell` to update i ### Installation via Direct Download - Ubuntu 16.04 Using [Ubuntu 16.04][], download the Debian package -`powershell_6.0.0-alpha.17-1ubuntu1.16.04.1_amd64.deb` +`powershell_6.0.0-alpha.18-1ubuntu1.16.04.1_amd64.deb` from the [releases][] page onto the Ubuntu machine. Then execute the following in the terminal: ```sh -sudo dpkg -i powershell_6.0.0-alpha.17-1ubuntu1.16.04.1_amd64.deb +sudo dpkg -i powershell_6.0.0-alpha.18-1ubuntu1.16.04.1_amd64.deb sudo apt-get install -f ``` @@ -154,19 +154,19 @@ you just need to use `sudo yum update powershell` to update PowerShell. ### Installation via Direct Download - CentOS 7 Using [CentOS 7][], download the RPM package -`powershell-6.0.0_alpha.17-1.el7.centos.x86_64.rpm` +`powershell-6.0.0_alpha.18-1.el7.centos.x86_64.rpm` from the [releases][] page onto the CentOS machine. Then execute the following in the terminal: ```sh -sudo yum install ./powershell-6.0.0_alpha.17-1.el7.centos.x86_64.rpm +sudo yum install ./powershell-6.0.0_alpha.18-1.el7.centos.x86_64.rpm ``` You can also install the RPM without the intermediate step of downloading it: ```sh -sudo yum install https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.17/powershell-6.0.0_alpha.17-1.el7.centos.x86_64.rpm +sudo yum install https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.18/powershell-6.0.0_alpha.18-1.el7.centos.x86_64.rpm ``` ### Uninstallation @@ -181,25 +181,24 @@ sudo yum remove powershell Installation instruction for OpenSUSE 42.1. -**Note:** OpenSUSE package will be released as part of the alpha 18 release. -@TravisEz13 Has built an unofficial package of alpha 17 which is available in the [fork's release](https://github.com/TravisEz13/PowerShell/releases/tag/v6.0.0-alpha.17). - ### Installation via Direct Download - OpenSUSE 42.1 Using [OpenSUSE 42.1][], download the RPM package -`powershell-6.0.0_alpha.17-1.suse.42.1.x86_64.rpm` +`powershell-6.0.0_alpha.18-1.suse.42.1.x86_64.rpm` from the [releases][] page onto the OpenSUSE machine. Then execute the following in the terminal: ```sh -sudo zypper install ./powershell-6.0.0_alpha.17-1.suse.42.1.x86_64.rpm +rpm --import https://packages.microsoft.com/keys/microsoft.asc +sudo zypper install ./powershell-6.0.0_alpha.18-1.suse.42.1.x86_64.rpm ``` You can also install the RPM without the intermediate step of downloading it: ```sh -sudo zypper install https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.17/powershell-6.0.0_alpha.17-1.suse.42.1.x86_64.rpm +rpm --import https://packages.microsoft.com/keys/microsoft.asc +sudo zypper install https://github.com/PowerShell/PowerShell/releases/download/v6.0.0-alpha.18/powershell-6.0.0_alpha.18-1.suse.42.1.x86_64.rpm ``` ### Uninstallation - OpenSUSE 42.1 @@ -225,14 +224,14 @@ For more information on installing packages from the AUR, see the [Arch Linux wi ## Linux AppImage Using a recent Linux distribution, -download the AppImage `PowerShell-x86_64.AppImage` +download the AppImage `PowerShell-6.0.0-alpha.18-x86_64.AppImage` from the [releases][] page onto the Linux machine. Then execute the following in the terminal: ```bash -chmod a+x PowerShell-x86_64.AppImage -./PowerShell-x86_64.AppImage +chmod a+x PowerShell-6.0.0-alpha.18-x86_64.AppImage +./PowerShell-6.0.0-alpha.18-x86_64.AppImage ``` The [AppImage][] lets you run PowerShell without installing it. @@ -246,14 +245,14 @@ and is a single binary. ## macOS 10.11 Using macOS 10.11, download the PKG package -`powershell-6.0.0-alpha.17.pkg` +`powershell-6.0.0-alpha.18-osx.10.11-x64.pkg` from the [releases][] page onto the macOS machine. Either double-click the file and follow the prompts, or install it from the terminal: ```sh -sudo installer -pkg powershell-6.0.0-alpha.17.pkg -target / +sudo installer -pkg powershell-6.0.0-alpha.18-osx.10.11-x64.pkg -target / ``` ### Uninstallation - macOS 10.11 @@ -318,7 +317,7 @@ You *can* run this command manually if you're having trouble with .NET Core's cr ## Paths -* `$PSHOME` is `/opt/microsoft/powershell/6.0.0-alpha.17/` +* `$PSHOME` is `/opt/microsoft/powershell/6.0.0-alpha.18/` * User profiles will be read from `~/.config/powershell/profile.ps1` * Default profiles will be read from `$PSHOME/profile.ps1` * User modules will be read from `~/.local/share/powershell/Modules` @@ -333,7 +332,7 @@ On Linux and macOS, the [XDG Base Directory Specification][xdg-bds] is respected Note that because macOS is a derivation of BSD, instead of `/opt`, the prefix used is `/usr/local`. -Thus, `$PSHOME` is `/usr/local/microsoft/powershell/6.0.0-alpha.17/`, +Thus, `$PSHOME` is `/usr/local/microsoft/powershell/6.0.0-alpha.18/`, and the symlink is placed at `/usr/local/bin/powershell`. [releases]: https://github.com/PowerShell/PowerShell/releases/latest diff --git a/tools/download.sh b/tools/download.sh index 7910d8c39..d572de36e 100755 --- a/tools/download.sh +++ b/tools/download.sh @@ -9,7 +9,7 @@ trap ' get_url() { fork=$2 - release=v6.0.0-alpha.17 + release=v6.0.0-alpha.18 echo "https://github.com/$fork/PowerShell/releases/download/$release/$1" } @@ -26,7 +26,7 @@ case "$OSTYPE" in sudo yum install -y curl fi - package=powershell-6.0.0_alpha.17-1.el7.centos.x86_64.rpm + package=powershell-6.0.0_alpha.18-1.el7.centos.x86_64.rpm ;; ubuntu) if ! hash curl 2>/dev/null; then @@ -36,10 +36,10 @@ case "$OSTYPE" in case "$VERSION_ID" in 14.04) - package=powershell_6.0.0-alpha.17-1ubuntu1.14.04.1_amd64.deb + package=powershell_6.0.0-alpha.18-1ubuntu1.14.04.1_amd64.deb ;; 16.04) - package=powershell_6.0.0-alpha.17-1ubuntu1.16.04.1_amd64.deb + package=powershell_6.0.0-alpha.18-1ubuntu1.16.04.1_amd64.deb ;; *) echo "Ubuntu $VERSION_ID is not supported!" >&2 @@ -57,7 +57,7 @@ case "$OSTYPE" in 42.1) # TODO during next release remove fork and fix package name fork=TravisEz13 - package=powershell-6.0.0_alpha.17_41_g8598a51-1.suse.42.1.x86_64.rpm + package=powershell-6.0.0_alpha.18_41_g8598a51-1.suse.42.1.x86_64.rpm ;; *) echo "OpenSUSE $VERSION_ID is not supported!" >&2 @@ -71,7 +71,7 @@ case "$OSTYPE" in ;; darwin*) # We don't check for curl as macOS should have a system version - package=powershell-6.0.0-alpha.17.pkg + package=powershell-6.0.0-alpha.18-osx.10.11-x64.pkg ;; *) echo "$OSTYPE is not supported!" >&2