Skip to content

Tags: dhenness/PowerShell

Tags

v7.2.0-preview.3

Toggle v7.2.0-preview.3's commit message
** [7.2.0-preview.3] - 2021-02-11

*** Breaking Changes

- Fix `Get-Date -UFormat %u` behavior to comply with ISO 8601 (PowerShell#14549) (Thanks @brianary!)

*** Engine Updates and Fixes

- Together with `PSDesiredStateConfiguration` `v3` module allows `Get-DscResource`, `Invoke-DscResource` and DSC configuration compilation on all platforms, supported by PowerShell (using class-based DSC resources).

*** Performance

- Avoid array allocations from `Directory.GetDirectories` and `Directory.GetFiles`. (PowerShell#14326) (Thanks @xtqqczze!)
- Avoid `string.ToLowerInvariant()` from `GetEnvironmentVariableAsBool()` to avoid loading libicu at startup (PowerShell#14323) (Thanks @iSazonov!)
- Get PowerShell version in `PSVersionInfo` using assembly attribute instead of `FileVersionInfo` (PowerShell#14332) (Thanks @Fs00!)

*** General Cmdlet Updates and Fixes

- Suppress `Write-Progress` in `ConsoleHost` if output is redirected and fix tests (PowerShell#14716)
- Experimental feature `PSAnsiProgress`: Add minimal progress bar using ANSI rendering (PowerShell#14414)
- Fix web cmdlets to properly construct URI from body when using `-NoProxy` (PowerShell#14673)
- Update the `ICommandPredictor` to provide more feedback and also make feedback easier to be correlated (PowerShell#14649)
- Reset color after writing `Verbose`, `Debug`, and `Warning` messages (PowerShell#14698)
- Fix using variable for nested `ForEach-Object -Parallel` calls (PowerShell#14548)
- When formatting, if collection is modified, don't fail the entire pipeline (PowerShell#14438)
- Improve completion of parameters for attributes (PowerShell#14525) (Thanks @MartinGC94!)
- Write proper error messages for `Get-Command ' '` (PowerShell#13564) (Thanks @jakekerr!)
- Fix typo in the resource string `ProxyURINotSupplied` (PowerShell#14526) (Thanks @romero126!)
- Add support to `$PSStyle` for strikethrough and hyperlinks (PowerShell#14461)
- Fix `$PSStyle` blink codes (PowerShell#14447) (Thanks @iSazonov!)

*** Code Cleanup

<details>

<summary>

<p>We thank the following contributors!</p>
<p>@xtqqczze, @powercode</p>

</summary>

<ul>
<li>Fix coding style issues: RCS1215, IDE0090, SA1504, SA1119, RCS1139, IDE0032 (PowerShell#14356, PowerShell#14341, PowerShell#14241, PowerShell#14204, PowerShell#14442, PowerShell#14443) (Thanks @xtqqczze!)</li>
<li>Enable coding style checks: CA2249, CA1052, IDE0076, IDE0077, SA1205, SA1003, SA1314, SA1216, SA1217, SA1213 (PowerShell#14395, PowerShell#14483, PowerShell#14494, PowerShell#14495, PowerShell#14441, PowerShell#14476, PowerShell#14470, PowerShell#14471, PowerShell#14472) (Thanks @xtqqczze!)</li>
<li>Enable nullable in PowerShell codebase (PowerShell#14160, PowerShell#14172, PowerShell#14088, PowerShell#14154, PowerShell#14166, PowerShell#14184, PowerShell#14178) (Thanks @powercode!)</li>
<li>Use <code>string.Split(char)</code> instead of <code>string.Split(string)</code> (PowerShell#14465) (Thanks @xtqqczze!)</li>
<li>Use <code>string.Contains(char)</code> overload (PowerShell#14368) (Thanks @xtqqczze!)</li>
<li>Refactor complex <code>if</code> statements (PowerShell#14398) (Thanks @xtqqczze!)</li>
</ul>

</details>

*** Tools

- Update script to use .NET 6 build resources (PowerShell#14705)
- Fix the daily GitHub action (PowerShell#14711) (Thanks @imba-tjd!)
- GitHub Actions: fix deprecated `::set-env` (PowerShell#14629) (Thanks @imba-tjd!)
- Update markdown test tools (PowerShell#14325) (Thanks @RDIL!)
- Upgrade `StyleCopAnalyzers` to `v1.2.0-beta.312` (PowerShell#14354) (Thanks @xtqqczze!)

*** Tests

- Remove packaging from daily Windows build (PowerShell#14749)
- Update link to the Manning book (PowerShell#14750)
- A separate Windows packaging CI (PowerShell#14670)
- Update `ini` component version in test `package.json` (PowerShell#14454)
- Disable `libmi` dependent tests for macOS. (PowerShell#14446)

*** Build and Packaging Improvements

<details>

<ul>
<li>Fix the NuGet feed name and URL for .NET 6</li>
<li>Fix third party signing for files in sub-folders (PowerShell#14751)</li>
<li>Make build script variable an <code>ArrayList</code> to enable <code>Add()</code> method (PowerShell#14748)</li>
<li>Remove old .NET SDKs to make <code>dotnet restore</code> work with the latest SDK in CI pipeline (PowerShell#14746)</li>
<li>Remove outdated Linux dependencies (PowerShell#14688)</li>
<li>Bump .NET SDK version to 6.0.0-preview.1 (PowerShell#14719)</li>
<li>Bump <code>NJsonSchema</code> to 10.3.4 (PowerShell#14714)</li>
<li>Update daily GitHub action to allow manual trigger (PowerShell#14718)</li>
<li>Bump <code>XunitXml.TestLogger</code> to 3.0.62 (PowerShell#14702)</li>
<li>Make universal deb package based on the deb package specification (PowerShell#14681)</li>
<li>Add manual release automation steps and improve changelog script (PowerShell#14445)</li>
<li>Fix release build to upload global tool packages to artifacts (PowerShell#14620)</li>
<li>Port changes from the PowerShell v7.0.4 release (PowerShell#14637)</li>
<li>Port changes from the PowerShell v7.1.1 release (PowerShell#14621)</li>
<li>Updated README and <code>metadata.json</code> (PowerShell#14401, PowerShell#14606, PowerShell#14612)</li>
<li>Do not push nupkg artifacts to MyGet (PowerShell#14613)</li>
<li>Use one feed in each <code>nuget.config</code> in official builds (PowerShell#14363)</li>
<li>Fix path signed RPMs are uploaded from in release build (PowerShell#14424)</li>
</ul>

</details>

*** Documentation and Help Content

- Update distribution support request template to point to .NET 5.0 support document (PowerShell#14578)
- Remove security GitHub issue template (PowerShell#14453)
- Add intent for using the Discussions feature in repo (PowerShell#14399)
- Fix Universal Dashboard to refer to PowerShell Universal (PowerShell#14437)
- Update document link because of HTTP 301 redirect (PowerShell#14431) (Thanks @xtqqczze!)

[7.2.0-preview.3]: PowerShell/PowerShell@v7.2.0-preview.2...v7.2.0-preview.3

v7.1.2

Toggle v7.1.2's commit message
** [7.1.2] - 2021-02-11

*** Build and Packaging Improvements

<details>
<summary>
Bump .NET SDK to version <code>5.0.103</code>
</summary>
<ul>
<li>Fix third party signing for files in sub-folders (PowerShell#14751)</li>
<li>Bump .NET SDK to version 5.0.103 (Internal 14459)</li>
<li>Publish the global tool package for stable release</li>
</ul>
</details>

[7.1.2]: PowerShell/PowerShell@v7.1.1...v7.1.2

v7.0.5

Toggle v7.0.5's commit message
** [7.0.5] - 2021-02-11

*** Build and Packaging Improvements

<details>

<summary>
Bump .NET SDK to version <code>3.1.406</code>
</summary>

<ul>
<li>Fix third party signing for files in sub-folders (PowerShell#14751)</li>
<li>Bump .NET SDK to 3.1.12 (Internal 14462)</li>
</ul>

</details>

[7.0.5]: PowerShell/PowerShell@v7.0.4...v7.0.5

v7.0.4

Toggle v7.0.4's commit message
** [7.0.4] - 2021-01-19

*** Build and Packaging Improvements

<details>

<summary>
Bump .NET SDK to version <code>3.1.405</code>
</summary>

<ul>
<li>Remove MyGet feeds from test nuget.config (Internal 14147)</li>
<li>Update WXS file for 7.0.4 (Internal 14122)</li>
<li>Update .NET dependencies for 7.0.4 (Internal 14104)</li>
<li>Fix 7.0.4 `Get-Module` test failure (Internal 13946)</li>
<li>Fix directory creation failure (Internal 13904)</li>
<li>Disable WMF link invocation test (*13479)</li>
<li>Use PowerShell Core for build and test of package in CI build (*13223)</li>
<li>Disable libmi dependent tests for macOS. (*14446)</li>
<li>Use one feed in each nuget.config in official builds (*14363)</li>
<li>Fix path signed RPMs are uploaded from in release build (*14424)</li>
<li>Fix syntax error in Windows packaging script (*14377)</li>
<li>Make AppLocker Enforce mode take precedence over UMCI Audit mode (*14353)</li>
<li>Fix issue with unsigned build (*14367)</li>
<li>Move macOS and NuGet to ESRP signing (*14324)</li>
<li>Move Windows package signing to use ESRP (*14060)</li>
<li>Move Linux to ESRP signing (*14210)</li>
<li>Migrate 3rd party signing to ESRP (*14010)</li>
<li>Don't do a shallow checkout (*13992)</li>
<li>Move to ESRP signing for Windows files (*13988)</li>
<li>Fix breaks in packages daily build due to macOS signing changes (*13421)</li>
<li>Sign individual files in package (*13392)</li>
<li>Use Authenticode certificate for MSIX signing (*13330)</li>
<li>Sign the MSIX files for the store (*12582)</li>
<li>Use temporary personal path at runspace startup when <code>$env:HOME</code> not defined (*13239)</li>
<li>Fix MSIX packaging to determine if a preview release by inspecting the semantic version string (*11991)</li>
<li>Add default help content to the assets folder (*13257)</li>
</ul>

</details>

[7.0.4]: PowerShell/PowerShell@v7.0.3...v7.0.4

v7.1.1

Toggle v7.1.1's commit message
[7.1.1] - 2021-01-14

* General Cmdlet Updates and Fixes

- Avoid an exception if file system does not support reparse points (PowerShell#13634) (Thanks @iSazonov!)
- Make AppLocker Enforce mode take precedence over UMCI Audit mode (PowerShell#14353)

* Code Cleanup

- Fix syntax error in Windows packaging script (PowerShell#14377)

* Build and Packaging Improvements

<details>

<ul>
<li>Use one feed in each nuget.config in official builds (PowerShell#14363)</li>
<li>Fix path signed RPMs are uploaded from in release build (PowerShell#14424)</li>
<li>Fix issue with unsigned build (PowerShell#14367)</li>
<li>Move macOS and NuGet packages to ESRP signing (PowerShell#14324)</li>
<li>Move Windows packages signing to use ESRP (PowerShell#14060)</li>
<li>Move Linux packages to ESRP signing (PowerShell#14210)</li>
<li>Migrate 3rd party signing to ESRP (PowerShell#14010)</li>
<li>Don't do a shallow checkout (PowerShell#13992)</li>
<li>Move to ESRP signing for Windows files (PowerShell#13988)</li>
<li>Add checkout step to release build templates (PowerShell#13840)</li>
</ul>

</details>

[7.1.1]: PowerShell/PowerShell@v7.1.0...v7.1.1

v7.2.0-preview.2

Toggle v7.2.0-preview.2's commit message
* [7.2.0-preview.2] - 2020-12-15

* Breaking Changes

- Improve detection of mutable value types (PowerShell#12495) (Thanks @vexx32!)
- Ensure `-PipelineVariable` is set for all output from script cmdlets (PowerShell#12766) (Thanks @vexx32!)

* Experimental Features

- `PSAnsiRendering`: Enable ANSI formatting via `$PSStyle` and support suppressing ANSI output (PowerShell#13758)

* Performance

- Optimize `IEnumerable` variant of replace operator (PowerShell#14221) (Thanks @iSazonov!)
- Refactor multiply operation for better performance in two `Microsoft.PowerShell.Commands.Utility` methods (PowerShell#14148) (Thanks @xtqqczze!)
- Use `Environment.TickCount64` instead of `Datetime.Now` as the random seed for AppLocker test file content (PowerShell#14283) (Thanks @iSazonov!)
- Avoid unnecessary array allocations when searching in GAC (PowerShell#14291) (Thanks @xtqqczze!)
- Use `OrdinalIgnoreCase` in `CommandLineParser` (PowerShell#14303) (Thanks @iSazonov!)
- Use `StringComparison.Ordinal` instead of `StringComparison.CurrentCulture` (PowerShell#14298) (Thanks @iSazonov!)
- Avoid creating instances of the generated delegate helper class in `-replace` implementation (PowerShell#14128)

* General Cmdlet Updates and Fixes

- Write better error message if config file is broken (PowerShell#13496) (Thanks @iSazonov!)
- Make AppLocker Enforce mode take precedence over UMCI Audit mode (PowerShell#14353)
- Add `-SkipLimitCheck` switch to `Import-PowerShellDataFile` (PowerShell#13672)
- Restrict `New-Object` in NoLanguage mode under lock down (PowerShell#14140) (Thanks @krishnayalavarthi!)
- The `-Stream` parameter now works with directories (PowerShell#13941) (Thanks @kyanha!)
- Avoid an exception if file system does not support reparse points (PowerShell#13634) (Thanks @iSazonov!)
- Enable `CA1012`: Abstract types should not have public constructors (PowerShell#13940) (Thanks @xtqqczze!)
- Enable `SA1212`: Property accessors should follow order (PowerShell#14051) (Thanks @xtqqczze!)

* Code Cleanup

<details>

<summary>

<p>We thank the following contributors!</p>
<p>@xtqqczze, @matthewjdegarmo, @powercode, @Gimly</p>

</summary>

<ul>
<li>Enable <code>SA1007</code>: Operator keyword should be followed by space (PowerShell#14130) (Thanks @xtqqczze!)</li>
<li>Expand <code>where</code> alias to <code>Where-Object</code> in <code>Reset-PWSHSystemPath.ps1</code> (PowerShell#14113) (Thanks @matthewjdegarmo!)</li>
<li>Fix whitespace issues (PowerShell#14092) (Thanks @xtqqczze!)</li>
<li>Add <code>StyleCop.Analyzers</code> package (PowerShell#13963) (Thanks @xtqqczze!)</li>
<li>Enable <code>IDE0041</code>: <code>UseIsNullCheck</code> (PowerShell#14041) (Thanks @xtqqczze!)</li>
<li>Enable <code>IDE0082</code>: <code>ConvertTypeOfToNameOf</code> (PowerShell#14042) (Thanks @xtqqczze!)</li>
<li>Remove unnecessary usings part 4 (PowerShell#14023) (Thanks @xtqqczze!)</li>
<li>Fix <code>PriorityAttribute</code> name (PowerShell#14094) (Thanks @xtqqczze!)</li>
<li>Enable nullable: <code>System.Management.Automation.Interpreter.IBoxableInstruction</code> (PowerShell#14165) (Thanks @powercode!)</li>
<li>Enable nullable: <code>System.Management.Automation.Provider.IDynamicPropertyProvider</code> (PowerShell#14167) (Thanks @powercode!)</li>
<li>Enable nullable: <code>System.Management.Automation.Language.IScriptExtent</code> (PowerShell#14179) (Thanks @powercode!)</li>
<li>Enable nullable: <code>System.Management.Automation.Language.ICustomAstVisitor2</code> (PowerShell#14192) (Thanks @powercode!)</li>
<li>Enable nullable: <code>System.Management.Automation.LanguagePrimitives.IConversionData</code> (PowerShell#14187) (Thanks @powercode!)</li>
<li>Enable nullable: <code>System.Automation.Remoting.Client.IWSManNativeApiFacade</code> (PowerShell#14186) (Thanks @powercode!)</li>
<li>Enable nullable: <code>System.Management.Automation.Language.ISupportsAssignment</code> (PowerShell#14180) (Thanks @powercode!)</li>
<li>Enable nullable: <code>System.Management.Automation.ICommandRuntime2</code> (PowerShell#14183) (Thanks @powercode!)</li>
<li>Enable nullable: <code>System.Management.Automation.IOutputProcessingState</code> (PowerShell#14175) (Thanks @powercode!)</li>
<li>Enable nullable: <code>System.Management.Automation.IJobDebugger</code> (PowerShell#14174) (Thanks @powercode!)</li>
<li>Enable nullable: <code>System.Management.Automation.Interpreter.IInstructionProvider</code> (PowerShell#14173) (Thanks @powercode!)</li>
<li>Enable nullable: <code>System.Management.Automation.IHasSessionStateEntryVisibility</code> (PowerShell#14169) (Thanks @powercode!)</li>
<li>Enable nullable: <code>System.Management.Automation.Tracing.IEtwEventCorrelator</code> (PowerShell#14168) (Thanks @powercode!)</li>
<li>Fix syntax error in Windows packaging script (PowerShell#14377)</li>
<li>Remove redundant local assignment in <code>AclCommands</code> (PowerShell#14358) (Thanks @xtqqczze!)</li>
<li>Enable nullable: <code>System.Management.Automation.Language.IAstPostVisitHandler</code> (PowerShell#14164) (Thanks @powercode!)</li>
<li>Enable nullable: <code>System.Management.Automation.IModuleAssemblyInitializer</code> (PowerShell#14158) (Thanks @powercode!)</li>
<li>Use <code>Microsoft.PowerShell.MarkdownRender</code> package from <code>nuget.org</code> (PowerShell#14090)</li>
<li>Replace <code>GetFiles</code> in <code>TestModuleManifestCommand</code> (PowerShell#14317) (Thanks @xtqqczze!)</li>
<li>Enable nullable: <code>System.Management.Automation.Provider.IContentWriter</code> (PowerShell#14152) (Thanks @powercode!)</li>
<li>Simplify getting Encoding in <code>TranscriptionOption.FlushContentToDisk</code> (PowerShell#13910) (Thanks @Gimly!)</li>
<li>Mark applicable structs as <code>readonly</code> and use <code>in</code>-modifier (PowerShell#13919) (Thanks @xtqqczze!)</li>
<li>Enable nullable: <code>System.Management.Automation.IArgumentCompleter</code> (PowerShell#14182) (Thanks @powercode!)</li>
<li>Enable <code>CA1822</code>: Mark <code>private</code> members as <code>static</code> (PowerShell#13897) (Thanks @xtqqczze!)</li>
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 6 (PowerShell#14338) (Thanks @xtqqczze!)</li>
<li>Avoid array allocations from <code>GetDirectories</code>/<code>GetFiles</code>. (PowerShell#14328) (Thanks @xtqqczze!)</li>
<li>Avoid array allocations from <code>GetDirectories</code>/<code>GetFiles</code>. (PowerShell#14330) (Thanks @xtqqczze!)</li>
<li>Fix <code>RCS1188</code>: Remove redundant auto-property initialization part 2 (PowerShell#14262) (Thanks @xtqqczze!)</li>
<li>Enable nullable: <code>System.Management.Automation.Host.IHostSupportsInteractiveSession</code> (PowerShell#14170) (Thanks @powercode!)</li>
<li>Enable nullable: <code>System.Management.Automation.Provider.IPropertyCmdletProvider</code> (PowerShell#14176) (Thanks @powercode!)</li>
<li>Fix <code>IDE0090</code>: Simplify new expression part 5 (PowerShell#14301) (Thanks @xtqqczze!)</li>
<li>Enable <code>IDE0075</code>: <code>SimplifyConditionalExpression</code> (PowerShell#14078) (Thanks @xtqqczze!)</li>
<li>Remove unnecessary usings part 9 (PowerShell#14288) (Thanks @xtqqczze!)</li>
<li>Fix StyleCop and MarkdownLint CI failures (PowerShell#14297) (Thanks @xtqqczze!)</li>
<li>Enable <code>SA1000</code>: Keywords should be spaced correctly (PowerShell#13973) (Thanks @xtqqczze!)</li>
<li>Fix <code>RCS1188</code>: Remove redundant auto-property initialization part 1 (PowerShell#14261) (Thanks @xtqqczze!)</li>
<li>Mark <code>private</code> members as <code>static</code> part 10 (PowerShell#14235) (Thanks @xtqqczze!)</li>
<li>Mark <code>private</code> members as <code>static</code> part 9 (PowerShell#14234) (Thanks @xtqqczze!)</li>
<li>Fix <code>SA1642</code> for <code>Microsoft.Management.Infrastructure.CimCmdlets</code> (PowerShell#14239) (Thanks @xtqqczze!)</li>
<li>Use <code>AsSpan</code>/<code>AsMemory</code> slice constructor (PowerShell#14265) (Thanks @xtqqczze!)</li>
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 4.6 (PowerShell#14260) (Thanks @xtqqczze!)</li>
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 4.5 (PowerShell#14259) (Thanks @xtqqczze!)</li>
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 4.3 (PowerShell#14257) (Thanks @xtqqczze!)</li>
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 4.2 (PowerShell#14256) (Thanks @xtqqczze!)</li>
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 2 (PowerShell#14200) (Thanks @xtqqczze!)</li>
<li>Enable <code>SA1643</code>: Destructor summary documentation should begin with standard text (PowerShell#14236) (Thanks @xtqqczze!)</li>
<li>Fix <code>IDE0090</code>: Simplify new expression part 4.4 (PowerShell#14258) (Thanks @xtqqczze!)</li>
<li>Use xml documentation child blocks correctly (PowerShell#14249) (Thanks @xtqqczze!)</li>
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 4.1 (PowerShell#14255) (Thanks @xtqqczze!)</li>
<li>Use consistent spacing in xml documentation tags (PowerShell#14231) (Thanks @xtqqczze!)</li>
<li>Enable <code>IDE0074</code>: Use coalesce compound assignment (PowerShell#13396) (Thanks @xtqqczze!)</li>
<li>Remove unnecessary finalizers (PowerShell#14248) (Thanks @xtqqczze!)</li>
<li>Mark local variable as <code>const</code> (PowerShell#13217) (Thanks @xtqqczze!)</li>
<li>Fix <code>IDE0032</code>: <code>UseAutoProperty</code> part 2 (PowerShell#14244) (Thanks @xtqqczze!)</li>
<li>Fix <code>IDE0032</code>: <code>UseAutoProperty</code> part 1 (PowerShell#14243) (Thanks @xtqqczze!)</li>
<li>Mark <code>private</code> members as <code>static</code> part 8 (PowerShell#14233) (Thanks @xtqqczze!)</li>
<li>Fix <code>CA1822</code>: Mark members as <code>static</code> part 6 (PowerShell#14229) (Thanks @xtqqczze!)</li>
<li>Fix <code>CA1822</code>: Mark members as <code>static</code> part 5 (PowerShell#14228) (Thanks @xtqqczze!)</li>
<li>Fix <code>CA1822</code>: Mark members as <code>static</code> part 4 (PowerShell#14227) (Thanks @xtqqczze!)</li>
<li>Fix <code>CA1822</code>: Mark members as <code>static</code> part 3 (PowerShell#14226) (Thanks @xtqqczze!)</li>
<li>Fix <code>CA1822</code>: Mark members as <code>static</code> part 2 (PowerShell#14225) (Thanks @xtqqczze!)</li>
<li>Fix <code>CA1822</code>: Mark members as <code>static</code> part 1 (PowerShell#14224) (Thanks @xtqqczze!)</li>
<li>Use <code>see</code> keyword in documentation (PowerShell#14220) (Thanks @xtqqczze!)</li>
<li>Enable <code>CA2211</code>: Non-constant fields should not be visible (PowerShell#14073) (Thanks @xtqqczze!)</li>
<li>Enable <code>CA1816</code>: <code>Dispose</code> methods should call <code>SuppressFinalize</code> (PowerShell#14074) (Thanks @xtqqczze!)</li>
<li>Remove incorrectly implemented finalizer (PowerShell#14246) (Thanks @xtqqczze!)</li>
<li>Fix <code>CA1822</code>: Mark members as <code>static</code> part 7 (PowerShell#14230) (Thanks @xtqqczze!)</li>
<li>Fix <code>SA1122</code>: Use <code>string.Empty</code> for empty strings (PowerShell#14218) (Thanks @xtqqczze!)</li>
<li>Fix various xml documentation issues (PowerShell#14223) (Thanks @xtqqczze!)</li>
<li>Remove unnecessary <code>using</code>s part 8 (PowerShell#14072) (Thanks @xtqqczze!)</li>
<li>Enable <code>SA1006</code>: Preprocessor keywords should not be preceded by space (PowerShell#14052) (Thanks @xtqqczze!)</li>
<li>Fix <code>SA1642</code> for <code>Microsoft.PowerShell.Commands.Utility</code> (PowerShell#14142) (Thanks @xtqqczze!)</li>
<li>Enable <code>CA2216</code>: Disposable types should declare finalizer (PowerShell#14089) (Thanks @xtqqczze!)</li>
<li>Wrap and name <code>LoadBinaryModule</code> arguments (PowerShell#14193) (Thanks @xtqqczze!)</li>
<li>Wrap and name <code>GetListOfFilesFromData</code> arguments (PowerShell#14194) (Thanks @xtqqczze!)</li>
<li>Enable <code>SA1002</code>: Semicolons should be spaced correctly (PowerShell#14197) (Thanks @xtqqczze!)</li>
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 3 (PowerShell#14201) (Thanks @xtqqczze!)</li>
<li>Enable <code>SA1106</code>: Code should not contain empty statements (PowerShell#13964) (Thanks @xtqqczze!)</li>
<li>Code performance fixes follow-up (PowerShell#14207) (Thanks @xtqqczze!)</li>
<li>Remove uninformative comments (PowerShell#14199) (Thanks @xtqqczze!)</li>
<li>Fix <code>IDE0090</code>: Simplify <code>new</code> expression part 1 (PowerShell#14027) (Thanks @xtqqczze!)</li>
<li>Enable <code>SA1517</code>: Code should not contain blank lines at start of file (PowerShell#14131) (Thanks @xtqqczze!)</li>
<li>Enable <code>SA1131</code>: Use readable conditions (PowerShell#14132) (Thanks @xtqqczze!)</li>
<li>Enable <code>SA1507</code>: Code should not contain multiple blank lines in a row (PowerShell#14136) (Thanks @xtqqczze!)</li>
<li>Enable <code>SA1516</code> Elements should be separated by blank line (PowerShell#14137) (Thanks @xtqqczze!)</li>
<li>Enable <code>IDE0031</code>: Null check can be simplified (PowerShell#13548) (Thanks @xtqqczze!)</li>
<li>Enable <code>CA1065</code>: Do not raise exceptions in unexpected locations (PowerShell#14117) (Thanks @xtqqczze!)</li>
<li>Enable <code>CA1000</code>: Do not declare <code>static</code> members on generic types (PowerShell#14097) (Thanks @xtqqczze!)</li>
</ul>

</details>

* Tools

- Fixing formatting in `Reset-PWSHSystemPath.ps1` (PowerShell#13689) (Thanks @dgoldman-msft!)

* Tests

- Reinstate `Test-Connection` tests (PowerShell#13324)
- Update markdown test packages with security fixes (PowerShell#14145)

* Build and Packaging Improvements

<details>

<ul>
<li>Fix a typo in the <code>Get-ChangeLog</code> function (PowerShell#14129)</li>
<li>Update <code>README</code> and <code>metadata.json</code> for <code>7.2.0-preview.1</code> release (PowerShell#14104)</li>
<li>Bump <code>NJsonSchema</code> from <code>10.2.2</code> to <code>10.3.1</code> (PowerShell#14040)</li>
<li>Move windows package signing to use ESRP (PowerShell#14060)</li>
<li>Use one feed in each <code>nuget.config</code> in official builds (PowerShell#14363)</li>
<li>Fix path signed RPMs are uploaded from in release build (PowerShell#14424)</li>
<li>Add <code>Microsoft.PowerShell.MarkdownRender</code> to the package reference list (PowerShell#14386)</li>
<li>Fix issue with unsigned build (PowerShell#14367)</li>
<li>Move macOS and nuget to ESRP signing (PowerShell#14324)</li>
<li>Fix nuget packaging to scrub <code>NullableAttribute</code> (PowerShell#14344)</li>
<li>Bump <code>Microsoft.NET.Test.Sdk</code> from 16.8.0 to 16.8.3 (PowerShell#14310)</li>
<li>Bump <code>Markdig.Signed</code> from 0.22.0 to 0.22.1 (PowerShell#14305)</li>
<li>Bump <code>Microsoft.ApplicationInsights</code> from 2.15.0 to 2.16.0 (PowerShell#14031)</li>
<li>Move Linux to ESRP signing (PowerShell#14210)</li>
</ul>

</details>

* Documentation and Help Content

- Fix example `nuget.config` (PowerShell#14349)
- Fix a broken link in Code Guidelines doc (PowerShell#14314) (Thanks @iSazonov!)

[7.2.0-preview.2]: PowerShell/PowerShell@v7.2.0-preview.1...v7.2.0-preview.2

v7.2.0-preview.1

Toggle v7.2.0-preview.1's commit message
[7.2.0-preview.1] - 2020-11-17

* Engine Updates and Fixes

- Change the default fallback encoding for `GetEncoding` in `Start-Transcript` to be `UTF8` without a BOM (PowerShell#13732) (Thanks @Gimly!)

* General Cmdlet Updates and Fixes

- Update `pwsh -?` output to match docs (PowerShell#13748)
- Fix `NullReferenceException` in `Test-Json` (PowerShell#12942) (Thanks @iSazonov!)
- Make `Dispose` in `TranscriptionOption` idempotent (PowerShell#13839) (Thanks @krishnayalavarthi!)
- Add additional Microsoft PowerShell modules to the tracked modules list (PowerShell#12183)
- Relax further `SSL` verification checks for `WSMan` on non-Windows hosts with verification available (PowerShell#13786) (Thanks @jborean93!)
- Add the `OutputTypeAttribute` to `Get-ExperimentalFeature` (PowerShell#13738) (Thanks @ThomasNieto!)
- Fix blocking wait when starting file associated with a Windows application (PowerShell#13750)
- Emit warning if `ConvertTo-Json` exceeds `-Depth` value (PowerShell#13692)

* Code Cleanup

<details>

<summary>

<p>We thank the following contributors!</p>
<p>@xtqqczze, @mkswd, @ThomasNieto, @PatLeong, @paul-cheung, @georgettica</p>

</summary>

<ul>
<li>Fix RCS1049: Simplify boolean comparison (PowerShell#13994) (Thanks @xtqqczze!)</li>
<li>Enable IDE0062: Make local function static (PowerShell#14044) (Thanks @xtqqczze!)</li>
<li>Enable CA2207: Initialize value type static fields inline (PowerShell#14068) (Thanks @xtqqczze!)</li>
<li>Enable CA1837: Use <code>ProcessId</code> and <code>CurrentManagedThreadId</code> from <code>System.Environment</code> (PowerShell#14063) (Thanks @xtqqczze and @PatLeong!)</li>
<li>Remove unnecessary using directives (PowerShell#14014, PowerShell#14017, PowerShell#14021, PowerShell#14050, PowerShell#14065, PowerShell#14066, PowerShell#13863, PowerShell#13860, PowerShell#13861, PowerShell#13814) (Thanks @xtqqczze and @ThomasNieto!)</li>
<li>Remove unnecessary usage of LINQ <code>Count</code> method (PowerShell#13545) (Thanks @xtqqczze!)</li>
<li>Fix SA1518: The code must not contain extra blank lines at the end of the file (PowerShell#13574) (Thanks @xtqqczze!)</li>
<li>Enable CA1829: Use the <code>Length</code> or <code>Count</code> property instead of <code>Count()</code> (PowerShell#13925) (Thanks @xtqqczze!)</li>
<li>Enable CA1827: Do not use <code>Count()</code> or <code>LongCount()</code> when <code>Any()</code> can be used (PowerShell#13923) (Thanks @xtqqczze!)</li>
<li>Enable or fix nullable usage in a few files (PowerShell#13793, PowerShell#13805, PowerShell#13808, PowerShell#14018, PowerShell#13804) (Thanks @mkswd and @georgettica!)</li>
<li>Enable IDE0040: Add accessibility modifiers (PowerShell#13962, PowerShell#13874) (Thanks @xtqqczze!)</li>
<li>Make applicable private Guid fields readonly (PowerShell#14000) (Thanks @xtqqczze!)</li>
<li>Fix CA1003: Use generic event handler instances (PowerShell#13937) (Thanks @xtqqczze!)</li>
<li>Simplify delegate creation (PowerShell#13578) (Thanks @xtqqczze!)</li>
<li>Fix RCS1033: Remove redundant boolean literal (PowerShell#13454) (Thanks @xtqqczze!)</li>
<li>Fix RCS1221: Use pattern matching instead of combination of <code>as</code> operator and null check (PowerShell#13333) (Thanks @xtqqczze!)</li>
<li>Use <code>is not</code> syntax (PowerShell#13338) (Thanks @xtqqczze!)</li>
<li>Replace magic number with constant in PDH (PowerShell#13536) (Thanks @xtqqczze!)</li>
<li>Fix accessor order (PowerShell#13538) (Thanks @xtqqczze!)</li>
<li>Enable IDE0054: Use compound assignment (PowerShell#13546) (Thanks @xtqqczze!)</li>
<li>Fix RCS1098: Constant values should be on right side of comparisons (PowerShell#13833) (Thanks @xtqqczze!)</li>
<li>Enable CA1068: <code>CancellationToken</code> parameters must come last (PowerShell#13867) (Thanks @xtqqczze!)</li>
<li>Enable CA10XX rules with suggestion severity (PowerShell#13870, PowerShell#13928, PowerShell#13924) (Thanks @xtqqczze!)</li>
<li>Enable IDE0064: Make Struct fields writable (PowerShell#13945) (Thanks @xtqqczze!)</li>
<li>Run <code>dotnet-format</code> to improve formatting of source code (PowerShell#13503) (Thanks @xtqqczze!)</li>
<li>Enable CA1825: Avoid zero-length array allocations (PowerShell#13961) (Thanks @xtqqczze!)</li>
<li>Add IDE analyzer rule IDs to comments (PowerShell#13960) (Thanks @xtqqczze!)</li>
<li>Enable CA1830: Prefer strongly-typed <code>Append</code> and <code>Insert</code> method overloads on <code>StringBuilder</code> (PowerShell#13926) (Thanks @xtqqczze!)</li>
<li>Enforce code style in build (PowerShell#13957) (Thanks @xtqqczze!)</li>
<li>Enable CA1836: Prefer <code>IsEmpty</code> over <code>Count</code> when available (PowerShell#13877) (Thanks @xtqqczze!)</li>
<li>Enable CA1834: Consider using <code>StringBuilder.Append(char)</code> when applicable (PowerShell#13878) (Thanks @xtqqczze!)</li>
<li>Fix IDE0044: Make field readonly (PowerShell#13884, PowerShell#13885, PowerShell#13888, PowerShell#13892, PowerShell#13889, PowerShell#13886, PowerShell#13890, PowerShell#13891, PowerShell#13887, PowerShell#13893, PowerShell#13969, PowerShell#13967, PowerShell#13968, PowerShell#13970, PowerShell#13971, PowerShell#13966, PowerShell#14012) (Thanks @xtqqczze!)</li>
<li>Enable IDE0048: Add required parentheses (PowerShell#13896) (Thanks @xtqqczze!)</li>
<li>Enable IDE1005: Invoke delegate with conditional access (PowerShell#13911) (Thanks @xtqqczze!)</li>
<li>Enable IDE0036: Enable the check on the order of modifiers (PowerShell#13958, PowerShell#13881) (Thanks @xtqqczze!)</li>
<li>Use span-based <code>String.Concat</code> instead of <code>String.Substring</code> (PowerShell#13500) (Thanks @xtqqczze!)</li>
<li>Enable CA1050: Declare types in namespace (PowerShell#13872) (Thanks @xtqqczze!)</li>
<li>Fix minor keyword typo in C# code comment (PowerShell#13811) (Thanks @paul-cheung!)</li>
</ul>

</details>

* Tools

- Enable `CodeQL` Security scanning (PowerShell#13894)
- Add global `AnalyzerConfig` with default configuration (PowerShell#13835) (Thanks @xtqqczze!)

* Build and Packaging Improvements

<details>

<summary>

<p>We thank the following contributors!</p>
<p>@mkswd, @xtqqczze</p>

</summary>

<ul>
<li>Bump <code>Microsoft.NET.Test.Sdk</code> to <code>16.8.0</code> (PowerShell#14020)</li>
<li>Bump <code>Microsoft.CodeAnalysis.CSharp</code> to <code>3.8.0</code> (PowerShell#14075)</li>
<li>Remove workarounds for .NET 5 RTM builds (PowerShell#14038)</li>
<li>Migrate 3rd party signing to ESRP (PowerShell#14010)</li>
<li>Fixes to release pipeline for GA release (PowerShell#14034)</li>
<li>Don't do a shallow checkout (PowerShell#13992)</li>
<li>Add validation and dependencies for Ubuntu 20.04 distribution to packaging script (PowerShell#13993)</li>
<li>Add .NET install workaround for RTM (PowerShell#13991)</li>
<li>Move to ESRP signing for Windows files (PowerShell#13988)</li>
<li>Update <code>PSReadLine</code> version to <code>2.1.0</code> (PowerShell#13975)</li>
<li>Bump .NET to version <code>5.0.100-rtm.20526.5</code> (PowerShell#13920)</li>
<li>Update script to use .NET RTM feeds (PowerShell#13927)</li>
<li>Add checkout step to release build templates (PowerShell#13840)</li>
<li>Turn on <code>/features:strict</code> for all projects (PowerShell#13383) (Thanks @xtqqczze!)</li>
<li>Bump <code>NJsonSchema</code> to <code>10.2.2</code> (PowerShell#13722, PowerShell#13751)</li>
<li>Add flag to make Linux script publish to production repo (PowerShell#13714)</li>
<li>Bump <code>Markdig.Signed</code> to <code>0.22.0</code> (PowerShell#13741)</li>
<li>Use new release script for Linux packages (PowerShell#13705)</li>
</ul>

</details>

* Documentation and Help Content

- Fix links to LTS versions for Windows (PowerShell#14070)
- Fix `crontab` formatting in example doc (PowerShell#13712) (Thanks @dgoldman-msft!)

[7.2.0-preview.1]: PowerShell/PowerShell@v7.1.0...v7.2.0-preview.1

v7.1.0

Toggle v7.1.0's commit message
[7.1.0] - 2020-11-11

* Engine Updates and Fixes

- Fix a logic bug in `MapSecurityZone` (PowerShell#13921) (Thanks @iSazonov!)

* General Cmdlet Updates and Fixes

- Update `pwsh -?` output to match docs (PowerShell#13748)

* Tests

- `markdownlint` security updates (PowerShell#13730)

* Build and Packaging Improvements

<details>

<ul>
<li>Fixes to release pipeline for GA release (Internal 13410)</li>
<li>Add validation and dependencies for <code>Ubuntu 20.04</code> distribution to packaging script (PowerShell#13993)</li>
<li>Change PkgES Lab to unblock build (Internal 13376)</li>
<li>Add .NET install workaround for RTM (PowerShell#13991)</li>
<li>Bump <code>Microsoft.PowerShell.Native</code> version from <code>7.1.0-rc.2</code> to <code>7.1.0</code> (PowerShell#13976)</li>
<li>Bump <code>PSReadLine</code> version to <code>2.1.0</code> (PowerShell#13975)</li>
<li>Bump .NET to version <code>5.0.100-rtm.20526.5</code> (PowerShell#13920)</li>
<li>Update script to use .NET RTM feeds (PowerShell#13927)</li>
</ul>

</details>

[7.1.0]: PowerShell/PowerShell@v7.1.0-rc.2...v7.1.0

v7.1.0-rc.2

Toggle v7.1.0-rc.2's commit message
*** Engine Updates and Fixes

- Rename `Get-Subsystem` to `Get-PSSubsystem` and fix two related minor issues (*13765)
- Add missing `PSToken` token table entries to fix the `PSParser` API (*13779)
- Add additional PowerShell modules to the tracked modules list (*12183)
- Fix blocking wait when starting file associated with a Windows application (*13750)
- Revert `PSNativePSPathResolution` to being an experimental feature (*13734)

*** General Cmdlet Updates and Fixes

- Emit warning if `ConvertTo-Json` exceeds `-Depth` value (*13692)

*** Build and Packaging Improvements

- Change Linux package script call to publish to the production repository in release builds (*13714)
- Update `PSReadLine` version to `2.1.0-rc1` (*13777)
- Move PowerShell build to dotnet `5.0-RC.2` (*13780)
- Bump `Microsoft.PowerShell.Native` to `7.1.0-rc.2` (*13794)

v7.1.0-rc.1

Toggle v7.1.0-rc.1's commit message
[7.1.0-rc.1] - 2020-09-29

* Engine Updates and Fixes

- Make fixes to `ComInterop` code as suggested by .NET team (PowerShell#13533)

* General Cmdlet Updates and Fixes

- Fix case where exception message contains just '`n' on Windows (PowerShell#13684)
- Recognize `CONOUT$` and `CONIN$` as reserved device names (PowerShell#13508) (Thanks @davidreis97!)
- Fix `ConciseView` for interactive advanced function when writing error (PowerShell#13623)

* Code Cleanup

<details>

<summary>

<p>We thank the following contributors!</p>
<p>@xtqqczze, @soccypowa</p>

</summary>

<ul>
<li>Simplify logical negation (PowerShell#13555) (Thanks @xtqqczze!)</li>
<li>Fixed the indentation of the help content for <code>-nologo</code> (PowerShell#13557) (Thanks @soccypowa!)</li>
</ul>

</details>

* Build and Packaging Improvements

<details>

<summary>

<p>We thank the following contributors!</p>
<p>@heaths</p>

</summary>

<ul>
<li>Bump <code>NJsonSchema</code> from 10.1.24 to 10.1.26 (PowerShell#13586)</li>
<li>Bump <code>PowerShellGet</code> from 2.2.4 to 2.2.5 (PowerShell#13683)</li>
<li>Bump <code>Microsoft.ApplicationInsights</code> from 2.14.0 to 2.15.0 (PowerShell#13639)</li>
<li>Update PowerShell to build against dotnet 5.0-RC.1 (PowerShell#13643)</li>
<li>Write the <code>InstallLocation</code> to fixed registry key (PowerShell#13576) (Thanks @heaths!)</li>
</ul>

</details>

* Documentation and Help Content

- Update `README` and `metadata.json` for `7.1.0-preview.7` release (PowerShell#13565)

[7.1.0-rc.1]: PowerShell/PowerShell@v7.1.0-preview.7...v7.1.0-rc.1