PowerShell/CHANGELOG/7.2.md

71 KiB

7.2 Changelog

7.2.13 - 2023-07-13

Tests

  • Increase the timeout to make subsystem tests more reliable (#19937)
  • Increase the timeout when waiting for the event log (#19936)

Build and Packaging Improvements

Bump .NET SDK version to 6.0.412

  • Update Notice file (#19956)
  • Update cgmanifest (#19938)
  • Bump to 6.0.412 SDK (#19933)
  • Update variable used to bypass the blocking check for multiple NuGet feeds (#19935)

7.2.12 - 2023-06-27

Build and Packaging Improvements

Bump .NET version to 6.0.411

  • Disable SBOM signing for CI and add extra files for packaging tests (#19729)
  • Update ThirdPartyNotices (Internal 26349)
  • Update the cgmanifest
  • Add PoolNames variable group to compliance pipeline (#19408)
  • Add tool to trigger license information gathering for NuGet modules (#18827)
  • Update to .NET 6.0.410 (#19798)
  • Always regenerate files wxs fragment (#19803)
  • Add prompt to fix conflict during backport (#19583)
  • Add backport function to release tools (#19568)
  • Do not remove penimc_cor3.dll from build (#18438)
  • Remove unnecessary native dependencies from the package (#18213)
  • Delete symbols on Linux as well (#19735)
  • Bump Microsoft.PowerShell.MarkdownRender (#19751)
  • Backport compliance changes (#19719)
  • Delete charset regular expression test (#19585)
  • Fix issue with merge of 19068 (#19586)
  • Update the team member list in releaseTools.psm1 (#19574)
  • Verify that packages have license data (#19543) (#19575)
  • Update experimental-feature.json (#19581)
  • Fix the regular expression used for package name check in vPack build (#19573)
  • Make the vPack PAT library more obvious (#19572)
  • Add an explicit manual stage for changelog update (#19551) (#19567)

7.2.11 - 2023-04-12

Build and Packaging Improvements

Bump .NET version to 6.0.16

  • Update ThirdPartyNotices.txt
  • Update cgmanifest.json
  • Fix the template that creates nuget package
  • Update the wix file
  • Update .NET SDK to 6.0.408
  • Fix the build script and signing template
  • Fix stage dependencies and typo in release build (#19353)
  • Fix issues in release build and release pipeline (#19338)
  • Restructure the package build to simplify signing and packaging stages (#19321)
  • Skip VT100 tests on Windows Server 2012R2 as console does not support it (#19413)
  • Improve package management acceptance tests by not going to the gallery (#19412)
  • Test fixes for stabilizing tests (#19068)
  • Add stage for symbols job in Release build (#18937)
  • Use reference assemblies generated by dotnet (#19302)
  • Add URL for all distributions (#19159)
  • Update release pipeline to use Approvals and automate some manual tasks (#17837)

7.2.10 - 2023-02-23

Build and Packaging Improvements

Bump .NET version to 6.0.14

  • Fixed package names verification to support multi-digit versions (#17220)
  • Add pipeline secrets (from #17837) (Internal 24413)
  • Update to azCopy 10 (#18509)
  • Update third party notices for v7.2.10 (Internal 24346)
  • Update cgmanifest for v7.2.10 (Internal 24333)
  • Pull latest patches for 7.2.10 dependencies (Internal 24325)
  • Update SDK to 6.0.406 for v7.2.10 (Internal 24324)
  • Add test for framework dependent package in release pipeline (#18506) (#19114)
  • Mark 7.2.x releases as latest LTS but not latest stable (#19069)

7.2.9 - 2023-01-24

Engine Updates and Fixes

  • Fix for JEA session leaking functions (Internal 23821 & 23819)

General Cmdlet Updates and Fixes

  • Correct incorrect cmdlet name in script (#18919)

Build and Packaging Improvements

Bump .NET version to 6.0.13

  • Create test artifacts for windows arm64 (#18932)
  • Update dependencies for .NET release (Internal 23816)
  • Don't install based on build-id for RPM (#18921)
  • Apply expected file permissions to linux files after authenticode signing (#18922)
  • Add authenticode signing for assemblies on linux builds (#18920)

7.2.8 - 2022-12-13

Engine Updates and Fixes

  • Remove TabExpansion for PSv2 from remote session configuration (Internal 23294)

Build and Packaging Improvements

Bump .NET SDK to 6.0.403

  • Update CGManifest and ThirdPartyNotices
  • Update Microsoft.CSharp from 4.3.0 to 4.7.0
  • Update to latest SDK (#18610)
  • Allow two-digit revisions in vPack package validation pattern (#18569)
  • Update outdated dependencies (#18576)
  • Work around args parsing issue (#18606)
  • Bump System.Data.SqlClient from 4.8.4 to 4.8.5 (#18515)

7.2.7 - 2022-10-20

Engine Updates and Fixes

  • On Unix, explicitly terminate the native process during cleanup only if it's not running in background (#18280)
  • Stop sending telemetry about ApplicationType (#18168)

General Cmdlet Updates and Fixes

  • Remove the 1-second minimum delay in Invoke-WebRequest for downloading small files, and prevent file-download-error suppression (#18170)
  • Enable searching for assemblies in GAC_Arm64 on Windows (#18169)
  • Fix error formatting to use color defined in $PSStyle.Formatting (#18287)

Tests

  • Use Ubuntu 20.04 for SSH remoting test (#18289)

Build and Packaging Improvements

Bump .NET to version 6.0.402 (#18188)(#18290)

  • Update cgmanifest (#18319)
  • Fix build.psm1 to find the required .NET SDK version when a higher version is installed (#17299) (#18282)
  • Update MSI exit message (#18173)
  • Remove XML files for min-size package (#18274)
  • Update list of PS team members in release tools (#18171)
  • Make the link to minimal package blob public during release (#18174)
  • Add XML reference documents to NuPkg files for SDK (#18172)
  • Update to use version 2.21.0 of Application Insights (#18271)

7.2.6 - 2022-08-11

Engine Updates and Fixes

  • Fix ForEach-Object -Parallel when passing in script block variable (#16564)

General Cmdlet Updates and Fixes

  • Make Out-String and Out-File keep string input unchanged (#17455)
  • Update regular expression used to remove ANSI escape sequences to be more specific to decoration and hyperlinks (#16811)
  • Fix legacy ErrorView types to use $host.PrivateData colors (#17705)
  • Fix Export-PSSession to not throw error when a rooted path is specified for -OutputModule (#17671)

Tests

  • Disable RPM SBOM test. (#17532)

Build and Packaging Improvements

Bump .NET SDK to 6.0.8 (Internal 22065)

We thank the following contributors!

@tamasvajk

  • Update Wix manifest
  • Add AppX capabilities in MSIX manifest so that PS7 can call the AppX APIs (#17416)
  • Use Quality only with Channel in dotnet-install (#17847)
  • Fix build.psm1 to not specify both version and quality for dotnet-install (#17589) (Thanks @tamasvajk!)
  • Install .NET 3.1 as it is required by the vPack task

7.2.5 - 2022-06-21

Engine Updates and Fixes

  • Fix native library loading for osx-arm64 (#17495) (Thanks @awakecoding!)

Tests

  • Make Assembly Load Native test work on a FX Dependent Linux Install (#17496)
  • Enable more tests to be run in a container. (#17294)
  • Switch to using GitHub action to verify Markdown links for PRs (#17281)
  • Try to stabilize a few tests that fail intermittently (#17426)
  • TLS test fix back-port (#17424)

Build and Packaging Improvements

Bump .NET SDK to 6.0.301 (Internal 21218)

  • Update Wix file (Internal 21242)
  • Conditionally add output argument
  • Rename mariner package to cm (#17506)
  • Backport test fixes for 7.2 (#17494)
  • Update dotnet-runtime version (#17472)
  • Update to use windows-latest as the build agent image (#17418)
  • Publish preview versions of mariner to preview repository (#17464)
  • Move cgmanifest generation to daily (#17258)
  • Fix mariner mappings (#17413)
  • Make sure we execute tests on LTS package for older LTS releases (#17430)
  • Add a finalize template which causes jobs with issues to fail (#17428)
  • Make mariner packages Framework dependent (#17425)
  • Base work for adding mariner amd64 package (#17417)

7.2.4 - 2022-05-17

Build and Packaging Improvements

Bump .NET SDK to 6.0.203

  • Add mapping for Ubuntu22.04 Jammy (#17317)
  • Update to use mcr.microsoft.com (#17272)
  • Update third party notices
  • Update global.json and wix
  • Put Secure supply chain analysis at correct place (#17273)
  • Fix web cmdlets so that an empty Get does not include a content-length header (#16587)
  • Update package fallback list for Ubuntu (from those updated for Ubuntu 22.04) (deb) (#17217)
  • Add sha256 digests to RPM packages (#17215)
  • Allow multiple installations of dotnet. (#17216)

7.2.3 - 2022-04-26

Engine Updates and Fixes

  • Fix for partial PowerShell module search paths, that can be resolved to CWD locations (Internal 20126)
  • Do not include node names when sending telemetry. (#16981) to v7.2.3 (Internal 20188)

Tests

  • Re-enable PowerShellGet tests targeting PowerShell gallery (#17062)
  • Skip failing scriptblock tests (#17093)

Build and Packaging Improvements

Bump .NET SDK to 6.0.202

  • Making NameObscurerTelemetryInitializer internal - v7.2.3 (Internal 20239)
  • Updated files.wxs for 7.2.3 (Internal 20211)
  • Updated ThirdPartyNotices for 7.2.3 (Internal 20199)
  • Work around issue with notice generation
  • Replace . in notices container name
  • Updated cgmanifest.json by findMissingNotices.ps1 in v7.2.3 (Internal 20190)
  • v7.2.3 - Updated packages using dotnet-outdated global tool (Internal 20170)
  • Updated to .NET 6.0.4 / SDK 6.0.202 (Internal 20128)
  • Update dotnet-install script download link (Internal 19951)
  • Create checksum file for global tools (#17056) (Internal 19935)
  • Make sure global tool packages are published in stable build (Internal 19625)
  • Fix release pipeline (Internal 19617)

7.2.2 - 2022-03-16

Build and Packaging Improvements

Bump .NET SDK to 6.0.201

  • Update WiX file (Internal 19460)
  • Update .NET SDK version to 6.0.201 (Internal 19457)
  • Update experimental feature JSON files (#16838)
  • Ensure Alpine and ARM SKUs have powershell.config.json file with experimental features enabled (#16823)
  • Update the vmImage and PowerShell root directory for macOS builds (#16611)
  • Update macOS build image and root folder for build (#16609)
  • Remove WiX install (#16834)
  • Opt-in to build security monitoring (#16911)
  • Add SBOM manifest for release packages (#16641, #16711)
  • Add Linux package dependencies for packaging (#16807)
  • Switch to our custom images for build and release (#16801, #16580)
  • Remove all references to cmake for the builds in this repository (#16578)
  • Register NuGet source when generating CGManifest (#16570)

7.2.1 - 2021-12-14

General Cmdlet Updates and Fixes

  • Remove declaration of experimental features in Utility module manifest as they are stable (#16460)
  • Bring back pwsh.exe for framework dependent packages to support Start-Job (#16535)
  • Change default for $PSStyle.OutputRendering to Ansi (Internal 18394)
  • Update HelpInfoUri for 7.2 release (#16456)
  • Fix typo for "privacy" in MSI installer (#16407)

Tests

  • Set clean state before testing UseMU in the MSI (#16543)

Build and Packaging Improvements

  • Add explicit job name for approval tasks in Snap stage (#16579)
  • Fixing the build by removing duplicate TSAUpload entries (Internal 18399)
  • Port CGManifest fixes (Internal 18402)
  • Update CGManifest (Internal 18403)
  • Updated package dependencies for 7.2.1 (Internal 18388)
  • Use different containers for different branches (#16434)
  • Use notice task to generate license assuming CGManifest contains all components (#16340)
  • Create compliance build (#16286)
  • Update release instructions with link to new build (#16419)
  • Add diagnostics used to take corrective action when releasing buildInfoJson (#16404)
  • vPack release should use buildInfoJson new to 7.2 (#16402)
  • Add checkout to build json stage to get ci.psm1 (#16399)
  • Update the usage of metadata.json for getting LTS information (#16381)
  • Move mapping file into product repository and add Debian 11 (#16316)

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 changelog 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 changelogs 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 filenames (#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 regular expression 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 changelog 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 repository (#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 repository (#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!)