mirror of
https://github.com/PowerShell/PowerShell
synced 2026-06-08 12:12:50 +00:00
Bring changes from 7.3.0-preview.1 (#16640)
Co-authored-by: Aditya Patwardhan <adityap@microsoft.com>
This commit is contained in:
@@ -103,6 +103,7 @@ catchable
|
||||
cdxml
|
||||
celsius
|
||||
CentOS
|
||||
cgmanifest
|
||||
CGManifest
|
||||
changelog
|
||||
changelog.md
|
||||
@@ -237,6 +238,7 @@ DotnetRutimeMetadata.json
|
||||
dottedscopes
|
||||
downlevel
|
||||
dropdown
|
||||
dwtaber
|
||||
e.g.
|
||||
ebook
|
||||
ebooks
|
||||
@@ -273,6 +275,7 @@ export-formatdata
|
||||
export-modulemember
|
||||
failurecode
|
||||
failurecount
|
||||
farmerau
|
||||
fbehrens
|
||||
felixfbecker
|
||||
ffeldhaus
|
||||
@@ -356,6 +359,7 @@ hackathons
|
||||
HashSet
|
||||
hashtable
|
||||
hashtables
|
||||
hayhay27
|
||||
helloworld.ps1
|
||||
helpproviderwithcache
|
||||
helpproviderwithfullcache
|
||||
@@ -373,6 +377,7 @@ httpbin's
|
||||
https
|
||||
hubuk
|
||||
hvitved
|
||||
i3arnon
|
||||
i.e.
|
||||
ico
|
||||
idera
|
||||
@@ -430,8 +435,10 @@ jwmoss
|
||||
kanjibates
|
||||
kasper3
|
||||
katacoda
|
||||
Kellen-Stuart
|
||||
kevinmarquette
|
||||
kevinoid
|
||||
KevRitchie
|
||||
keyfileparameter
|
||||
keyhandler
|
||||
khansen00
|
||||
@@ -476,10 +483,12 @@ macports
|
||||
maertendmsft
|
||||
mahawar
|
||||
Markdig.Signed
|
||||
markdown.yml
|
||||
markekraus
|
||||
marktiedemann
|
||||
Marusyk
|
||||
MarvTheRobot
|
||||
matt9ucci
|
||||
mcbobke
|
||||
md
|
||||
meir017
|
||||
@@ -635,6 +644,7 @@ powershellgallery
|
||||
powershellget
|
||||
powershellmagazine.com
|
||||
powershellninja
|
||||
powershellpr0mpt
|
||||
powershellproperties
|
||||
ppadmavilasom
|
||||
pre-build
|
||||
@@ -726,6 +736,7 @@ receive-pssession
|
||||
recurse
|
||||
reddit
|
||||
redhat
|
||||
redirections
|
||||
redistributable
|
||||
redistributables
|
||||
register-argumentcompleter
|
||||
@@ -773,6 +784,7 @@ rkitover
|
||||
robo210
|
||||
ronn
|
||||
rpalo
|
||||
rpolley
|
||||
runspace
|
||||
runspaceinit
|
||||
runspaces
|
||||
@@ -815,6 +827,7 @@ set-wsmaninstance
|
||||
set-wsmanquickconfig
|
||||
sethvs
|
||||
setversionvariables
|
||||
sha256
|
||||
ShaydeNofziger
|
||||
shellexecute
|
||||
shouldbeerrorid
|
||||
@@ -840,6 +853,7 @@ start-codecoveragerun
|
||||
start-pspester
|
||||
stdin
|
||||
stevel-msft
|
||||
StevenLiekens
|
||||
stevend811
|
||||
stknohg
|
||||
strawgate
|
||||
@@ -849,6 +863,7 @@ string.split
|
||||
stringbuilder
|
||||
stuntguy3000
|
||||
StyleCop
|
||||
subfolder
|
||||
submodule
|
||||
submodules
|
||||
sudo
|
||||
|
||||
@@ -1 +1,230 @@
|
||||
# Current preview release
|
||||
|
||||
## [7.3.0-preview.1] - 2021-12-16
|
||||
|
||||
### Breaking Changes
|
||||
|
||||
- Add `clean` block to script block as a peer to `begin`, `process`, and `end` to allow easy resource cleanup (#15177)
|
||||
- Change default for `$PSStyle.OutputRendering` to `Ansi` (Internal 18449)
|
||||
|
||||
### Engine Updates and Fixes
|
||||
|
||||
- Remove duplicate remote server mediator code (#16027)
|
||||
- Fix `PSVersion` parameter version checks and error messages for PowerShell 7 remoting (#16228)
|
||||
- Use the same temporary home directory when `HOME` env variable is not set (#16263)
|
||||
- Fix parser to generate error when array has more than 32 dimensions (#16276)
|
||||
|
||||
### Performance
|
||||
|
||||
- Avoid validation for built-in file extension and color VT sequences (#16320) (Thanks @iSazonov!)
|
||||
|
||||
### General Cmdlet Updates and Fixes
|
||||
|
||||
- Update `README.md` and `metadata.json` for next preview release (#16107)
|
||||
- Use `PlainText` when writing to a host that doesn't support VT (#16092)
|
||||
- Remove support for `AppExeCLinks` to retrieve target (#16044)
|
||||
- Move `GetOuputString()` and `GetFormatStyleString()` to `PSHostUserInterface` as public API (#16075)
|
||||
- Fix `ConvertTo-SecureString` with key regression due to .NET breaking change (#16068)
|
||||
- Fix regression in `Move-Item` to only fallback to `copy and delete` in specific cases (#16029)
|
||||
- Set `$?` correctly for command expression with redirections (#16046)
|
||||
- Use `CurrentCulture` when handling conversions to `DateTime` in `Add-History` (#16005) (Thanks @vexx32!)
|
||||
- Fix link header parsing to handle unquoted `rel` types (#15973) (Thanks @StevenLiekens!)
|
||||
- Fix a casting error when using `$PSNativeCommandUsesErrorActionPreference` (#15993)
|
||||
- Format-Wide: Fix `NullReferenceException` (#15990) (Thanks @DarylGraves!)
|
||||
- Make the native command error handling optionally honor `ErrorActionPreference` (#15897)
|
||||
- Remove declaration of experimental features in Utility module manifest as they are stable (#16460)
|
||||
- Fix race condition between `DisconnectAsync` and `Dispose` (#16536) (Thanks @i3arnon!)
|
||||
- Fix the `Max_PATH` condition check to handle long path correctly (#16487) (Thanks @Shriram0908!)
|
||||
- Update `HelpInfoUri` for 7.2 release (#16456)
|
||||
- Fix tab completion within the script block specified for the `ValidateScriptAttribute`. (#14550) (Thanks @MartinGC94!)
|
||||
- Update `README.md` to specify gathered telemetry (#16379)
|
||||
- Fix typo for "privacy" in MSI installer (#16407)
|
||||
- Remove unneeded call to `File.ResolveLinkTarget` from `IsWindowsApplication` (#16371) (Thanks @iSazonov!)
|
||||
- Add `-HttpVersion` parameter to web cmdlets (#15853) (Thanks @hayhay27!)
|
||||
- Add support to web cmdlets for open-ended input tags (#16193) (Thanks @farmerau!)
|
||||
- Add more tests to `Tee-Object -Encoding` (#14539) (Thanks @rpolley!)
|
||||
- Don't throw exception when trying to resolve a possible link path (#16310)
|
||||
- Fix `ConvertTo-Json -Depth` to allow 100 at maximum (#16197) (Thanks @KevRitchie!)
|
||||
- Fix for SSH remoting when banner is enabled on SSHD endpoint (#16205)
|
||||
- Disallow all COM for AppLocker system lock down (#16268)
|
||||
- Configure `ApplicationInsights` to not send cloud role name (#16246)
|
||||
- Disallow `Add-Type` in NoLanguage mode on a locked down machine (#16245)
|
||||
- Specify the executable path as `TargetObect` for non-zero exit code `ErrorRecord` (#16108) (Thanks @rkeithhill!)
|
||||
- Don't allow `Move-Item` with FileSystemProvider to move a directory into itself (#16198)
|
||||
- Make property names for the color VT sequences consistent with documentations (#16212)
|
||||
- Fix `PipelineVariable` to set variable in the right scope (#16199)
|
||||
- Invoke-Command: improve handling of variables with $using: expression (#16113) (Thanks @dwtaber!)
|
||||
- Change `Target` from a `CodeProperty` to be an `AliasProperty` that points to `FileSystemInfo.LinkTarget` (#16165)
|
||||
|
||||
### Code Cleanup
|
||||
|
||||
<details>
|
||||
|
||||
<summary>
|
||||
|
||||
<p>We thank the following contributors!</p>
|
||||
<p>@xtqqczze, @eltociear, @iSazonov</p>
|
||||
|
||||
</summary>
|
||||
|
||||
<ul>
|
||||
<li>Improve <code>CommandInvocationIntrinsics</code> API documentation and style (#14369)</li>
|
||||
<li>Use <code>bool?.GetValueOrDefault()</code> in <code>FormatWideCommand</code> (#15988) (Thanks @xtqqczze!)</li>
|
||||
<li>Remove 4 assertions which cause debug build test runs to fail (#15963)</li>
|
||||
<li>Fix typo in `Job.cs` (#16454) (Thanks @eltociear!)</li>
|
||||
<li>Remove unnecessary call to `ToArray` (#16307) (Thanks @iSazonov!)</li>
|
||||
<li>Remove the unused `FollowSymLink` function (#16231)</li>
|
||||
<li>Fix typo in `TypeTable.cs` (#16220) (Thanks @eltociear!)</li>
|
||||
<li>Fixes #16176 - replace snippet tag with code tag in comments (#16177)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
### Tools
|
||||
|
||||
- Fix typo in build.psm1 (#16038) (Thanks @eltociear!)
|
||||
- Add `.stylecop` to `filetypexml` and format it (#16025)
|
||||
- Enable sending Teams notification when workflow fails (#15982)
|
||||
- Use `Convert-Path` for unknown drive in `Build.psm1` (#16416) (Thanks @matt9ucci!)
|
||||
|
||||
### Tests
|
||||
|
||||
- Add benchmark to test compiler performance (#16083)
|
||||
- Enable two previously disabled `Get-Process` tests (#15845) (Thanks @iSazonov!)
|
||||
- Set clean state before testing `UseMU` in the MSI (#16543)
|
||||
- Fix global tool and SDK tests in release pipeline (#16342)
|
||||
- Remove the outdated test (#16269)
|
||||
- Removed old not-used-anymore docker-based tests for PS release packages (#16224)
|
||||
|
||||
### Build and Packaging Improvements
|
||||
|
||||
<details>
|
||||
|
||||
<summary>
|
||||
|
||||
<p>We thank the following contributors!</p>
|
||||
<p>@github-actions[bot], @kondratyev-nv</p>
|
||||
|
||||
</summary>
|
||||
|
||||
<ul>
|
||||
<li>fix issue with hash file getting created before we have finished get-childitem (#16170)</li>
|
||||
<li>Add sha256 hashes to release (#16147)</li>
|
||||
<li>Change path for Component Governance for build to the path we actually use to build (#16137)</li>
|
||||
<li>Update <code>Microsoft.CodeAnalysis.CSharp</code> version (#16138)</li>
|
||||
<li>Bump Microsoft.CodeAnalysis.NetAnalyzers (#16070)</li>
|
||||
<li>Update .NET to <code>6.0.100-rc.1.21458.32</code> (#16066)</li>
|
||||
<li>Update minimum required OS version for macOS (#16088)</li>
|
||||
<li>Set locale correctly on Linux CI (#16073)</li>
|
||||
<li>Ensure locale is set correctly on Ubuntu 20.04 in CI (#16067)</li>
|
||||
<li>Bump <code>Microsoft.CodeAnalysis.NetAnalyzers</code> (#16045)</li>
|
||||
<li>Update .NET SDK version from `6.0.100-rc.1.21430.44` to `6.0.100-rc.1.21455.2` (#16041) (Thanks @github-actions[bot]!)</li>
|
||||
<li>Fix the GitHub Action for updating .NET daily builds (#16042)</li>
|
||||
<li>Bump Microsoft.CodeAnalysis.CSharp from 4.0.0-3.final to 4.0.0-4.21430.4 (#16036)</li>
|
||||
<li>Bump .NET to `6.0.100-rc.1.21430.44` (#16028)</li>
|
||||
<li>Move from <code>PkgES</code> hosted agents to 1ES hosted agents (#16023)</li>
|
||||
<li>Bump Microsoft.CodeAnalysis.NetAnalyzers (#16021)</li>
|
||||
<li>Update Ubuntu images to use Ubuntu 20.04 (#15906)</li>
|
||||
<li>Fix the mac build by updating the pool image name (#16010)</li>
|
||||
<li>Use Alpine 3.12 for building PowerShell for alpine (#16008)</li>
|
||||
<li>Update .NET SDK version from `6.0.100-preview.6.21355.2` to `6.0.100-rc.1.21426.1` (#15648) (Thanks @github-actions[bot]!)</li>
|
||||
<li>Ignore error from <code>Find-Package</code> (#15999)</li>
|
||||
<li>Find packages separately for each source in <code>UpdateDotnetRuntime.ps1</code> script (#15998)</li>
|
||||
<li>Update metadata to start using .NET 6 RC1 builds (#15981)</li>
|
||||
<li>Bump <code>Microsoft.CodeAnalysis.NetAnalyzers</code> (#15985)</li>
|
||||
<li>Merge the v7.2.0-preview.9 release branch back to GitHub master (#15983)</li>
|
||||
<li>Publish global tool package for stable releases (#15961)</li>
|
||||
<li>Bump <code>Microsoft.CodeAnalysis.NetAnalyzers</code> to newer version (#15962)</li>
|
||||
<li>Disabled Yarn cache in markdown.yml (#16599)</li>
|
||||
<li>Update cgmanifest (#16600)</li>
|
||||
<li>Fix broken links in markdown (#16598)</li>
|
||||
<li>Add explicit job name for approval tasks in Snap stage (#16579)</li>
|
||||
<li>Bring back <code>pwsh.exe</code> for framework dependent packages to support Start-Job (#16535)</li>
|
||||
<li>Fix NuGet package generation in release build (#16509)</li>
|
||||
<li>Add `Microsoft.PowerShell.Commands.SetStrictModeCommand.ArgumentToPSVersionTransformationAttribute` to list of patterns to remove for generated ref assembly (#16489)</li>
|
||||
<li>Bump Microsoft.CodeAnalysis.CSharp from `4.0.0-6.final` to `4.0.1` (#16423)</li>
|
||||
<li>use different containers for different branches (#16434)</li>
|
||||
<li>Add import so we can use common GitHub workflow function. (#16433)</li>
|
||||
<li>Remove pre-release .NET 6 build sources (#16418)</li>
|
||||
<li>Update release instructions with link to new build (#16419)</li>
|
||||
<li>Bump <code>Microsoft.ApplicationInsights</code> from <code>2.18.0</code> to <code>2.19.0</code> (#16413)</li>
|
||||
<li>Update <code>metadata.json</code> to make 7.2.0 the latest LTS (#16417)</li>
|
||||
<li>Make static CI a matrix (#16397)</li>
|
||||
<li>Update <code>metadata.json</code> in preparation on <code>7.3.0-preview.1</code> release (#16406)</li>
|
||||
<li>Update cgmanifest (#16405)</li>
|
||||
<li>Add diagnostics used to take corrective action when releasing `buildInfoJson` (#16404)</li>
|
||||
<li>`vPack` release should use `buildInfoJson` new to 7.2 (#16402)</li>
|
||||
<li>Update the usage of metadata.json for getting LTS information (#16381)</li>
|
||||
<li>Add checkout to build json stage to get `ci.psm1` (#16399)</li>
|
||||
<li>Update CgManifest.json for 6.0.0 .NET packages (#16398)</li>
|
||||
<li>Add current folder to the beginning of the module import (#16353)</li>
|
||||
<li>Increment RC MSI build number by 100 (#16354)</li>
|
||||
<li>Bump <code>XunitXml.TestLogger</code> from 3.0.66 to 3.0.70 (#16356)</li>
|
||||
<li>Move PR Quantifier config to subfolder (#16352)</li>
|
||||
<li>Release build info json when it is preview (#16335)</li>
|
||||
<li>Add an approval for releasing build-info json (#16351)</li>
|
||||
<li>Generate manifest with latest public version of the packages (#16337)</li>
|
||||
<li>Update to the latest notices file (#16339) (Thanks @github-actions[bot]!)</li>
|
||||
<li>Use notice task to generate license assuming cgmanifest contains all components (#16340)</li>
|
||||
<li>Refactor cgmanifest generator to include all components (#16326)</li>
|
||||
<li>Fix issues in release build (#16332)</li>
|
||||
<li>Update feed and analyzer dependency (#16327)</li>
|
||||
<li>Bump <code>Microsoft.NET.Test.Sdk</code> from 16.11.0 to 17.0.0 (#16312)</li>
|
||||
<li>Update license and cgmanifest (#16325) (Thanks @github-actions[bot]!)</li>
|
||||
<li>Fix condition in cgmanifest logic (#16324)</li>
|
||||
<li>Add GitHub Workflow to keep notices up to date (#16284)</li>
|
||||
<li>Update to latest .NET 6 GA build <code> 6.0.100-rtm.21527.11</code> (#16309)</li>
|
||||
<li>Create compliance build (#16286)</li>
|
||||
<li>Move mapping file into product repo and add Debian 11 (#16316)</li>
|
||||
<li>Add a major-minor build info JSON file (#16301)</li>
|
||||
<li>Clean up <code>crossgen</code> related build scripts also generate native symbols for <code>R2R</code> images (#16297)</li>
|
||||
<li>Fix Windows build ZIP packaging (#16299) (Thanks @kondratyev-nv!)</li>
|
||||
<li>Revert "Update to use .NET 6 GA build (#16296)" (#16308)</li>
|
||||
<li>Add <code>wget</code> as a dependency for Bootstrap script (#16303) (Thanks @kondratyev-nv!)</li>
|
||||
<li>Fix issues reported by code signing verification tool (#16291)</li>
|
||||
<li>Update to use .NET 6 GA build (#16296)</li>
|
||||
<li>Revert "add GH workflow to keep the cgmanifest up to date." (#16294)</li>
|
||||
<li>Update ChangeLog for 7.2.0-rc.1 and also fix RPM packaging (#16290)</li>
|
||||
<li>Bump Microsoft.CodeAnalysis.NetAnalyzers (#16271)</li>
|
||||
<li>add GH workflow to keep the cgmanifest up to date.</li>
|
||||
<li>Update <code>ThirdPartyNotices.txt</code> (#16283)</li>
|
||||
<li>Update `testartifacts.yml` to use <code>ubuntu-latest</code> image (#16279)</li>
|
||||
<li>Update version of <code>Microsoft.PowerShell.Native</code> and <code>Microsoft.PowerShell.MarkdownRender</code> packages (#16277)</li>
|
||||
<li>Add script to generate <code>cgmanifest.json</code> (#16278)</li>
|
||||
<li>Add <code>cgmanifest.json</code> for generating correct third party notice file (#16266)</li>
|
||||
<li>Bump Microsoft.CodeAnalysis.NetAnalyzers from `6.0.0-rtm.21504.2` to `6.0.0-rtm.21516.1` (#16264)</li>
|
||||
<li>Only upload stable <code>buildinfo</code> for stable releases (#16251)</li>
|
||||
<li>Make RPM license recognized (#16189)</li>
|
||||
<li>Don't upload dep or tar.gz for RPM because there are none. (#16230)</li>
|
||||
<li>Add condition to generate release files in local dev build only (#16259)</li>
|
||||
<li>Update .NET 6 to version 6.0.100-rc.2.21505.57 (#16249)</li>
|
||||
<li>change order of try-catch-finally and split out arm runs (#16252)</li>
|
||||
<li>Ensure <code>psoptions.json</code> and <code>manifest.spdx.json</code> files always exist in packages (#16258)</li>
|
||||
<li>Update to vPack task version to 12 (#16250)</li>
|
||||
<li>Remove unneeded `NuGetConfigFile` resource string (#16232)</li>
|
||||
<li>Add Software Bill of Materials to the main packages (#16202)</li>
|
||||
<li>Sign third party exes (#16229)</li>
|
||||
<li>Upgrade <code>set-value</code> package for markdown test (#16196)</li>
|
||||
<li>Use Ubuntu 20.04 for SSH remoting test (#16225)</li>
|
||||
<li>Bump Microsoft.CodeAnalysis.NetAnalyzers (#16194)</li>
|
||||
<li>Bump `Microsoft.CodeAnalysis.NetAnalyzers` from `6.0.0-rc2.21458.5` to `6.0.0-rtm.21480.8` (#16183)</li>
|
||||
<li>Move vPack build to 1ES Pool (#16169)</li>
|
||||
<li>Fix Microsoft update spelling issue. (#16178)</li>
|
||||
</ul>
|
||||
|
||||
</details>
|
||||
|
||||
### Documentation and Help Content
|
||||
|
||||
- Update Windows PowerShell issues link (#16105) (Thanks @andschwa!)
|
||||
- Remove Joey from Committee and WG membership (#16119)
|
||||
- Update more docs for `net6.0` TFM (#16102) (Thanks @xtqqczze!)
|
||||
- Change `snippet` tag to `code` tag in XML comments (#16106)
|
||||
- Update build documentation to reflect .NET 6 (#15751) (Thanks @Kellen-Stuart!)
|
||||
- Update `README.md` about the change logs (#16471) (Thanks @powershellpr0mpt!)
|
||||
- Update change log for 7.2.0 (#16401)
|
||||
- Update `metadata.json` and `README.md` for 7.2.0 release (#16395)
|
||||
- Update `README.md` and `metadata.json` files for `v7.2.0-rc.1` release (#16285)
|
||||
- Update the change logs for `v7.0.8` and `v7.1.5` releases (#16248)
|
||||
|
||||
[7.3.0-preview.1]: https://github.com/PowerShell/PowerShell/compare/v7.2.0-preview.10...v7.3.0-preview.1
|
||||
|
||||
@@ -729,7 +729,7 @@ namespace Microsoft.PowerShell
|
||||
}
|
||||
|
||||
TextWriter writer = Console.IsOutputRedirected ? Console.Out : _parent.ConsoleTextWriter;
|
||||
value = GetOutputString(value, SupportsVirtualTerminal, Console.IsOutputRedirected);
|
||||
value = GetOutputString(value, SupportsVirtualTerminal);
|
||||
|
||||
if (_parent.IsRunningAsync)
|
||||
{
|
||||
@@ -1215,7 +1215,7 @@ namespace Microsoft.PowerShell
|
||||
{
|
||||
if (SupportsVirtualTerminal)
|
||||
{
|
||||
WriteLine(GetFormatStyleString(FormatStyle.Debug, Console.IsOutputRedirected) + StringUtil.Format(ConsoleHostUserInterfaceStrings.DebugFormatString, message) + PSStyle.Instance.Reset);
|
||||
WriteLine(GetFormatStyleString(FormatStyle.Debug) + StringUtil.Format(ConsoleHostUserInterfaceStrings.DebugFormatString, message) + PSStyle.Instance.Reset);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1276,7 +1276,7 @@ namespace Microsoft.PowerShell
|
||||
{
|
||||
if (SupportsVirtualTerminal)
|
||||
{
|
||||
WriteLine(GetFormatStyleString(FormatStyle.Verbose, Console.IsOutputRedirected) + StringUtil.Format(ConsoleHostUserInterfaceStrings.VerboseFormatString, message) + PSStyle.Instance.Reset);
|
||||
WriteLine(GetFormatStyleString(FormatStyle.Verbose) + StringUtil.Format(ConsoleHostUserInterfaceStrings.VerboseFormatString, message) + PSStyle.Instance.Reset);
|
||||
}
|
||||
else
|
||||
{
|
||||
@@ -1320,7 +1320,7 @@ namespace Microsoft.PowerShell
|
||||
{
|
||||
if (SupportsVirtualTerminal)
|
||||
{
|
||||
WriteLine(GetFormatStyleString(FormatStyle.Warning, Console.IsOutputRedirected) + StringUtil.Format(ConsoleHostUserInterfaceStrings.WarningFormatString, message) + PSStyle.Instance.Reset);
|
||||
WriteLine(GetFormatStyleString(FormatStyle.Warning) + StringUtil.Format(ConsoleHostUserInterfaceStrings.WarningFormatString, message) + PSStyle.Instance.Reset);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
@@ -572,7 +572,7 @@ namespace System.Management.Automation
|
||||
/// <summary>
|
||||
/// Gets or sets the rendering mode for output.
|
||||
/// </summary>
|
||||
public OutputRendering OutputRendering { get; set; } = OutputRendering.Host;
|
||||
public OutputRendering OutputRendering { get; set; } = OutputRendering.Ansi;
|
||||
|
||||
/// <summary>
|
||||
/// Gets value to turn off all attributes.
|
||||
|
||||
@@ -1574,7 +1574,6 @@ namespace System.Management.Automation.Internal
|
||||
internal static bool BypassAppLockerPolicyCaching;
|
||||
internal static bool BypassOnlineHelpRetrieval;
|
||||
internal static bool ForcePromptForChoiceDefaultOption;
|
||||
internal static bool BypassOutputRedirectionCheck;
|
||||
internal static bool NoPromptForPassword;
|
||||
internal static bool ForceFormatListFixedLabelWidth;
|
||||
|
||||
|
||||
@@ -304,18 +304,12 @@ namespace System.Management.Automation.Host
|
||||
/// <param name="formatStyle">
|
||||
/// The format style to get the escape sequence for.
|
||||
/// </param>
|
||||
/// <param name="isOutputRedirected">
|
||||
/// True if the output is redirected.
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// The ANSI escape sequence for the given format style.
|
||||
/// </returns>
|
||||
public static string GetFormatStyleString(FormatStyle formatStyle, bool isOutputRedirected)
|
||||
public static string GetFormatStyleString(FormatStyle formatStyle)
|
||||
{
|
||||
// redirected console gets plaintext output to preserve existing behavior
|
||||
if (!InternalTestHooks.BypassOutputRedirectionCheck &&
|
||||
(PSStyle.Instance.OutputRendering == OutputRendering.PlainText ||
|
||||
isOutputRedirected))
|
||||
if (PSStyle.Instance.OutputRendering == OutputRendering.PlainText)
|
||||
{
|
||||
return string.Empty;
|
||||
}
|
||||
@@ -353,30 +347,22 @@ namespace System.Management.Automation.Host
|
||||
/// <param name="supportsVirtualTerminal">
|
||||
/// True if the host supports virtual terminal.
|
||||
/// </param>
|
||||
/// <param name="isOutputRedirected">
|
||||
/// True if the output is redirected.
|
||||
/// </param>
|
||||
/// <returns>
|
||||
/// The formatted text.
|
||||
/// </returns>
|
||||
public static string GetOutputString(string text, bool supportsVirtualTerminal, bool isOutputRedirected)
|
||||
public static string GetOutputString(string text, bool supportsVirtualTerminal)
|
||||
{
|
||||
return GetOutputString(text, isHost: true, supportsVirtualTerminal: supportsVirtualTerminal, isOutputRedirected: isOutputRedirected);
|
||||
return GetOutputString(text, isHost: true, supportsVirtualTerminal: supportsVirtualTerminal);
|
||||
}
|
||||
|
||||
internal static string GetOutputString(string text, bool isHost, bool? supportsVirtualTerminal = null, bool isOutputRedirected = false)
|
||||
internal static string GetOutputString(string text, bool isHost, bool? supportsVirtualTerminal = null)
|
||||
{
|
||||
var sd = new ValueStringDecorated(text);
|
||||
|
||||
if (sd.IsDecorated)
|
||||
{
|
||||
var outputRendering = OutputRendering.Ansi;
|
||||
if (InternalTestHooks.BypassOutputRedirectionCheck)
|
||||
{
|
||||
isOutputRedirected = false;
|
||||
}
|
||||
|
||||
if (isOutputRedirected || ShouldOutputPlainText(isHost, supportsVirtualTerminal))
|
||||
if (ShouldOutputPlainText(isHost, supportsVirtualTerminal))
|
||||
{
|
||||
outputRendering = OutputRendering.PlainText;
|
||||
}
|
||||
|
||||
@@ -414,7 +414,7 @@ export $envVarName='$guid'
|
||||
|
||||
It "text output" {
|
||||
# Join (multiple lines) and remove whitespace (we don't care about spacing) to verify we converted to string (by generating a table)
|
||||
-join (& $powershell -noprofile -outputFormat text { [PSCustomObject]@{X=10;Y=20} }) -replace "\s","" | Should -Be "XY--1020"
|
||||
-join (& $powershell -noprofile -outputFormat text { $PSStyle.OutputRendering = 'PlainText'; [PSCustomObject]@{X=10;Y=20} }) -replace "\s","" | Should -Be "XY--1020"
|
||||
}
|
||||
|
||||
It "errors are in text if error is redirected, encoded command, non-interactive, and outputformat specified" {
|
||||
@@ -491,7 +491,15 @@ export $envVarName='$guid'
|
||||
}
|
||||
|
||||
Context "Redirected standard input for 'interactive' use" {
|
||||
$nl = [Environment]::Newline
|
||||
BeforeAll {
|
||||
$nl = [Environment]::Newline
|
||||
$oldColor = $env:NO_COLOR
|
||||
$env:NO_COLOR = 1
|
||||
}
|
||||
|
||||
AfterAll {
|
||||
$env:NO_COLOR = $oldColor
|
||||
}
|
||||
|
||||
# All of the following tests replace the prompt (either via an initial command or interactively)
|
||||
# so that we can read StandardOutput and reliably know exactly what the prompt is.
|
||||
@@ -586,6 +594,8 @@ foo
|
||||
It "Redirected input w/ nested prompt" -Pending:($IsWindows) {
|
||||
$si = NewProcessStartInfo "-noprofile -noexit -c ""`$function:prompt = { 'PS' + ('>'*(`$NestedPromptLevel+1)) + ' ' }""" -RedirectStdIn
|
||||
$process = RunPowerShell $si
|
||||
$process.StandardInput.Write("`$PSStyle.OutputRendering='plaintext'`n")
|
||||
$null = $process.StandardOutput.ReadLine()
|
||||
$process.StandardInput.Write("`$Host.EnterNestedPrompt()`n")
|
||||
$process.StandardOutput.ReadLine() | Should -Be "PS> `$Host.EnterNestedPrompt()"
|
||||
$process.StandardInput.Write("exit`n")
|
||||
|
||||
@@ -68,6 +68,15 @@ Exit-PSHostProcess
|
||||
Describe "Enter-PSHostProcess tests" -Tag Feature {
|
||||
Context "By Process Id" {
|
||||
|
||||
BeforeAll {
|
||||
$oldColor = $env:NO_COLOR
|
||||
$env:NO_COLOR = 1
|
||||
}
|
||||
|
||||
AfterAll {
|
||||
$env:NO_COLOR = $oldColor
|
||||
}
|
||||
|
||||
BeforeEach {
|
||||
# Start a normal job where the first thing it does is return $PID. After that, spin forever.
|
||||
# We will use this job as the target process for Enter-PSHostProcess
|
||||
@@ -181,6 +190,15 @@ Describe "Enter-PSHostProcess tests" -Tag Feature {
|
||||
|
||||
Context "By CustomPipeName" {
|
||||
|
||||
BeforeAll {
|
||||
$oldColor = $env:NO_COLOR
|
||||
$env:NO_COLOR = 1
|
||||
}
|
||||
|
||||
AfterAll {
|
||||
$env:NO_COLOR = $oldColor
|
||||
}
|
||||
|
||||
It "Can enter, exit, and re-enter using CustomPipeName" {
|
||||
$pipeName = [System.IO.Path]::GetRandomFileName()
|
||||
$pipePath = Get-PipePath -PipeName $pipeName
|
||||
|
||||
@@ -136,7 +136,7 @@ Describe 'Get-Error tests' -Tag CI {
|
||||
try {
|
||||
$originalRendering = $PSStyle.OutputRendering
|
||||
$PSStyle.OutputRendering = 'Ansi'
|
||||
$out = pwsh -noprofile -command '$PSStyle.OutputRendering = "ANSI"; [System.Management.Automation.Internal.InternalTestHooks]::SetTestHook("BypassOutputRedirectionCheck", $true); try { 1/0 } catch { }; Get-Error' | Out-String
|
||||
$out = pwsh -noprofile -command '$PSStyle.OutputRendering = "ANSI"; try { 1/0 } catch { }; Get-Error' | Out-String
|
||||
|
||||
# need to escape the open square bracket so the regex works
|
||||
$resetColor = $PSStyle.Reset.Replace('[','\[')
|
||||
|
||||
@@ -21,7 +21,7 @@ Describe 'OutputRendering tests' {
|
||||
) {
|
||||
param($outputRendering, $ansi)
|
||||
|
||||
$out = pwsh -noprofile -command "[System.Management.Automation.Internal.InternalTestHooks]::SetTestHook('BypassOutputRedirectionCheck', `$true); `$PSStyle.OutputRendering = '$outputRendering'; write-host '$($PSStyle.Foreground.Green)hello'"
|
||||
$out = pwsh -noprofile -command "`$PSStyle.OutputRendering = '$outputRendering'; write-host '$($PSStyle.Foreground.Green)hello'"
|
||||
|
||||
if ($ansi) {
|
||||
$out | Should -BeLike "*`e*" -Because ($out | Format-Hex | Out-String)
|
||||
@@ -62,7 +62,7 @@ Describe 'OutputRendering tests' {
|
||||
$switch = "-$stream"
|
||||
}
|
||||
|
||||
$out = pwsh -noprofile -command "[System.Management.Automation.Internal.InternalTestHooks]::SetTestHook('BypassOutputRedirectionCheck', `$true); write-$stream $switch 'hello';'bye'"
|
||||
$out = pwsh -noprofile -command "write-$stream $switch 'hello';'bye'"
|
||||
$out.Count | Should -Be 2
|
||||
$out[0] | Should -BeExactly "$($PSStyle.Formatting.$stream)$($stream.ToUpper()): hello$($PSStyle.Reset)" -Because ($out[0] | Out-String | Format-hex)
|
||||
$out[1] | Should -BeExactly "bye"
|
||||
|
||||
@@ -83,7 +83,7 @@ Describe 'Tests for $PSStyle automatic variable' {
|
||||
|
||||
It '$PSStyle has correct default for OutputRendering' {
|
||||
$PSStyle | Should -Not -BeNullOrEmpty
|
||||
$PSStyle.OutputRendering | Should -BeExactly 'Host'
|
||||
$PSStyle.OutputRendering | Should -BeExactly 'Ansi'
|
||||
}
|
||||
|
||||
It '$PSStyle has correct defaults for style <key>' -TestCases (Get-TestCases $styleDefaults) {
|
||||
|
||||
@@ -42,8 +42,10 @@ jobs:
|
||||
if(-not (Get-PackageSource -Name 'dotnet' -ErrorAction SilentlyContinue))
|
||||
{
|
||||
$nugetFeed = ([xml](Get-Content $(Build.SourcesDirectory)/nuget.config -Raw)).Configuration.packagesources.add | Where-Object { $_.Key -eq 'dotnet' } | Select-Object -ExpandProperty Value
|
||||
Register-PackageSource -Name 'dotnet' -Location $nugetFeed -ProviderName NuGet
|
||||
Write-Verbose -Message "Register new package source 'dotnet'" -verbose
|
||||
if ($nugetFeed) {
|
||||
Register-PackageSource -Name 'dotnet' -Location $nugetFeed -ProviderName NuGet
|
||||
Write-Verbose -Message "Register new package source 'dotnet'" -verbose
|
||||
}
|
||||
}
|
||||
|
||||
## Install latest version from the channel
|
||||
|
||||
@@ -79,8 +79,11 @@ jobs:
|
||||
if(-not (Get-PackageSource -Name 'dotnet' -ErrorAction SilentlyContinue))
|
||||
{
|
||||
$nugetFeed = ([xml](Get-Content $(Build.SourcesDirectory)/nuget.config -Raw)).Configuration.packagesources.add | Where-Object { $_.Key -eq 'dotnet' } | Select-Object -ExpandProperty Value
|
||||
Register-PackageSource -Name 'dotnet' -Location $nugetFeed -ProviderName NuGet
|
||||
Write-Verbose -Message "Register new package source 'dotnet'" -verbose
|
||||
|
||||
if ($nugetFeed) {
|
||||
Register-PackageSource -Name 'dotnet' -Location $nugetFeed -ProviderName NuGet
|
||||
Write-Verbose -Message "Register new package source 'dotnet'" -verbose
|
||||
}
|
||||
}
|
||||
|
||||
## Install latest version from the channel
|
||||
|
||||
Reference in New Issue
Block a user