* Implement -version parameter in console host (address part of https://github.com/PowerShell/PowerShell/issues/1084)
This does not support providing a specific version to run, but
like most other *nix commands, -version will now return the version
of the PowerShell Engine. 'powershell' is prepended to the output to
match other *nix commands. We are using gitcommitid which includes more
info about the build.
At startup, we need to save the current console mode before potentially
enabling VT100 support.
Then, when running an external command, we should use that initial
console mode instead of whatever mode we changed it to.
An application can't rely on the shell enabling VT100 because enabling
by default can cause problems for some applications, therefore
Windows applications must enable VT100 themselves.
* Rebase onto .NET Core 1.1
Modify `Build.psm1` and `project.json` files to use .NET Core 1.1.
.NET Core 1.1 ships with an older dotnet/cli than has currently been used,
so we revert to use case-sensitive directory names for dependencies.
.NET Core 1.1 is a pre-requisite for supporting Fedora 24.
* PSReadLine: Bump major version of PSReadline to 6.0.0-*
* Microsoft.PowerShell.Commands.Utility: Bump major version of Microsoft.CodeAnalysis.Csharp
* Microsoft.PowerShell.SDK: Revert attempt to import netcoreapp1.1 instead of dnxcore
* build.psm1: Restore ability to specify version of dotnet-install.sh
* RFC 0010 SSH remoting cmdlet updates.
* Tweaks to SSH remoting cmdlets
* SSHTransport parameter is now optional instead of mandatory. Aded fix for CoreCLR entry point when hosted in SSH as a subsystem.
* Added tests
* Code review feedback
* Code review comment changes
* Making SSHTransport switch parameter mandatory because otherwise existing Invoke-Command parameter set
* The new SSH parameter set was causing legacy positional based parameters to no longer work. This fix separates the SSH parameter sets from the existing WinRM parameter sets.
* Fixed region name spelling error.
Our private implementation of FailFast was likely introduced
when each individual application needed it's own code to
get Watson reports. The CLR takes care of this for us now,
so we don't need our implementation.
Our method CheckForSevereException was also introduced in
the early days of the CLR - the exceptions it was checking
for aren't actually raised the CLR anymore, they just FailFast.
I removed them as there is a tiny bit of overhead (in code size)
and also in the generated code, e.g. dynamic sites called the method.
* Add OpenCover PS Module to collect code coverage
OpenCover PS Module helps is collecting Code Coverage using the OpenCover
toolset. The module helps in comparing two code coverage runs as well.
* Change OpenCover.psd1 to ASCII
* Fix an error in path for OpenCover
Fixed an error on path for OpenCover. Also used ZipFile class instead of
cmdlet as it might not be available on CI system.
* Convert module to be Powershell v4 compliant
Changed implementation from classes to PSObjects and implemented
Expand-ZipArchive.
* Added CodeCoverage as a configuration to project.json files
Added CodeCoverage as the new configuration for all the project.json
files. When Start-PSBuild is executed with configuration as CodeCoverage,
we change the degubType to 'full' as required by OpenCover toolset.
Also made changes to appveyor.psm1 to build a CodeCoverage package on
daily builds and publish it as a zip.
* Addressed code review comments
Changed from Add-Member to use pscustomobject type accelator. Removed
[gc]::collect.
* Added explicit garbage collection
* Addressed code review comments
- Make sure that the build Start-PSPackage gets is not a code coverage
build
- Add debugType = full for FullCLR
- Remove configurations from PackageManagement files as it is not needed.
- Build CodeCoverage build first in AppVeyor.
* Resolve merge conflict
* Fix indentation
* Fix newline at end of file
* Added command discovery for locating OpenCover.console.exe
* Wire up proper ConsoleHostRawUserInterface.LengthInBufferCells for Unix
Ref https://github.com/PowerShell/PowerShell/issues/2502
This allows for Unix console host to properly calculate display width for
strings containing escape sequences (e.g. ANSI color), rather than
falling back to naive string.Length.
* Add basic tests for host LengthInBufferCells calculation
* Fix for Win32-OpenSSH break when hosting PowerShell in server mode as an SSH subsystem.
* Refactored to use null PSHostUserInterface implementation
* Implemented code review comments
This is a workaround for a full clr issue that causes a hang when calling PowerShell from ruby.
They use named pipes instead of anonymous pipes, and for some reason that triggers the hang.
PowerShell can be started with input redirected in different scenarios.
`powershell -Command -` is one scenario where commands are sent to
PowerShell, but this is not a interactive shell scenario, it's really
a server to run commands from some other process.
`powershell -File -` or just regular redirected input means PowerShell
is an interactive shell, but command line editing must be done via
the redirected standard input handle instead of interacting directly
with a console handle.
In this scenario, we want to provide a good editing experience. Today,
we provide the bare minimum, supporting backspace but no cursor movement.
The bug here is that backspace was treated as a backspace in the server mode
but should not have been.
Before this commit there were three spellings, one of which was a typo,
one was a variant spelling, and one was the dominant spelling.
Microsoft generally uses Hangul for its enums:
https://msdn.microsoft.com/en-us/library/cc250412.aspx
And this is the dominant spelling in general and as used in web browsers.
The input loop reading from stdin did not handle multi-line input correctly
because it was adding a newline character where none was expected.
The fix was to not include the final newline character to accept input,
just like Console.ReadLine or PSReadline would.
* spelling: comments in src/Microsoft.Management.Infrastructure.CimCmdlets
* spelling: comments in src/Microsoft.PackageManagement.ArchiverProviders
* spelling: comments in src/Microsoft.PackageManagement.CoreProviders
* spelling: comments in src/Microsoft.PackageManagement.MetaProvider.PowerShell
* spelling: comments in src/Microsoft.PackageManagement.MsiProvider
* spelling: comments in src/Microsoft.PackageManagement.MsuProvider
* spelling: comments in src/Microsoft.PackageManagement.NuGetProvider
* spelling: comments in src/Microsoft.PackageManagement.PackageSourceListProvider
* spelling: comments in src/Microsoft.PackageManagement
* spelling: comments in src/Microsoft.PowerShell.Activities
* spelling: comments in src/Microsoft.PowerShell.Commands.Diagnostics
* spelling: comments in src/Microsoft.PowerShell.Commands.Management
* spelling: comments in src/Microsoft.PowerShell.Commands.Utility
* spelling: comments in src/Microsoft.PowerShell.ConsoleHost
* spelling: comments in src/Microsoft.PowerShell.Core.Activities
* spelling: comments in src/Microsoft.PowerShell.CoreCLR.AssemblyLoadContext
* spelling: comments in src/Microsoft.PowerShell.CoreCLR.Eventing
* spelling: comments in src/Microsoft.PowerShell.Diagnostics.Activities
* spelling: comments in src/Microsoft.PowerShell.GraphicalHost
* spelling: comments in src/Microsoft.PowerShell.LocalAccounts
* spelling: comments in src/Microsoft.PowerShell.Management.Activities
* spelling: comments in src/Microsoft.PowerShell.PSReadLine
* spelling: comments in src/Microsoft.PowerShell.PackageManagement
* spelling: comments in src/Microsoft.PowerShell.ScheduledJob
* spelling: comments in src/Microsoft.PowerShell.Security.Activities
* spelling: comments in src/Microsoft.PowerShell.Security
* spelling: comments in src/Microsoft.PowerShell.Utility.Activities
* spelling: comments in src/Microsoft.PowerShell.Workflow.ServiceCore
* spelling: comments in src/Microsoft.WSMan.Management.Activities
* spelling: comments in src/Modules
* spelling: comments in src/Schemas
* spelling: comments in src/libpsl-native
* spelling: comments in src/powershell-native
* spelling: comments in build.psm1
* spelling: comments in src/System.Management.Automation/CoreCLR
* spelling: comments in src/System.Management.Automation/DscSupport
* spelling: comments in src/System.Management.Automation/cimSupport
* spelling: comments in src/System.Management.Automation/commands
* spelling: comments in src/System.Management.Automation/engine/Modules
Mostly using R# to automatically refactor, with some manual
fixups where it wouldn't work automatically (e.g. xml comments
on fields) or some it seemed to miss.
Some minor code reformatting was also done on properties near
other stuff I was manually inspecting.
I (Jason Shirk) ran https://github.com/dotnet/codeformatter with the default rules, basically:
codeformatter /nocopyright "/c:DEBUG,UNIX,CORECLR" @files.rsp
This caused a few problems building, which were fixed up manually.
Notable changes:
`this.` is removed unless needed to disambiguate.
private instance fields are renamed to have a `_` prefix.
private static fields are renamed to have a `s_` prefix.
I left some projects alone (like PackageManagement) and also left some generated code alone.
- introduce SDK project with our dependencies and CoreCLR framework
for runtime.
- Move dependencies for Full from ConsoleHost to powershell-win-full
- make powershell-win-full Top-level project
- Change build.psm1 to do publish for -FullCLR build
- Update docs
Again due to the fact that relying on Console.IsOutputRedirected (as
System.Console does for these APIs) causes bugs when pseudo-TTYs are
used (since the output is not redirected, but the APIs nonetheless can't
be used properly). So we ran into a problem where the value of CursorTop
and Console.BufferHeight were lies, and so we accidentally attempted to
set it numbers below zero. Guard everything.
- Replace src\powershell top level project by two
new root-level projects:
- src\powershell-unix
- src\powershell-windows
- Break src\Modules into more granular structure:
- Shared
- Windows+Unix-Core
- Windows-Core
- Windows-Core+Full
- Windows-Full
- To be created: Unix-Core. We will do it as a separate PR
- Fix#1122 : Platform-specific set of Modules (and assemblies)
- Fix Start-TypeGen to work with new top level folders layout