PowerShell/CHANGELOG/7.2.md
Travis Plunk a10da5a041
Update change log for 7.2.0 (#16401)
* Merged PR 17994: Update change log for 7.2.0

Update change log for 7.2.0

# Conflicts:
#	.spelling

* add blank change log for 7.3

Co-authored-by: Aditya Patwardhan <adityap@microsoft.com>
2021-11-08 15:03:23 -08:00

56 KiB

7.2 Changelog

7.2.0 - 2021-11-08

General Cmdlet Updates and Fixes

  • Handle exception when trying to resolve a possible link path (#16310)

Tests

  • Fix global tool and SDK tests in release pipeline (#16342)

Build and Packaging Improvements

We thank the following contributors!

@kondratyev-nv

  • Add an approval for releasing build-info json (#16351)
  • Release build info json when it is preview (#16335)
  • Update metadata.json for v7.2.0 release
  • Update to the latest notices file and update cgmanifest.json (#16339)(#16325)
  • Fix issues in release build by updating usage of powershell.exe with pwsh.exe (#16332)
  • Update feed and analyzer dependency (#16327)
  • Update to .NET 6 GA build 6.0.100-rtm.21527.11 (#16309)
  • Add a major-minor build info JSON file (#16301)
  • Fix Windows build ZIP packaging (#16299) (Thanks @kondratyev-nv!)
  • Clean up crossgen related build scripts also generate native symbols for R2R images (#16297)
  • Fix issues reported by code signing verification tool (#16291)

7.2.0-rc.1 - 2021-10-21

General Cmdlet Updates and Fixes

  • Disallow COM calls for AppLocker system lockdown (#16268)
  • Configure Microsoft.ApplicationInsights to not send cloud role name (#16246)
  • Disallow Add-Type in NoLanguage mode on a locked down machine (#16245)
  • Make property names for color VT100 sequences consistent with documentation (#16212)
  • Make moving a directory into itself with Move-Item an error (#16198)
  • Change FileSystemInfo.Target from a CodeProperty to an AliasProperty that points to FileSystemInfo.LinkTarget (#16165)

Tests

  • Removed deprecated docker-based tests for PowerShell release packages (#16224)

Build and Packaging Improvements

Bump .NET SDK to 6.0.100-rc.2

  • Update .NET 6 to version 6.0.100-rc.2.21505.57 (#16249)
  • Fix RPM packaging (Internal 17704)
  • Update ThirdPartyNotices.txt (#16283)
  • Update pipeline yaml file to use ubuntu-latest image (#16279)
  • Add script to generate cgmanifest.json (#16278)
  • Update version of Microsoft.PowerShell.Native and Microsoft.PowerShell.MarkdownRender packages (#16277)
  • Add cgmanifest.json for generating correct third party notice file (#16266)
  • Only upload stable buildinfo for stable releases (#16251)
  • Don't upload .dep or .tar.gz for RPM because there are none (#16230)
  • Ensure RPM license is recognized (#16189)
  • Add condition to only generate release files in local dev build only (#16259)
  • Ensure psoptions.json and manifest.spdx.json files always exist in packages (#16258)
  • Fix CI script and split out ARM runs (#16252)
  • Update vPack task version to 12 (#16250)
  • Sign third party executables (#16229)
  • Add Software Bill of Materials to the main packages (#16202)
  • Upgrade set-value package for markdown test (#16196)
  • Fix Microsoft update spelling issue (#16178)
  • Move vPack build to 1ES Pool (#16169)

7.2.0-preview.10 - 2021-09-28

Engine Updates and Fixes

  • Remove duplicate remote server mediator code (#16027)

General Cmdlet Updates and Fixes

  • 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)
  • Add isOutputRedirected parameter to GetFormatStyleString() method (#14397)
  • Fix ConvertTo-SecureString with key regression due to .NET breaking change (#16068)
  • Fix regression in Move-Item to only fallback to CopyAndDelete in specific cases (#16029)
  • Set $? correctly for command expression with redirection (#16046)
  • Use CurrentCulture when handling conversions to DateTime in Add-History (#16005) (Thanks @vexx32!)
  • Fix NullReferenceException in Format-Wide (#15990) (Thanks @DarylGraves!)

Code Cleanup

We thank the following contributors!

@xtqqczze!

  • Improve CommandInvocationIntrinsics API documentation and style (#14369)
  • Use bool?.GetValueOrDefault() in FormatWideCommand (#15988) (Thanks @xtqqczze!)

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)

Tests

  • Enable two previously disabled Get-Process tests (#15845) (Thanks @iSazonov!)

Build and Packaging Improvements

Details
  • Add SHA256 hashes to release (#16147)
  • Update Microsoft.CodeAnalysis.CSharp version (#16138)
  • Change path for Component Governance for build to the path we actually use to build (#16137)
  • Bump Microsoft.CodeAnalysis.NetAnalyzers (#16070) (#16045) (#16036) (#16021) (#15985)
  • Update .NET to 6.0.100-rc.1.21458.32 (#16066)
  • Update minimum required OS version for macOS (#16088)
  • Ensure locale is set correctly on Ubuntu 20.04 in CI (#16067) (#16073)
  • Update .NET SDK version from 6.0.100-preview.6.21355.2 to 6.0.100-rc.1.21455.2 (#16041) (#16028) (#15648)
  • Fix the GitHub Action for updating .NET daily builds (#16042)
  • Move from PkgES hosted agents to 1ES hosted agents (#16023)
  • Update Ubuntu images to use Ubuntu 20.04 (#15906)
  • Fix the macOS build by updating the pool image name (#16010)
  • Use Alpine 3.12 for building PowerShell for Alpine Linux (#16008)
  • Ignore error from Find-Package (#15999)
  • Find packages separately for each source in UpdateDotnetRuntime.ps1 script (#15998)
  • Update metadata to start using .NET 6 RC1 builds (#15981)

7.2.0-preview.9 - 2021-08-23

Breaking Changes

  • Change the default value of $PSStyle.OutputRendering to OutputRendering.Host and remove OutputRendering.Automatic (#15882)
  • Fix CA1052 for public API to make classes static when they only have static methods (#15775) (Thanks @xtqqczze!)
  • Update pwsh.exe -File to only accept .ps1 script files on Windows (#15859)

Engine Updates and Fixes

  • Update .NET adapter to handle interface static members properly (#15908)
  • Catch and handle unauthorized access exception when removing AppLocker test files (#15881)

General Cmdlet Updates and Fixes

  • Add -PassThru parameter to Set-Clipboard (#13713) (Thanks @ThomasNieto!)
  • Add -Encoding parameter for Tee-Object (#12135) (Thanks @Peter-Schneider!)
  • Update ConvertTo-Csv and Export-Csv to handle IDictionary objects (#11029) (Thanks @vexx32!)
  • Update the parameters -Exception and -ErrorRecord for Write-Error to be position 0 (#13813) (Thanks @ThomasNieto!)
  • Don't use ArgumentList when creating COM object with New-Object as it's not applicable to the COM parameter set (#15915)
  • Fix $PSStyle list output to correctly show TableHeader (#15928)
  • Remove the PSImplicitRemotingBatching experimental feature (#15863)
  • Fix issue with Get-Process -Module failing to stop when it's piped to Select-Object (#15682) (Thanks @ArmaanMcleod!)
  • Make the experimental features PSUnixFileStat, PSCultureInvariantReplaceOperator, PSNotApplyErrorActionToStderr, PSAnsiRendering, PSAnsiProgressFeatureName stable (#15864)
  • Enhance Remove-Item to work with OneDrive (#15571) (Thanks @iSazonov!)
  • Make global tool entrypoint class static (#15880)
  • Update ServerRemoteHost version to be same as PSVersion (#15809)
  • Make the initialization of HttpKnownHeaderNames thread safe (#15519) (Thanks @iSazonov!)
  • ConvertTo-Csv: Quote fields with quotes and newlines when using -UseQuotes AsNeeded (#15765) (Thanks @lselden!)
  • Forwarding progress stream changes from Foreach-Object -Parallel runspaces (#14271) (Thanks @powercode!)
  • Add validation to $PSStyle to reject printable text when setting a property that only expects ANSI escape sequence (#15825)

Code Cleanup

We thank the following contributors!

@xtqqczze

  • Avoid unneeded array allocation in module code (#14329) (Thanks @xtqqczze!)
  • Enable and fix analysis rules CA1052, CA1067, and IDE0049 (#15840) (Thanks @xtqqczze!)
  • Avoid unnecessary allocation in formatting code (#15832) (Thanks @xtqqczze!)
  • Specify the analyzed API surface for all code quality rules (#15778) (Thanks @xtqqczze!)

Tools

  • Enable /rebase to automatically rebase a PR (#15808)
  • Update .editorconfig to not replace tabs with spaces in .tsv files (#15815) (Thanks @SethFalco!)
  • Update PowerShell team members in the change log generation script (#15817)

Tests

  • Add more tests to validate the current command error handling behaviors (#15919)
  • Make Measure-Object property test independent of the file system (#15879)
  • Add more information when a syslog parsing error occurs (#15857)
  • Harden logic when looking for syslog entries to be sure that we select based on the process id (#15841)

Build and Packaging Improvements

We thank the following contributors!

@xtqqczze

  • Disable implicit namespace imports for test projects (#15895)
  • Update language version to 10 and fix related issues (#15886)
  • Update CodeQL workflow to use Ubuntu 18.04 (#15868)
  • Bump the version of various packages (#15944, #15934, #15935, #15891, #15812, #15822) (Thanks @xtqqczze!)

Documentation and Help Content

  • Update README and metadata files for release v7.2.0-preview.8 (#15819)
  • Update change logs for 7.0.7 and 7.1.4 (#15921)
  • Fix spelling in XML docs (#15939) (Thanks @slowy07!)
  • Update PowerShell Committee members (#15837)

7.2.0-preview.8 - 2021-07-22

Engine Updates and Fixes

  • Add a Windows mode to $PSNativeCommandArgumentPassing that allows some commands to use legacy argument passing (#15408)
  • Use nameof to get parameter names when creating ArgumentNullException (#15604) (Thanks @gukoff!)
  • Test if a command is 'Out-Default' more thoroughly for transcribing scenarios (#15653)
  • Add Microsoft.PowerShell.Crescendo to telemetry allow list (#15372)

General Cmdlet Updates and Fixes

  • Use $PSStyle.Formatting.FormatAccent for Format-List and $PSStyle.Formatting.TableHeader for Format-Table output (#14406)
  • Highlight using error color the exception Message and underline in PositionMessage for Get-Error (#15786)
  • Implement a completion for View parameter of format cmdlets (#14513) (Thanks @iSazonov!)
  • Add support to colorize FileInfo file names (#14403)
  • Don't serialize to JSON ETS properties for DateTime and string types (#15665)
  • Fix HyperVSocketEndPoint.ServiceId setter (#15704) (Thanks @xtqqczze!)
  • Add DetailedView to $ErrorView (#15609)

Code Cleanup

We thank the following contributors!

@iSazonov, @xtqqczze

  • Remove consolehost.proto file (#15741) (Thanks @iSazonov!)
  • Implement IDisposable for ConvertToJsonCommand (#15787) (Thanks @xtqqczze!)
  • Fix IDisposable implementation for CommandPathSearch (#15793) (Thanks @xtqqczze!)
  • Delete IDE dispose analyzer rules (#15798) (Thanks @xtqqczze!)
  • Seal private classes (#15725) (Thanks @xtqqczze!)
  • Enable IDE0029: UseCoalesceExpression (#15770) (Thanks @xtqqczze!)
  • Enable IDE0070: UseSystemHashCode (#15715) (Thanks @xtqqczze!)
  • Enable IDE0030: UseCoalesceExpressionForNullable (#14289) (Thanks @xtqqczze!)
  • Fix CA1846 and CA1845 for using AsSpan instead of Substring (#15738)
  • Use List<T>.RemoveAll to avoid creating temporary list (#15686) (Thanks @xtqqczze!)
  • Enable IDE0044: MakeFieldReadonly (#13880) (Thanks @xtqqczze!)
  • Disable IDE0130 (#15728) (Thanks @xtqqczze!)
  • Make classes sealed (#15675) (Thanks @xtqqczze!)
  • Enable CA1043: Use integral or string argument for indexers (#14467) (Thanks @xtqqczze!)
  • Enable CA1812 (#15674) (Thanks @xtqqczze!)
  • Replace Single with First when we know the element count is 1 (#15676) (Thanks @xtqqczze!)
  • Skip analyzers for Microsoft.Management.UI.Internal (#15677) (Thanks @xtqqczze!)
  • Fix CA2243: Attribute string literals should parse correctly (#15622) (Thanks @xtqqczze!)
  • Enable CA1401 (#15621) (Thanks @xtqqczze!)
  • Fix CA1309: Use ordinal StringComparison in Certificate Provider (#14352) (Thanks @xtqqczze!)
  • Fix CA1839: Use Environment.ProcessPath (#15650) (Thanks @xtqqczze!)
  • Add new analyzer rules (#15620) (Thanks @xtqqczze!)

Tools

  • Add SkipRoslynAnalyzers parameter to Start-PSBuild (#15640) (Thanks @xtqqczze!)
  • Create issue template for issues updating PowerShell through Windows update. (#15700)
  • Add DocumentationAnalyzers to build (#14336) (Thanks @xtqqczze!)
  • Convert GitHub issue templates to modern forms (#15645)

Tests

  • Add more tests for ConvertFrom-Json (#15706) (Thanks @strawgate!)
  • Update glob-parent and hosted-git-info test dependencies (#15643)

Build and Packaging Improvements

Update .NET to version v6.0.0-preview.6
  • Add new package name for osx-arm64 (#15813)
  • Prefer version when available for dotnet-install (#15810)
  • Make warning about MU being required dynamic (#15776)
  • Add Start-PSBootstrap before running tests (#15804)
  • Update to .NET 6 Preview 6 and use crossgen2 (#15763)
  • Enable ARM64 packaging for macOS (#15768)
  • Make Microsoft Update opt-out/in check boxes work (#15784)
  • Add Microsoft Update opt out to MSI install (#15727)
  • Bump NJsonSchema from 10.4.4 to 10.4.5 (#15769)
  • Fix computation of SHA512 checksum (#15736)
  • Update the script to use quality parameter for dotnet-install (#15731)
  • Generate SHA512 checksum file for all packages (#15678)
  • Enable signing daily release build with lifetime certificate (#15642)
  • Update metadata and README for 7.2.0-preview.7 (#15593)

Documentation and Help Content

  • Fix broken RFC links (#15807)
  • Add to bug report template getting details from Get-Error (#15737)
  • Update issue templates to link to new docs (#15711)
  • Add @jborean93 to Remoting Working Group (#15683)

7.2.0-preview.7 - 2021-06-17

Breaking Changes

  • Remove PSDesiredStateConfiguration v2.0.5 module and published it to the PowerShell Gallery (#15536)

Engine Updates and Fixes

  • Fix splatting being treated as positional parameter in completions (#14623) (Thanks @MartinGC94!)
  • Prevent PowerShell from crashing when a telemetry mutex can't be created (#15574) (Thanks @gukoff!)
  • Ignore all exceptions when disposing an instance of a subsystem implementation (#15511)
  • Wait for SSH exit when closing remote connection (#14635) (Thanks @dinhngtu!)

Performance

  • Retrieve ProductVersion using informational version attribute in AmsiUtils.Init() (#15527) (Thanks @Fs00!)

General Cmdlet Updates and Fixes

  • Fix retrieving dynamic parameters from provider even if globbed path returns no results (#15525)
  • Revert "Enhance Remove-Item to work with OneDrive (#15260)" due to long path issue (#15546)

Code Cleanup

We thank the following contributors!

@octos4murai, @iSazonov, @Fs00

  • Correct parameter name passed to exception in PSCommand constructor (#15580) (Thanks @octos4murai!)
  • Enable nullable: System.Management.Automation.ICommandRuntime (#15566) (Thanks @iSazonov!)
  • Clean up code regarding AppDomain.CreateDomain and AppDomain.Unload (#15554)
  • Replace ProcessModule.FileName with Environment.ProcessPath and remove PSUtils.GetMainModule (#15012) (Thanks @Fs00!)

Tests

  • Fix Start-Benchmarking to put TargetPSVersion and TargetFramework in separate parameter sets (#15508)
  • Add win-x86 test package to the build (#15517)

Build and Packaging Improvements

We thank the following contributors!

@schuelermine

  • Update README.md and metadata.json for version 7.2.0-preview.6 (#15464)
  • Make sure GA revision increases from RC and Preview releases (#15558)
  • Remove SupportsShouldProcess from Start-PSBootstrap in build.psm1 (#15491) (Thanks @schuelermine!)
  • Update DotnetMetadataRuntime.json next channel to take daily build from .NET preview 5 (#15518)
  • Fix deps.json update in the release pipeline (#15486)

Documentation and Help Content

  • Add new members to Engine and Cmdlet Working Groups document (#15560)
  • Update the mdspell command to exclude the folder that should be ignored (#15576)
  • Replace 'User Voice' with 'Feedback Hub' in README.md (#15557)
  • Update Virtual User Group chat links (#15505) (Thanks @Jaykul!)
  • Fix typo in FileSystemProvider.cs (#15445) (Thanks @eltociear!)
  • Add PipelineStoppedException notes to PowerShell API (#15324)
  • Updated governance on Working Groups (WGs) (#14603)
  • Correct and improve XML documentation comments on PSCommand (#15568) (Thanks @octos4murai!)

7.2.0-preview.6 - 2021-05-27

Experimental Features

  • [Breaking Change] Update prediction interface to provide additional feedback to a predictor plugin (#15421)

Performance

  • Avoid collecting logs in buffer if a pipeline execution event is not going to be logged (#15350)
  • Avoid allocation in LanguagePrimitives.UpdateTypeConvertFromTypeTable (#15168) (Thanks @xtqqczze!)
  • Replace Directory.GetDirectories with Directory.EnumerateDirectories to avoid array allocations (#15167) (Thanks @xtqqczze!)
  • Use List.ConvertAll instead of LINQ (#15140) (Thanks @xtqqczze!)

General Cmdlet Updates and Fixes

  • Use AllocConsole before initializing CLR to ensure codepage is correct for WinRM remoting (PowerShell/PowerShell-Native#70) (Thanks @jborean93!)
  • Add completions for #requires statements (#14596) (Thanks @MartinGC94!)
  • Add completions for comment-based help keywords (#15337) (Thanks @MartinGC94!)
  • Move cross platform DSC code to a PowerShell engine subsystem (#15127)
  • Fix Minimal progress view to handle activity that is longer than console width (#15264)
  • Handle exception if ConsoleHost tries to set cursor out of bounds because screen buffer changed (#15380)
  • Fix NullReferenceException in DSC ClearCache() (#15373)
  • Update ControlSequenceLength to handle colon as a virtual terminal parameter separator (#14942)
  • Update the summary comment for StopTranscriptCmdlet.cs (#15349) (Thanks @dbaileyut!)
  • Remove the unusable alias d for the -Directory parameter from Get-ChildItem (#15171) (Thanks @kvprasoon!)
  • Fix tab completion for un-localized about topics (#15265) (Thanks @MartinGC94!)
  • Remove the unneeded SSH stdio handle workaround (#15308)
  • Add LoadAssemblyFromNativeMemory API to load assemblies from memory in a native PowerShell host (#14652) (Thanks @awakecoding!)
  • Re-implement Remove-Item OneDrive support (#15260) (Thanks @iSazonov!)
  • Kill native processes in pipeline when pipeline is disposed on Unix (#15287)
  • Default to MTA on Windows platforms where STA is not supported (#15106)

Code Cleanup

We thank the following contributors!

@xtqqczze, @powercode, @bcwood

  • Enable nullable in some classes (#14185, #14177, #14159, #14191, #14162, #14150, #14156, #14161, #14155, #14163, #14181, #14157, #14151) (Thanks @powercode!)
  • Annotate ThrowTerminatingError with DoesNotReturn attribute (#15352) (Thanks @powercode!)
  • Use GetValueOrDefault() for nullable PSLanguageMode (#13849) (Thanks @bcwood!)
  • Enable SA1008: Opening parenthesis should be spaced correctly (#14242) (Thanks @xtqqczze!)

Tools

  • Add winget release script (#15050)

Tests

  • Enable cross-runtime benchmarking to compare different .NET runtimes (#15387) (Thanks @adamsitnik!)
  • Add the performance benchmark project for PowerShell performance testing (#15242)

Build and Packaging Improvements

Update .NET to version v6.0.0-preview.4
  • Suppress prompting when uploading the msixbundle package to blob (#15227)
  • Update to .NET preview 4 SDK (#15452)
  • Update AppxManifest.xml with newer OS version to allow PowerShell installed from Windows Store to make system-level changes (#15375)
  • Ensure the build works when PSDesiredStateConfiguration module is pulled in from PSGallery (#15355)
  • Make sure daily release tag does not change when retrying failures (#15286)
  • Improve messages and behavior when there's a problem in finding zip files (#15284)

Documentation and Help Content

  • Add documentation comments section to coding guidelines (#14316) (Thanks @xtqqczze!)

7.2.0-preview.5 - 2021-04-14

Breaking Changes

  • Make PowerShell Linux deb and RPM packages universal (#15109)
  • Enforce AppLocker Deny configuration before Execution Policy Bypass configuration (#15035)
  • Disallow mixed dash and slash in command line parameter prefix (#15142) (Thanks @davidBar-On!)

Experimental Features

  • PSNativeCommandArgumentPassing: Use ArgumentList for native executable invocation (breaking change) (#14692)

Engine Updates and Fixes

  • Add IArgumentCompleterFactory for parameterized ArgumentCompleters (#12605) (Thanks @powercode!)

General Cmdlet Updates and Fixes

  • Fix SSH remoting connection never finishing with misconfigured endpoint (#15175)
  • Respect TERM and NO_COLOR environment variables for $PSStyle rendering (#14969)
  • Use ProgressView.Classic when Virtual Terminal is not supported (#15048)
  • Fix Get-Counter issue with -Computer parameter (#15166) (Thanks @krishnayalavarthi!)
  • Fix redundant iteration while splitting lines (#14851) (Thanks @hez2010!)
  • Enhance Remove-Item -Recurse to work with OneDrive (#14902) (Thanks @iSazonov!)
  • Change minimum depth to 0 for ConvertTo-Json (#14830) (Thanks @kvprasoon!)
  • Allow Set-Clipboard to accept empty string (#14579)
  • Turn on and off DECCKM to modify keyboard mode for Unix native commands to work correctly (#14943)
  • Fall back to CopyAndDelete() when MoveTo() fails due to an IOException (#15077)

Code Cleanup

We thank the following contributors!

@xtqqczze, @iSazonov, @ZhiZe-ZG

  • Update .NET to 6.0.0-preview.3 (#15221)
  • Add space before comma to hosting test to fix error reported by SA1001 (#15224)
  • Add SecureStringHelper.FromPlainTextString helper method for efficient secure string creation (#14124) (Thanks @xtqqczze!)
  • Use static lambda keyword (#15154) (Thanks @iSazonov!)
  • Remove unnecessary Array -> List -> Array conversion in ProcessBaseCommand.AllProcesses (#15052) (Thanks @xtqqczze!)
  • Standardize grammar comments in Parser.cs (#15114) (Thanks @ZhiZe-ZG!)
  • Enable SA1001: Commas should be spaced correctly (#14171) (Thanks @xtqqczze!)
  • Refactor MultipleServiceCommandBase.AllServices (#15053) (Thanks @xtqqczze!)

Tools

  • Use Unix line endings for shell scripts (#15180) (Thanks @xtqqczze!)

Tests

  • Add the missing tag in Host Utilities tests (#14983)
  • Update copy-props version in package.json (#15124)

Build and Packaging Improvements

We thank the following contributors!

@JustinGrote

  • Fix yarn-lock for copy-props (#15225)
  • Make package validation regex accept universal Linux packages (#15226)
  • Bump NJsonSchema from 10.4.0 to 10.4.1 (#15190)
  • Make MSI and EXE signing always copy to fix daily build (#15191)
  • Sign internals of EXE package so that it works correctly when signed (#15132)
  • Bump Microsoft.NET.Test.Sdk from 16.9.1 to 16.9.4 (#15141)
  • Update daily release tag format to work with new Microsoft Update work (#15164)
  • Feature: Add Ubuntu 20.04 Support to install-powershell.sh (#15095) (Thanks @JustinGrote!)
  • Treat rebuild branches like release branches (#15099)
  • Update WiX to 3.11.2 (#15097)
  • Bump NJsonSchema from 10.3.11 to 10.4.0 (#15092)
  • Allow patching of preview releases (#15074)
  • Bump Newtonsoft.Json from 12.0.3 to 13.0.1 (#15084, #15085)
  • Update the minSize build package filter to be explicit (#15055)
  • Bump NJsonSchema from 10.3.10 to 10.3.11 (#14965)

Documentation and Help Content

  • Merge 7.2.0-preview.4 changes to master (#15056)
  • Update README and metadata.json (#15046)
  • Fix broken links for dotnet CLI (#14937)

7.2.0-preview.4 - 2021-03-16

Breaking Changes

  • Fix Get-Date -UFormat %G and %g behavior (#14555) (Thanks @brianary!)

Engine Updates and Fixes

  • Update engine script signature validation to match Get-AuthenticodeSignature logic (#14849)
  • Avoid array allocations from GetDirectories and GetFiles (#14327) (Thanks @xtqqczze!)

General Cmdlet Updates and Fixes

  • Add UseOSCIndicator setting to enable progress indicator in terminal (#14927)
  • Re-enable VT mode on Windows after running command in ConsoleHost (#14413)
  • Fix Move-Item for FileSystemProvider to use copy-delete instead of move for DFS paths (#14913)
  • Fix PromptForCredential() to add targetName as domain (#14504)
  • Update Concise ErrorView to not show line information for errors from script module functions (#14912)
  • Remove the 32,767 character limit on the environment block for Start-Process (#14111) (Thanks @hbuckle!)
  • Don't write possible secrets to verbose stream for web cmdlets (#14788)

Tools

  • Update dependabot configuration to V2 format (#14882)
  • Add tooling issue slots in PR template (#14697)

Tests

  • Move misplaced test file to tests directory (#14908) (Thanks @MarianoAlipi!)
  • Refactor MSI CI (#14753)

Build and Packaging Improvements

Update .NET to version 6.0.100-preview.2.21155.3
  • Update .NET to version 6.0.100-preview.2.21155.3 (#15007)
  • Bump Microsoft.PowerShell.Native to 7.2.0-preview.1 (#15030)
  • Create MSIX Bundle package in release pipeline (#14982)
  • Build self-contained minimal size package for Guest Config team (#14976)
  • Bump XunitXml.TestLogger from 3.0.62 to 3.0.66 (#14993) (Thanks @dependabot[bot]!)
  • Enable building PowerShell for Apple M1 runtime (#14923)
  • Fix the variable name in the condition for miscellaneous analysis CI (#14975)
  • Fix the variable usage in CI yaml (#14974)
  • Disable running markdown link verification in release build CI (#14971)
  • Bump Microsoft.CodeAnalysis.CSharp from 3.9.0-3.final to 3.9.0 (#14934) (Thanks @dependabot[bot]!)
  • Declare which variable group is used for checking the blob in the release build (#14970)
  • Update metadata and script to enable consuming .NET daily builds (#14940)
  • Bump NJsonSchema from 10.3.9 to 10.3.10 (#14933) (Thanks @dependabot[bot]!)
  • Use template that disables component governance for CI (#14938)
  • Add suppress for nuget multi-feed warning (#14893)
  • Bump NJsonSchema from 10.3.8 to 10.3.9 (#14926) (Thanks @dependabot[bot]!)
  • Add exe wrapper to release (#14881)
  • Bump Microsoft.ApplicationInsights from 2.16.0 to 2.17.0 (#14847)
  • Bump Microsoft.NET.Test.Sdk from 16.8.3 to 16.9.1 (#14895) (Thanks @dependabot[bot]!)
  • Bump NJsonSchema from 10.3.7 to 10.3.8 (#14896) (Thanks @dependabot[bot]!)
  • Disable codesign validation where the file type is not supported (#14885)
  • Fixing broken Experimental Feature list in powershell.config.json (#14858)
  • Bump NJsonSchema from 10.3.6 to 10.3.7 (#14855)
  • Add exe wrapper for Microsoft Update scenarios (#14737)
  • Install wget on CentOS 7 docker image (#14857)
  • Fix install-dotnet download (#14856)
  • Fix Bootstrap step in Windows daily test runs (#14820)
  • Bump NJsonSchema from 10.3.5 to 10.3.6 (#14818)
  • Bump NJsonSchema from 10.3.4 to 10.3.5 (#14807)

Documentation and Help Content

  • Update README.md and metadata.json for upcoming releases (#14755)
  • Merge 7.1.3 and 7.0.6 Change log to master (#15009)
  • Update README and metadata.json for releases (#14997)
  • Update ChangeLog for v7.1.2 release (#14783)
  • Update ChangeLog for v7.0.5 release (#14782) (Internal 14479)

7.2.0-preview.3 - 2021-02-11

Breaking Changes

  • Fix Get-Date -UFormat %u behavior to comply with ISO 8601 (#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. (#14326) (Thanks @xtqqczze!)
  • Avoid string.ToLowerInvariant() from GetEnvironmentVariableAsBool() to avoid loading libicu at startup (#14323) (Thanks @iSazonov!)
  • Get PowerShell version in PSVersionInfo using assembly attribute instead of FileVersionInfo (#14332) (Thanks @Fs00!)

General Cmdlet Updates and Fixes

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

Code Cleanup

We thank the following contributors!

@xtqqczze, @powercode

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

Tools

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

Tests

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

Build and Packaging Improvements

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

Documentation and Help Content

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

7.2.0-preview.2 - 2020-12-15

Breaking Changes

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

Experimental Features

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

Performance

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

General Cmdlet Updates and Fixes

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

Code Cleanup

We thank the following contributors!

@xtqqczze, @matthewjdegarmo, @powercode, @Gimly

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

Tools

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

Tests

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

Build and Packaging Improvements

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

Documentation and Help Content

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

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 (#13732) (Thanks @Gimly!)

General Cmdlet Updates and Fixes

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

Code Cleanup

We thank the following contributors!

@xtqqczze, @mkswd, @ThomasNieto, @PatLeong, @paul-cheung, @georgettica

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

Tools

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

Build and Packaging Improvements

We thank the following contributors!

@mkswd, @xtqqczze

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

Documentation and Help Content

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