Updated changelog for v7.2.23 ---- #### AI description (iteration 1) #### PR Classification Documentation update. #### PR Summary Updated the changelog for version 7.2.23 with build and packaging improvements, and documentation updates. - `CHANGELOG/7.2.md`: Added details for version 7.2.23, including .NET bump to 6.0.425, feature flags for network isolation, and various fixes and improvements in build steps and signing certificates. Updated documentation sample `nuget.config`. Co-authored-by: Justin Chung <t-juchung@microsoft.com>
79 KiB
7.2 Changelog
7.2.23 - 2024-08-20
Build and Packaging Improvements
Bump .NET to 6.0.425
- Add feature flags for removing network isolation
- Bump PackageManagement to 1.4.8.1 (#24162)
- Bump .NET to 6.0.425 (#24161)
- Skip build steps that do not have exe packages (#23945) (#24156)
- Use correct signing certificates for RPM and DEBs (#21522) (#24154)
- Fix exe signing with third party signing for WiX engine (#23878) (#24155)
- Fix error in the vPack release, debug script that blocked release (#23904)
- Add vPack release (#23898)
- Fix nuget publish download path
- Use correct signing certificates for RPM and DEBs (#21522)
Documentation and Help Content
- Update docs sample nuget.config (#24109) (#24157)
7.2.22 - 2024-07-18
Engine Updates and Fixes
- Resolve paths correctly when importing files or files referenced in the module manifest (Internal 31777 31788)
Build and Packaging Improvements
Bump .NET to 6.0.424
- Enumerate over all signed zip packages
- Update TPN for release v7.2.22 (Internal 31807)
- Update CG Manifest for 7.2.22 (Internal 31804)
- Add macos signing for package files (#24015) (#24058)
- Update .NET version to 6.0.424 (#24033)
7.2.21 - 2024-06-18
Build and Packaging Improvements
Release 7.2.20 broadly (was previously just released to the .NET SDK containers.)
Release 7.2.20 broadly
- Fixes for change to new Engineering System.
- Create
powershell.config.json
forPowerShell.Windows.x64
global tool (#23941) (#23942)
7.2.20 - 2024-06-06
Limited release for dotnet SDK container images.
Update .NET 6 to 6.0.31 and how global tool is generated
- Fixes for change to new Engineering System.
- Create
powershell.config.json
forPowerShell.Windows.x64
global tool (#23941) (#23942) - Update change log for v7.2.20
- Update installation on Wix module (#23808)
- Updates to package and release pipelines (#23800)
- Use feed with Microsoft Wix toolset (#21651)
- update wix package install (#21537)
- Use PSScriptRoot to find path to Wix module (#21611)
- Create the Windows.x64 global tool with shim for signing (#21559)
- Add branch counter variables for daily package builds (#21523)
- Official PowerShell Package pipeline (#21504)
- Add a PAT for fetching PMC cli (#21503)
- [StepSecurity] Apply security best practices (#21480)
- Fix build failure due to missing reference in
GlobalToolShim.cs
(#21388) - Fix argument passing in
GlobalToolShim
(#21333) - Update .NET 6 to 6.0.31 (Internal 31302)
- Re-apply the OneBranch changes to packaging.psm1"
7.2.19 - 2024-04-11
Build and Packaging Improvements
Bump to .NET 6.0.29
- Allow artifacts produced by partially successful builds to be consumed by release pipeline
- Update SDK, dependencies and
cgmanifest
for7.2.19
- Revert changes to
packaging.psm1
- Verify environment variable for OneBranch before we try to copy (#21441)
- Multiple fixes in official build pipeline (#21408)
- Add
dotenv
install as latest version does not work with current Ruby version (#21239) - PowerShell co-ordinated build OneBranch pipeline (#21364)
- Remove
surrogateFile
setting ofAPIScan
(#21238)
7.2.18 - 2024-01-11
Build and Packaging Improvements
Bump .NET to 6.0.418
- Update
ThirdPartyNotices.txt
for v7.2.18 (Internal 29173) - Update
cgmanifest.json
for v7.2.18 release (Internal 29161) - Update .NET SDK to 6.0.418 (Internal 29141)
- Back port 3 build changes to
apiscan.yml
(#21036) - Set the
ollForwardOnNoCandidateFx
inruntimeconfig.json
to roll forward only on minor and patch versions (#20689) - Remove the
ref
folder before running compliance (#20373) - Fix the tab completion tests (#20867)
7.2.17 - 2023-11-16
General Cmdlet Updates and Fixes
- Redact Auth header content from ErrorRecord (Internal 28411)
Build and Packaging Improvements
Bump to .NET to version 6.0.417
- Bump to .NET 6.0.417 (Internal 28486)
- Copy azure blob with PowerShell global tool to private blob and move to CDN during release (Internal 28450)
7.2.16 - 2023-10-26
Build and Packaging Improvements
Update .NET 6 to version 6.0.416
- Fix release pipeline yaml
- Fix issues with merging backports in packaging (Internal 28158)
- Update .NET 6 and TPN (Internal 28149)
- Add runtime and packaging type info for mariner2 arm64 (#19450) (#20564)
- Add mariner arm64 to PMC release (#20176) (#20567)
- Remove
HostArchitecture
dynamic parameter forosxpkg
(#19917) (#20565) - Use
fxdependent-win-desktop
runtime for compliance runs (#20326) (#20568) - Add SBOM for release pipeline (#20519) (#20570)
- Increase timeout when publishing packages to
pacakages.microsoft.com
(#20470) (#20569) - Add mariner arm64 package build to release build (#19946) (#20566)
7.2.15 - 2023-10-10
Security Fixes
- Block getting help from network locations in restricted remoting sessions (Internal 27699)
Build and Packaging Improvements
Build infrastructure maintenance
- Release build: Change the names of the PATs (#20315)
- Switch to GitHub Action for linting markdown (#20309)
- Put the calls to
Set-AzDoProjectInfo
and Set-AzDoAuthToken` in the right order (#20312)
7.2.14 - 2023-09-18
Build and Packaging Improvements
Bump .NET SDK version to 6.0.414
- Update to use .NET SDK 6.0.414 (Internal 27575)
- Enable
vPack
provenance data (#20242) - Start using new packages.microsoft.com CLI (#20241)
- Remove spelling CI in favor of GitHub Action (#20239)
- Make PR creation tool use
--web
because it is more reliable (#20238) - Update variable used to bypass the blocking check for multiple NuGet feeds (#20237)
- Don't publish notice on failure because it prevents retry (#20236)
- Publish rpm package for rhel9 (#20234)
- Add
ProductCode
in registry for MSI install (#20233)
Documentation and Help Content
- Update man page to match current help for pwsh (#20240)
- Update the link for getting started in
README.md
(#20235)
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
andOut-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 withChannel
indotnet-install
(#17847) - Fix
build.psm1
to not specify both version and quality fordotnet-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 acontent-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
toAnsi
(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
withpwsh.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 forR2R
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 aCodeProperty
to anAliasProperty
that points toFileSystemInfo.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
andMicrosoft.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
andmanifest.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()
andGetFormatStyleString()
toPSHostUserInterface
as public API (#16075) - Add
isOutputRedirected
parameter toGetFormatStyleString()
method (#14397) - Fix
ConvertTo-SecureString
with key regression due to .NET breaking change (#16068) - Fix regression in
Move-Item
to only fallback toCopyAndDelete
in specific cases (#16029) - Set
$?
correctly for command expression with redirection (#16046) - Use
CurrentCulture
when handling conversions toDateTime
inAdd-History
(#16005) (Thanks @vexx32!) - Fix
NullReferenceException
inFormat-Wide
(#15990) (Thanks @DarylGraves!)
Code Cleanup
We thank the following contributors!
@xtqqczze!
- Improve
CommandInvocationIntrinsics
API documentation and style (#14369) - Use
bool?.GetValueOrDefault()
inFormatWideCommand
(#15988) (Thanks @xtqqczze!)
Tools
- Fix typo in build.psm1 (#16038) (Thanks @eltociear!)
- Add
.stylecop
tofiletypexml
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
to6.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
toOutputRendering.Host
and removeOutputRendering.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 toSet-Clipboard
(#13713) (Thanks @ThomasNieto!) - Add
-Encoding
parameter forTee-Object
(#12135) (Thanks @Peter-Schneider!) - Update
ConvertTo-Csv
andExport-Csv
to handleIDictionary
objects (#11029) (Thanks @vexx32!) - Update the parameters
-Exception
and-ErrorRecord
forWrite-Error
to be position 0 (#13813) (Thanks @ThomasNieto!) - Don't use
ArgumentList
when creating COM object withNew-Object
as it's not applicable to the COM parameter set (#15915) - Fix
$PSStyle
list output to correctly showTableHeader
(#15928) - Remove the
PSImplicitRemotingBatching
experimental feature (#15863) - Fix issue with
Get-Process -Module
failing to stop when it's piped toSelect-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 asPSVersion
(#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
, andIDE0049
(#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
andmetadata files
for releasev7.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 creatingArgumentNullException
(#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
forFormat-List
and$PSStyle.Formatting.TableHeader
forFormat-Table
output (#14406) - Highlight using error color the exception
Message
and underline inPositionMessage
forGet-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
andstring
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
forConvertToJsonCommand
(#15787) (Thanks @xtqqczze!) - Fix
IDisposable
implementation forCommandPathSearch
(#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 ofSubstring
(#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
withFirst
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 toStart-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
andhosted-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
from10.4.4
to10.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 inAmsiUtils.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
andAppDomain.Unload
(#15554) - Replace
ProcessModule.FileName
withEnvironment.ProcessPath
and removePSUtils.GetMainModule
(#15012) (Thanks @Fs00!)
Tests
- Fix
Start-Benchmarking
to putTargetPSVersion
andTargetFramework
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
fromStart-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
withDirectory.EnumerateDirectories
to avoid array allocations (#15167) (Thanks @xtqqczze!) - Use
List.ConvertAll
instead ofLINQ
(#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 DSCClearCache()
(#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 fromGet-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
withDoesNotReturn
attribute (#15352) (Thanks @powercode!) - Use
GetValueOrDefault()
for nullablePSLanguageMode
(#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
: UseArgumentList
for native executable invocation (breaking change) (#14692)
Engine Updates and Fixes
- Add
IArgumentCompleterFactory
for parameterizedArgumentCompleters
(#12605) (Thanks @powercode!)
General Cmdlet Updates and Fixes
- Fix SSH remoting connection never finishing with misconfigured endpoint (#15175)
- Respect
TERM
andNO_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()
whenMoveTo()
fails due to anIOException
(#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 inProcessBaseCommand.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 inpackage.json
(#15124)
Build and Packaging Improvements
We thank the following contributors!
@JustinGrote
- Fix
yarn-lock
forcopy-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
andmetadata.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
andGetFiles
(#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
forFileSystemProvider
to use copy-delete instead of move for DFS paths (#14913) - Fix
PromptForCredential()
to addtargetName
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
to7.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
from10.3.4
to10.3.5
(#14807)
Documentation and Help Content
- Update
README.md
andmetadata.json
for upcoming releases (#14755) - Merge 7.1.3 and 7.0.6 changelog to master (#15009)
- Update
README
andmetadata.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 allowsGet-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
andDirectory.GetFiles
. (#14326) (Thanks @xtqqczze!) - Avoid
string.ToLowerInvariant()
fromGetEnvironmentVariableAsBool()
to avoid loading libicu at startup (#14323) (Thanks @iSazonov!) - Get PowerShell version in
PSVersionInfo
using assembly attribute instead ofFileVersionInfo
(#14332) (Thanks @Fs00!)
General Cmdlet Updates and Fixes
- Suppress
Write-Progress
inConsoleHost
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
, andWarning
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 ofstring.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
tov1.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 testpackage.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 enableAdd()
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 ofDatetime.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
inCommandLineParser
(#14303) (Thanks @iSazonov!) - Use
StringComparison.Ordinal
instead ofStringComparison.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 toImport-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 toWhere-Object
inReset-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 fromnuget.org
(#14090) - Replace
GetFiles
inTestModuleManifestCommand
(#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 usein
-modifier (#13919) (Thanks @xtqqczze!) - Enable nullable:
System.Management.Automation.IArgumentCompleter
(#14182) (Thanks @powercode!) - Enable
CA1822
: Markprivate
members asstatic
(#13897) (Thanks @xtqqczze!) - Fix
IDE0090
: Simplifynew
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 asstatic
part 10 (#14235) (Thanks @xtqqczze!) - Mark
private
members asstatic
part 9 (#14234) (Thanks @xtqqczze!) - Fix
SA1642
forMicrosoft.Management.Infrastructure.CimCmdlets
(#14239) (Thanks @xtqqczze!) - Use
AsSpan
/AsMemory
slice constructor (#14265) (Thanks @xtqqczze!) - Fix
IDE0090
: Simplifynew
expression part 4.6 (#14260) (Thanks @xtqqczze!) - Fix
IDE0090
: Simplifynew
expression part 4.5 (#14259) (Thanks @xtqqczze!) - Fix
IDE0090
: Simplifynew
expression part 4.3 (#14257) (Thanks @xtqqczze!) - Fix
IDE0090
: Simplifynew
expression part 4.2 (#14256) (Thanks @xtqqczze!) - Fix
IDE0090
: Simplifynew
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
: Simplifynew
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 asstatic
part 8 (#14233) (Thanks @xtqqczze!) - Fix
CA1822
: Mark members asstatic
part 6 (#14229) (Thanks @xtqqczze!) - Fix
CA1822
: Mark members asstatic
part 5 (#14228) (Thanks @xtqqczze!) - Fix
CA1822
: Mark members asstatic
part 4 (#14227) (Thanks @xtqqczze!) - Fix
CA1822
: Mark members asstatic
part 3 (#14226) (Thanks @xtqqczze!) - Fix
CA1822
: Mark members asstatic
part 2 (#14225) (Thanks @xtqqczze!) - Fix
CA1822
: Mark members asstatic
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 callSuppressFinalize
(#14074) (Thanks @xtqqczze!) - Remove incorrectly implemented finalizer (#14246) (Thanks @xtqqczze!)
- Fix
CA1822
: Mark members asstatic
part 7 (#14230) (Thanks @xtqqczze!) - Fix
SA1122
: Usestring.Empty
for empty strings (#14218) (Thanks @xtqqczze!) - Fix various xml documentation issues (#14223) (Thanks @xtqqczze!)
- Remove unnecessary
using
s part 8 (#14072) (Thanks @xtqqczze!) - Enable
SA1006
: Preprocessor keywords should not be preceded by space (#14052) (Thanks @xtqqczze!) - Fix
SA1642
forMicrosoft.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
: Simplifynew
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
: Simplifynew
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 declarestatic
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
andmetadata.json
for7.2.0-preview.1
release (#14104) - Bump
NJsonSchema
from10.2.2
to10.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
inStart-Transcript
to beUTF8
without a BOM (#13732) (Thanks @Gimly!)
General Cmdlet Updates and Fixes
- Update
pwsh -?
output to match docs (#13748) - Fix
NullReferenceException
inTest-Json
(#12942) (Thanks @iSazonov!) - Make
Dispose
inTranscriptionOption
idempotent (#13839) (Thanks @krishnayalavarthi!) - Add additional Microsoft PowerShell modules to the tracked modules list (#12183)
- Relax further
SSL
verification checks forWSMan
on non-Windows hosts with verification available (#13786) (Thanks @jborean93!) - Add the
OutputTypeAttribute
toGet-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
andCurrentManagedThreadId
fromSystem.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
orCount
property instead ofCount()
(#13925) (Thanks @xtqqczze!) - Enable CA1827: Do not use
Count()
orLongCount()
whenAny()
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
andInsert
method overloads onStringBuilder
(#13926) (Thanks @xtqqczze!) - Enforce code style in build (#13957) (Thanks @xtqqczze!)
- Enable CA1836: Prefer
IsEmpty
overCount
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 ofString.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
to16.8.0
(#14020) - Bump
Microsoft.CodeAnalysis.CSharp
to3.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 to2.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
to10.2.2
(#13722, #13751) - Add flag to make Linux script publish to production repository (#13714)
- Bump
Markdig.Signed
to0.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!)