Commit graph

5797 commits

Author SHA1 Message Date
Travis Plunk 16e8a86175 update version regex for nanoserver docker (#5494) 2017-11-20 16:00:22 -08:00
bergmeister 5702081ae6 Change synopsis of install-powershell.ps1 to reflect that it works cross-platform (#5465) 2017-11-20 12:28:17 -08:00
Travis Plunk 2a5d4c43d3 Fix mac packaging (#5496) 2017-11-17 17:26:00 -08:00
Travis Plunk e110fe4093
update version regex for nanoserver docker (#5494) 2017-11-17 16:47:24 -08:00
Travis Plunk cb048ea9f4
Merge pull request #5493 from PowerShell/release
Merge v6.0.0-rc release
2017-11-17 16:12:51 -08:00
Aditya Patwardhan 9e99d59621 Updated docs and scripts for rc release (#5481) 2017-11-17 09:09:28 -08:00
Dongbo Wang f8bb55fa78
Minor update to releasing.md (#5489) 2017-11-17 09:05:42 -08:00
Ilya 7e3a2a23e4
Remove AddTypeCommandBase class (#5407)
It is technically a breaking change but it is only a public api surface of a cmdlet _implementation_ and don't  documented class.
2017-11-17 07:49:32 +04:00
Dongbo Wang 58f978001b
Update the ChangeLog.md for RC release (#5483) 2017-11-16 17:19:30 -08:00
Travis Plunk e2c7e02099 Fix semantic version parsing (#5480) 2017-11-16 10:17:31 -08:00
Travis Plunk 90f455b9ec
fix MSI version parsing (#5475) 2017-11-15 18:43:14 -08:00
Travis Plunk 35a46a75bc
add mac release build scripts (#5474) 2017-11-15 17:10:19 -08:00
Dongbo Wang 97511a9e2a
Fix the regex for '-ReleaseTag' (#5473) 2017-11-15 16:55:13 -08:00
Aditya Patwardhan 381134ba59 Updated csproj to use the latest help package (#5454) 2017-11-15 16:29:04 -08:00
Dan Travison f7206690f1 Update PSRP version dependency (#5469) 2017-11-15 14:43:04 -08:00
Dongbo Wang 5f72faab54
Change to query for metadata from our file (#5468) 2017-11-15 13:54:30 -08:00
Travis Plunk 4007470403
Package signing (#5463)
* add template xml for package signing

* Add script to generate package signing XML

* remove uploading artifact, it always fails.

* Allow the XML to be updated to be specified
2017-11-15 13:03:32 -08:00
Steve Lee 2f8e691e05 Fix build in vscode (#5453)
- Fix build in vscode
- Add v2.0.0 tasks.json thanks to Keith Hill
- Add '/property:GenerateFullPaths=true' to build to fix the $mscompile 'problem matcher' not working issue.
2017-11-15 11:40:49 -08:00
bergmeister 019cfee82c Fix Start-PSBuild on WSL if repository was already built on Windows (#5346)
Replace the static `powershell.inc` filename with a name based on the current RID, so that the build doesn't confuse when running in the same local repository on WSL.
2017-11-15 10:52:06 -08:00
Travis Plunk 3c7cd11152 Get PowerShellGet from the PowerShell Gallery (#5452) 2017-11-15 10:19:25 -08:00
Travis Plunk 5d8999e8b5 Add HighEntropyVA to building pwsh (#5455)
Specify that the images (pwsh.dll in particular) support high-entropy 64-bit address space layout randomization (ASLR).
2017-11-15 10:12:03 -08:00
Darwin 0f41c185d7 Add support for installing powershell on Amazon Linux (#5461)
- Support for Amazon Linux
- Ensure both tarball installs will reinstall/upgrade
- Clean up comments with incorrect urls
2017-11-15 09:51:52 -08:00
Dongbo Wang c4f0d1c893
Add a test for the powershell hang fix (#5451)
- Add test for the powershell hang fix
- Ignore the 'Sync-PSTags' warning
2017-11-15 09:41:11 -08:00
Keith Hill cef7762d18 Add standard set of vscode workspace setting files (#5457)
* Add standard set of vscode workspace setting files

Add an extensions.json file that will prompt folks to install extensions that are recommended for this workspace (c++, c#, powershell, cmake (editing syntax) and markdown linter.

Add settings.json to start to configure C# syntax, PoweShell trim trailing whitespace and configure the markdown lint extension.

Update launch.json to provide ability to debug PowerShell scripts.

* Clean up grammar

* Instruct VSCode to ensure a final newline.

If this is not wanted for certain file types, we can restrict this option to only specified file types.
2017-11-15 11:18:37 +04:00
Paul Higinbotham 1962c273c6 Fix for PowerShell hang on exit (#5356)
CoreCLR doesn't call finalizer on process exit. PowerShell relies on the CLR finalizer to clean up state on exit. In this case, a Runspace pool was not closed or disposed and any pipeline worker threads created to run concurrent scripts won't end, causing the hang. The same thing can happen if any individual Runspace is created to run a concurrent script and is not closed.

We cannot use the `AppDomain.DomainUnload` event because it's not supported by the default load context. The `AppDomain.ProcessExit` event is also not helpful since it is only called during application exit which means threads already have to be cleaned up.

The fix introduces a static property called `PrimaryRunspace` to `Runspace`. When the PrimaryRunspace is closing it means that the PowerShell session is ending and on exit clean should be performed. The static property `PrimaryRunspace` can only be set once per process.
2017-11-14 14:01:11 -08:00
Steve Lee 89d1d92151 Update governance.md (#5437) 2017-11-14 11:15:31 -08:00
Mark Kraus c832e1687d Add PSTypeName Support for Import-Csv and ConvertFrom-Csv (#5389)
closes #5134

Adds PSTypeName preservation on Import-Csv and ConvertFrom-Csv
2017-11-14 11:15:18 -08:00
Steve Lee 83e1d64669 Enable install-powershell.ps1 to update the current running powershell (#5429)
1. Remove `[validate]` attribute from parameter so this script can be invoked directly from the web. This doesn't have any negative impact as the $Destination parameter will have a default value if null or empty.
2. Move removal of destination folder later as installing the package requires package management module and archive module (on Windows)
3. On Windows, because files have open handles when run from existing powershell-daily install, I rename the existing files and copy over the new ones.  User needs to exit and restart `pwsh` to take effect (similar to macOS/Linux where you have to exit and restart anyways)
2017-11-14 10:45:08 -08:00
Travis Plunk 31f7639552
Add compliance label description (#5355) 2017-11-14 10:37:24 -08:00
Travis Plunk 1d64cad068
Signing fixes (#5439)
* Add two files that need to be signed
* make sure to set PSModuleRestore to true when expanding a signed build because we run PSModuleRestore at that point.
* suppress output of CmdLets which are noisy
2017-11-14 10:30:17 -08:00
Mark Kraus 87bcd4132a Fix Single Value JSON null in Invoke-RestMethod (#5338)
* [Feature] Fix Single Value JSON null in Invoke-WebRequest

* [Feature] Switch from Regex to JToken.Parse()

* [Feature] Address PR Feedback: use `n
2017-11-14 07:53:43 +04:00
Dongbo Wang da0b384b2a Try fixing the 'brew update' issue in bootstrap script (#5400)
* Try fixing the 'brew update' issue in bootstrap script

* Add a log message

* Add a comment
2017-11-13 12:21:53 -08:00
Mark Kraus ecf0f8c151 Add SslProtocol Support to WebCmdlets (#5329)
closes #2662

This feature adds the ability to restrict the SSL/TLS protocol used when making the web request. In 5.1 the user could make use of .NET API's to enforce this on the Web Cmdlets. With the move to HttpClient in PowerShell Core, those APIs have no impact. The user still has requirements to ensure specific protocols are used.

The public enum WebSslProtocol is added as a wrapper to the underlying SslProtocols enum. Neither it nor SecurityProtocolType can be used because Ssl3 and Ssl2 are not supported by HttpClientHandler.SslProtocols. While it may not be intuitive to a PowerShell user to use -bor or "Tls, Tls11" to set multiple options, the general use case for this will be a single protocol.

Adds -SslProtocol parameter to Web Cmdlets
Adds WebSslProtocol Enum to support limited subset of SslProtocol enum supported by HttpClientHandler
Adds TLS 1.1 and TLS 1.0 listening ports to WebListener
2017-11-13 10:45:46 -08:00
Dan Travison d5a974ffd4 Add dependency nuget instructions for PowerShell.Core.Instrumentation resource binary (#5396)
* Add dependency nuget packaging instructions for PowerShell.Core.Instrumentation ETW resource binary.

* Fix markdown MD031 Fenced code blocks errors.

* Fix MD022 Headers should be surrounded by blank lines

* Add a note about Authenticode Dual-signing requirement.

* PR Feedback.

* Set version to Beta.10
2017-11-13 10:40:31 -08:00
Andrew 06d3114763 Automation for PS package validation using Docker containers (#5401)
This automation is used for basic validation of PS packages during a release;
Covered configs:

ubuntu14.04
ubuntu16.04
ubuntu17.04
debian.8
debian.9
centos7
fedora25
fedora26
kalilinux
opensuse42.2
During the process Docker files are filled out and executed with Docker build;
During the build PS packages are downloaded onto Docker containers, installed and selected Pester tests from PowerShell Github repo are executed.
2017-11-13 10:25:09 -08:00
Travis Plunk 36fac11f29 Allow packaging from a zip package to allow for signing (#5418)
- Include a serialized version of PSOptions in an includesymbols zip
- Add a function which will create a zip package from the expanded includesymbols zip and a folder of signed files
- Add a function to restore an includesymbols zip as a build and populated PSOptions with the options
2017-11-13 10:10:51 -08:00
Mark Kraus 592cd384e8 Fix spelling in web cmdlet errors (#5427) 2017-11-12 17:48:40 -08:00
Steve Lee 0f223c00d2 Move the 'rcedit' step to build rather than packaging (#5404) 2017-11-11 10:32:10 -08:00
Dongbo Wang 2f399e233c
Enhance 'install-powershell.ps1' to work on Linux/MacOS (#5411)
Enhance 'install-powershell.ps1' to work on Linux and macOS too. A user can install release version or daily powershell core on Linux and macOS.
When `-AddToPath` is specified:
- On Windows, add the absolute destination path to the 'User' scope environment variable 'Path';
- On Linux, make the symlink '/usr/bin/pwsh' points to "$Destination/pwsh";
- On MacOS, make the symlink '/usr/local/bin/pwsh' points to "$Destination/pwsh".
2017-11-10 17:54:24 -08:00
Steve Lee 54f34a0bac Support '[package]' tag in PR CI and fix nightly build on macOS (#5410)
- Support '[package]' tag in PR CI to validate packaging changes in PR CI runs.
  When using '[package]' tag, regular CI tests will run and packaging steps will also run.
- Fix nightly build on macOS.
2017-11-10 17:28:55 -08:00
Travis Plunk b1d312317c
make name a dynamic parameter (#5415) 2017-11-10 15:28:38 -08:00
Ilya c86f243ca0 Make Import-Csv support CR, LF and CRLF as line delimiters (#5363)
With the fix, `Import-Csv` support CR (\r), LF (\n), CRLF (\r\n) as line delimiters.
2017-11-10 14:02:45 -08:00
Chunqing Chen 2be13a623e Disable cmdlets that are not supported under unix system (#5083)
* permanently remove cmdlets that are not supported under Unix and move tests to defaultcommands.tests.ps1
2017-11-10 10:36:08 -08:00
Mark Kraus f5f3fab1ea Clean Up Full CLR Code From Web Cmdlets (#5376) 2017-11-10 22:00:11 +04:00
Himura Kazuto 6530b779d9 Multiple improvements by CodeRush Static Analysis (#5132) 2017-11-10 09:03:34 -08:00
Dongbo Wang affcc40a52
Add 'install-powershell.ps1' to install powershell core on windows (#5383)
- Add install-powershell.ps1 to install powershell core packages on windows.
- Update Start-PSBootStrap to check and install the latest PSCore package on Windows.
2017-11-10 08:28:02 -08:00
Mark Kraus ee7edb7427 Add error on Legacy Credential over non-HTTPS for Web Cmdlets (#5402)
- Add an error when a user tries to use `-Credential` (legacy usage without `-Authentication`) or `-UseDefaultCredentials` over a non-HTTPS URI
- User can bypass error with `-AllowUnencryptedAuthentication`
- `-UseDefaultCredentials` can only be reliably tested on Windows as support on other platforms depends on a Kerberos infrastructure. 
- Add `/Auth/` tests to WebListener for challenge authentication Basic, Negotiate, and NTLM

Incidentally, this increases test coverage for the web cmdlets as `-Credential` and `-UseDefaultCredentials` were not being tested.
2017-11-10 08:11:57 -08:00
Ilya 5fd1b4759c
Don't write an error if file already unblocked (Unblock-File) (#5362) 2017-11-10 18:14:08 +04:00
Dongbo Wang 55f6827aa9
Revive 'download.sh' and make it redirect to 'install-powershell.sh' (#5386) 2017-11-09 22:58:53 -08:00
Travis Plunk 1a5134f9e4
Add signing manifest and script to update it with production values (#5397)
* Add signing configuration file
* add updatesigning.ps1
2017-11-09 17:47:03 -08:00