65 KiB
7.4 Changelog
7.4.6 - 2024-10-22
Build and Packaging Improvements
Bump .NET SDK to 8.0.403
- Copy to static site instead of making blob public (#24269) (#24473)
- Add ability to capture MSBuild Binary logs when restore fails (#24128)
- Keep the roff file when gzipping it. (#24450)
- Update
PowerShell-Coordinated_Packages-Official.yml
(#24449) - Update and add new NuGet package sources for different environments. (#24440)
- Add PMC mapping for Debian 12 (bookworm) (#24413)
- Fixes to Azure Public feed usage (#24429)
- Delete
assets/AppImageThirdPartyNotices.txt
(#24256) - Delete
demos
directory (#24258) - Add specific path for issues in tsaconfig (#24244)
- Checkin generated manpage (#24423)
- Add updated libicu dependency for Debian packages (#24301)
- Add mapping to azurelinux repo (#24290)
- Update vpack pipeline (#24281)
- Add
BaseUrl
tobuildinfo
json file (#24376) - Delete the msix blob if it's already there (#24353)
- Make some release tests run in a hosted pools (#24270)
- Create new pipeline for compliance (#24252)
- Use Managed Identity for
APIScan
authentication (#24243) - Check
Create and Submit
in vPack build by default (#24181) - Capture environment better (#24148)
- Refactor Nuget package source creation to use
New-NugetPackageSource
function (#24104) - Make Microsoft feeds the default (#24426)
- Bump to .NET 8.0.403 and update dependencies (#24405)
7.4.5 - 2024-08-20
General Cmdlet Updates and Fixes
- Fix WebCmdlets when
-Body
is specified butContentType
is not (#24145)
Tests
- Rewrite the mac syslog tests to make them less flaky (#24152)
Build and Packaging Improvements
Bump .NET SDK to 8.0.400
- Add feature flags for removing network isolation (Internal 32126)
- Update
ThirdPartyNotices.txt
for v7.4.5 (#24160) - Update
cgmanifest.json
for v7.4.5 (#24159) - Update .NET SDK to 8.0.400 (#24151)
- Cleanup unused csproj (#24146)
- Remember installation options and used them to initialize options for the next installation (#24143)
- Fix failures in GitHub action
markdown-link-check
(#24142) - Use correct signing certificates for RPM and DEBs (#21522)
Documentation and Help Content
- Update docs sample nuget.config (#24147)
- Fix up broken links in Markdown files (#24144)
7.4.4 - 2024-07-18
Engine Updates and Fixes
- Resolve paths correctly when importing files or files referenced in the module manifest (Internal 31780)
Build and Packaging Improvements
Bump .NET to 8.0.303
- Enumerate over all signed zip packages in macos signing
- Update TPN for the v7.4.4 release (Internal 31793)
- Add update cgmanifest (Internal 31789)
- Add macos signing for package files (#24015) (#24059)
- Update .NET SDK to 8.0.303 (#24038)
7.4.3 - 2024-06-18
General Cmdlet Updates and Fixes
- Fix the error when using
Start-Process -Credential
without the admin privilege (#21393) (Thanks @jborean93!) - Fix
Test-Path -IsValid
to check for invalid path and filename characters (#21358)
Engine Updates and Fixes
- Fix generating
OutputType
when running in Constrained Language Mode (#21605) - Expand
~
to$home
on Windows with tab completion (#21529) - Make sure both stdout and stderr can be redirected from a native executable (#20997)
Build and Packaging Improvements
Update to .NET 8.0.6
We thank the following contributors!
@ForNeVeR!
- Fixes for change to new Engineering System.
- Fix argument passing in
GlobalToolShim
(#21333) (Thanks @ForNeVeR!) - Create
powershell.config.json
forPowerShell.Windows.x64
global tool (#23941) - Remove markdown link check on release branches (#23937)
- Update to .NET 8.0.6 (#23936)
- Fix error in the vPack release, debug script that blocked release (#23904)
- Add branch counter variables for daily package builds (#21523)
- Updates to package and release pipelines (#23800)
- Fix exe signing with third party signing for WiX engine (#23878)
- Use PSScriptRoot to find path to Wix module (#21611)
- [StepSecurity] Apply security best practices (#21480)
- Fix build failure due to missing reference in
GlobalToolShim.cs
(#21388) - Update installation on Wix module (#23808)
- Use feed with Microsoft Wix toolset (#21651)
- Create the Windows.x64 global tool with shim for signing (#21559)
- Generate MSI for
win-arm64
installer (#20516) - update wix package install (#21537)
- Add a PAT for fetching PMC cli (#21503)
- Official PowerShell Package pipeline (#21504)
7.4.2 - 2024-04-11
General Cmdlet Updates and Fixes
- Revert "Adjust PUT method behavior to POST one for default content type in WebCmdlets" (#21049)
- Fix regression with
Get-Content
when-Tail 0
and-Wait
are both used (#20734) (Thanks @CarloToso!) - Fix
Get-Error
serialization of array values (#21085) (Thanks @jborean93!) - Fix a regression in
Format-Table
when header label is empty (#21156)
Engine Updates and Fixes
- Revert the PR #17856 (Do not preserve temporary results when no need to do so) (#21368)
- Make sure the assembly/library resolvers are registered at early stage (#21361)
- Handle the case that
Runspace.DefaultRunspace
isnull
when logging for WDAC Audit (#21344) - Fix PowerShell class to support deriving from an abstract class with abstract properties (#21331)
- Fix the regression when doing type inference for
$_
(#21223) (Thanks @MartinGC94!)
Build and Packaging Improvements
Bump to .NET 8.0.4
- Revert analyzer package back to stable
- Update SDK, deps and
cgmanifest
for7.4.2
- Revert changes to
packaging.psm1
- Update
PSResourceGet
version from1.0.2
to1.0.4.1
(#21439) - Verify environment variable for OneBranch before we try to copy (#21441)
- Remove
surrogateFile
setting ofAPIScan
(#21238) - Add
dotenv
install as latest version does not work with current Ruby version (#21239) - Multiple fixes in official build pipeline (#21408)
- Add back 2 transitive dependency packages (#21415)
- Update
PSReadLine
tov2.3.5
for the nextv7.4.x
servicing release (#21414) - PowerShell co-ordinated build OneBranch pipeline (#21364)
7.4.1 - 2024-01-11
General Cmdlet Updates and Fixes
- Fix
Group-Object
output using interpolated strings (#20745) (Thanks @mawosoft!) - Fix
Start-Process -PassThru
to make sure theExitCode
property is accessible for the returnedProcess
object (#20749) (#20866) (Thanks @CodeCyclone!) - Fix rendering of DisplayRoot for network PSDrive (#20793) (#20863)
Engine Updates and Fixes
- Ensure filename is not null when logging WDAC ETW events (#20910) (Thanks @jborean93!)
- Fix four regressions introduced by WDAC audit logging feature (#20913)
Build and Packaging Improvements
Bump .NET 8 to version 8.0.101
- Update .NET SDK and dependencies for v7.4.1 (Internal 29142)
- Update cgmanifest for v7.4.1 (#20874)
- Update package dependencies for v7.4.1 (#20871)
- Set the
rollForwardOnNoCandidateFx
inruntimeconfig.json
to roll forward only on minor and patch versions (#20689) (#20865) - Remove RHEL7 publishing to packages.microsoft.com as it's no longer supported (#20849) (#20864)
- Fix the tab completion tests (#20867)
7.4.0 - 2023-11-16
General Cmdlet Updates and Fixes
- Added a missing
ConfigureAwait(false)
call to webcmdlets so they don't block (#20622) - Fix
Group-Object
so output uses current culture (#20623) - Block getting help from network locations in restricted remoting sessions (#20615)
Build and Packaging Improvements
Bump .NET 8 to 8.0.0 RTM build
- Add internal .NET SDK URL parameter to release pipeline (Internal 28474)
- Update the CGManifest file for v7.4.0 release (Internal 28457)
- Fix repository root for the nuget.config (Internal 28456)
- Add internal nuget feed to compliance build (Internal 28449)
- Copy azure blob with PowerShell global tool to private blob and move to CDN during release (Internal 28438)
- Fix release build by making the internal SDK parameter optional (#20658) (Internal 28440)
- Make internal .NET SDK URL as a parameter for release builld (#20655) (Internal 28428)
- Update
PSResourceGet
version for1.0.1
release (#20652) (Internal 28427) - Bump .NET 8 to 8.0.0 RTM build (Internal 28360)
- Remove Auth header content from ErrorRecord (Internal 28409)
- Fix setting of variable to consume internal SDK source (Internal 28354)
- Bump Microsoft.Management.Infrastructure to v3.0.0 (Internal 28352)
- Bump
Microsoft.PowerShell.Native
tov7.4.0
(#20617) (#20624)
7.4.0-rc.1 - 2023-10-24
General Cmdlet Updates and Fixes
- Fix
Test-Connection
due to .NET 8 changes (#20369) (#20531) - Add telemetry to check for specific tags when importing a module (#20371) (#20540)
- Fix
Copy-Item
progress to only show completed when all files are copied (#20517) (#20544) - Fix
unixmode
to handlesetuid
andsticky
when file is not an executable (#20366) (#20537) - Fix UNC path completion regression (#20419) (#20541)
- Fix implicit remoting proxy cmdlets to act on common parameters (#20367) (#20530)
- Fix
Get-Service
non-terminating error message to include category (#20276) (#20529) - Fixing regression in DSC (#20268) (#20528)
Build and Packaging Improvements
We thank the following contributors!
- Update ThirdPartyNotices.txt file (Internal 28110)
- Update CGManifest for release
- Fix package version for .NET nuget packages (#20551) (#20552)
- Only registry App Path for release package (#20478) (#20549)
- Bump PSReadLine from 2.2.6 to 2.3.4 (#20305) (#20533)
- Bump Microsoft.Management.Infrastructure (#20511) (#20512) (#20433) (#20434) (#20534) (#20535) (#20545) (#20547)
- Bump to .NET 8 RC2 (#20510) (#20543)
- Add SBOM for release pipeline (#20519) (#20548)
- Bump version of
Microsoft.PowerShell.PSResourceGet
tov1.0.0
(#20485) (#20538) - Bump xunit.runner.visualstudio from 2.5.1 to 2.5.3 (#20486) (#20542)
- Bump JsonSchema.Net from 5.2.5 to 5.2.6 (#20421) (#20532)
- Fix alpine tar package name and do not crossgen alpine fxdependent package (#20459) (#20536)
- Increase timeout when publishing packages to
packages.microsoft.com
(#20470) (#20539) - Block any preview vPack release (#20243) (#20526)
- Add surrogate file for compliance scanning (#20423)
7.4.0-preview.6 - 2023-09-28
General Cmdlet Updates and Fixes
- Set approved experimental features to stable for 7.4 release (#20362)
- Revert changes to continue using
BinaryFormatter
forOut-GridView
(#20360) - Remove the comment trigger from feedback provider (#20346)
Tests
- Continued improvement to tests for release automation (#20259)
- Skip the test on x86 as
InstallDate
is not visible onWow64
(#20255) - Harden some problematic release tests (#20254)
Build and Packaging Improvements
Move to .NET 8.0.100-rc.1.23463.5
- Update the regex for package name validation (Internal 27783, 27795)
- Update ThirdPartyNotices.txt (Internal 27772)
- Remove the
ref
folder before running compliance (#20375) - Updates RIDs used to generate component Inventory (#20372)
- Bump
Microsoft.CodeAnalysis.CSharp
from 4.7.0 to 4.8.0-2.final (#20368) - Fix the release build by moving to the official .NET 8-rc.1 release build version (#20365)
- Update the experimental feature JSON files (#20363)
- Bump
XunitXml.TestLogger
from 3.1.11 to 3.1.17 (#20364) - Update
Microsoft.PowerShell.PSResourceGet
to 0.9.0-rc1 (#20361) - Update .NET SDK to version 8.0.100-rc.1.23455.8 (#20358)
- Use
fxdependent-win-desktop
runtime for compliance runs (#20359) - Add mapping for mariner arm64 stable (#20348)
- Bump
xunit.runner.visualstudio
from2.5.0
to2.5.1
(#20357) - Bump
JsonSchema.Net
from 5.2.1 to 5.2.5 (#20356) - Bump
Microsoft.NET.Test.Sdk
from 17.7.1 to 17.7.2 (#20355) - Bump Markdig.Signed from 0.32.0 to 0.33.0 (#20354)
- Bump JsonSchema.Net from 5.1.3 to 5.2.1 (#20353)
- Bump actions/checkout from 3 to 4 (#20352)
- Bump
Microsoft.NET.Test.Sdk
from 17.7.0 to 17.7.1 (#20351) - Bump
Microsoft.CodeAnalysis.CSharp
from 4.7.0-2.final to 4.7.0 (#20350) - Release build: Change the names of the PATs (#20349)
- Put the calls to
Set-AzDoProjectInfo
and Set-AzDoAuthToken` in the right order (#20347) - Bump Microsoft.Management.Infrastructure (continued) (#20262)
- Bump
Microsoft.Management.Infrastructure
to 3.0.0-preview.2 (#20261) - Enable
vPack
provenance data (#20260) - Start using new packages.microsoft.com cli (#20258)
- Add mariner arm64 to PMC release (#20257)
- Fix typo
donet
todotnet
in build scripts and pipelines (#20256)
7.4.0-preview.5 - 2023-08-21
Breaking Changes
- Change how relative paths in
Resolve-Path
are handled when using theRelativeBasePath
parameter (#19755) (Thanks @MartinGC94!)
Engine Updates and Fixes
- Fix dynamic parameter completion (#19510) (Thanks @MartinGC94!)
- Use
OrdinalIgnoreCase
to lookup script breakpoints (#20046) (Thanks @fflaten!) - Guard against
null
or blank path components when adding to module path (#19922) (Thanks @stevenebutler!) - Fix deadlock when piping to shell associated file extension (#19940)
- Fix completion regression for filesystem paths with custom
PSDrive
names (#19921) (Thanks @MartinGC94!) - Add completion for variables assigned by the
Data
statement (#19831) (Thanks @MartinGC94!) - Fix a null reference crash in completion code (#19916) (Thanks @MartinGC94!)
General Cmdlet Updates and Fixes
- Fix
Out-GridView
by implementingClone()
method to replace old use of binary format serialization (#20050) - Support Unix domain socket in WebCmdlets (#19343) (Thanks @CarloToso!)
- Wait-Process: add
-Any
and-PassThru
parameters (#19423) (Thanks @dwtaber!) - Added the switch parameter
-CaseInsensitive
toSelect-Object
andGet-Unique
cmdlets (#19683) (Thanks @ArmaanMcleod!) Restore-Computer
andStop-Computer
should fail with error when not running viasudo
on Unix (#19824)- Add Help proxy function for non-Windows platforms (#19972)
- Remove input text from the error message resulted by
SecureString
andPSCredential
conversion failure (#19977) (Thanks @ArmaanMcleod!) - Add
Microsoft.PowerShell.PSResourceGet
to the telemetry module list (#19926)
Code Cleanup
We thank the following contributors!
@eltociear, @Molkree, @MartinGC94
- Fix use of
ThrowIf
where the arguments were reversed (#20052) - Fix typo in
Logging.Tests.ps1
(#20048) (Thanks @eltociear!) - Apply the
InlineAsTypeCheck
in the engine code - 2nd pass (#19694) (Thanks @Molkree!) - Apply the
InlineAsTypeCheck
rule in the engine code - 1st pass (#19692) (Thanks @Molkree!) - Remove unused string completion code (#19879) (Thanks @MartinGC94!)
Tools
- Give the
assignPRs
workflow write permissions (#20021)
Tests
- Additional test hardening for tests which fail in release pass. (#20093)
- Don't use a completion which has a space in it (#20064)
- Fixes for release tests (#20028)
- Remove spelling CI in favor of GitHub Action (#19973)
- Hide expected error for negative test on windows for script extension (#19929)
- Add more debugging to try to determine why these test fail in release build. (#19829)
Build and Packaging Improvements
- Update ThirdPartyNotices for 7.4.0-preview.5
- Update
PSResourceGet
to0.5.24-beta24
(#20118) - Fix build after the change to remove win-arm32 (#20102)
- Add comment about pinned packages (#20096)
- Bump to .NET 8 Preview 7 (#20092)
- Remove
Win-Arm32
from release build. (#20095) - Add alpine framework dependent package (#19995)
- Bump JsonSchema.Net from 4.1.8 to 5.1.3 (#20089)
- Bump Microsoft.NET.Test.Sdk from 17.6.3 to 17.7.0 (#20088)
- Move build to .NET 8 preview 6 (#19991)
- Bump
Microsoft.Management.Infrastructure
from2.0.0
to3.0.0-preview.1
(#20081) - Bump
Markdig.Signed
from0.31.0
to0.32.0
(#20076) - Auto assign PR Maintainer (#20020)
- Delete rule that was supposed to round-robin assign a maintainer (#20019)
- Update the cgmanifest (#20012)
- Update the cgmanifest (#20008)
- Bump JsonSchema.Net from 4.1.7 to 4.1.8 (#20006)
- Bump JsonSchema.Net from 4.1.6 to 4.1.7 (#20000)
- Add mariner arm64 package build to release build (#19946)
- Check for pre-release packages when it's a stable release (#19939)
- Make PR creation tool use
--web
because it is more reliable (#19944) - Update to the latest NOTICES file (#19971)
- Update variable used to bypass the blocking check for multiple NuGet feeds for release pipeline (#19963)
- Update variable used to bypass the blocking check for multiple NuGet feeds (#19967)
- Update README.md and metadata.json for release v7.2.13 and v7.3.6 (#19964)
- Don't publish notice on failure because it prevent retry (#19955)
- Change variable used to bypass nuget security scanning (#19954)
- Update the cgmanifest (#19924)
- Publish rpm package for rhel9 (#19750)
- Bump XunitXml.TestLogger from 3.0.78 to 3.1.11 (#19900)
- Bump JsonSchema.Net from 4.1.5 to 4.1.6 (#19885)
- Bump xunit from 2.4.2 to 2.5.0 (#19902)
- Remove
HostArchitecture
dynamic parameter forosxpkg
(#19917) - FabricBot: Onboarding to GitOps.ResourceManagement because of FabricBot decommissioning (#19905)
- Change variable used to bypass nuget security scanning (#19907)
- Checkout history for markdown lint check (#19908)
- Switch to GitHub Action for linting markdown (#19899)
- Bump xunit.runner.visualstudio from 2.4.5 to 2.5.0 (#19901)
- Add runtime and packaging type info for mariner2 arm64 (#19450)
- Update to the latest NOTICES file (#19856)
Documentation and Help Content
- Update
README.md
andmetadata.json
for7.4.0-preview.4
release (#19872) - Fix grammatical issue in
ADOPTERS.md
(#20037) (Thanks @nikohoffren!) - Replace docs.microsoft.com URLs in code with FWLinks (#19996)
- Change
docs.microsoft.com
tolearn.microsoft.com
(#19994) - Update man page to match current help for pwsh (#19993)
- Merge
7.3.5
,7.3.6
,7.2.12
and7.2.13
changelogs (#19968) - Fix ///-comments that violate the docs schema (#19957)
- Update the link for getting started in
README.md
(#19932) - Migrate user docs to the PowerShell-Docs repository (#19871)
7.4.0-preview.4 - 2023-06-29
Breaking Changes
Test-Json
: UseJsonSchema.Net
(System.Text.Json
) instead ofNJsonSchema
(Newtonsoft.Json
) (#18141) (Thanks @gregsdennis!)Test-Connection
: Increase output detail when performing a TCP test (#11452) (Thanks @jackdcasey!)
Engine Updates and Fixes
- Fix native executables not redirecting to file (#19842)
- Add a new experimental feature to control native argument passing style on Windows (#18706)
- Fix
TabExpansion2
variable leak when completing variables (#18763) (Thanks @MartinGC94!) - Enable completion of variables across ScriptBlock scopes (#19819) (Thanks @MartinGC94!)
- Fix completion of the
foreach
statement variable (#19814) (Thanks @MartinGC94!) - Fix variable type inference precedence (#18691) (Thanks @MartinGC94!)
- Fix member completion for PowerShell Enum class (#19740) (Thanks @MartinGC94!)
- Fix parsing for array literals in index expressions in method calls (#19224) (Thanks @MartinGC94!)
- Fix incorrect string to type conversion (#19560) (Thanks @MartinGC94!)
- Fix slow execution when many breakpoints are used (#14953) (Thanks @nohwnd!)
- Add a public API for getting locations of
PSModulePath
elements (#19422) - Add WDAC Audit logging (#19641)
- Improve path completion (#19489) (Thanks @MartinGC94!)
- Fix an indexing out of bound error in
CompleteInput
for empty script input (#19501) (Thanks @MartinGC94!) - Improve variable completion performance (#19595) (Thanks @MartinGC94!)
- Allow partial culture matching in
Update-Help
(#18037) (Thanks @dkaszews!) - Fix the check when reading input in
NativeCommandProcessor
(#19614) - Add support of respecting
$PSStyle.OutputRendering
on the remote host (#19601) - Support byte stream piping between native commands and file redirection (#17857)
General Cmdlet Updates and Fixes
- Disallow negative values for
Get-Content
cmdlet parameters-Head
and-Tail
(#19715) (Thanks @CarloToso!) - Make
Update-Help
throw proper error when current culture is not associated with a language (#19765) (Thanks @josea!) - Do not require activity when creating a completed progress record (#18474) (Thanks @MartinGC94!)
- WebCmdlets: Add alias for
-TimeoutSec
to-ConnectionTimeoutSeconds
and add-OperationTimeoutSeconds
(#19558) (Thanks @stevenebutler!) - Avoid checking screen scraping on non-Windows platforms before launching native app (#19812)
- Add reference to PSResourceGet (#19597)
- Add
FileNameStar
toMultipartFileContent
in WebCmdlets (#19467) (Thanks @CarloToso!) - Add
ParameterSetName
for the-Detailed
parameter ofTest-Connection
(#19727) - Remove the property disabling optimization (#19701)
- Filter completion for enum parameter against
ValidateRange
attributes (#17750) (Thanks @fflaten!) - Small cleanup
Invoke-RestMethod
(#19490) (Thanks @CarloToso!) - Fix wildcard globbing in root of device paths (#19442) (Thanks @MartinGC94!)
- Add specific error message that creating Junctions requires absolute path (#19409)
- Fix array type parsing in generic types (#19205) (Thanks @MartinGC94!)
- Improve the verbose message of WebCmdlets to show correct HTTP version (#19616) (Thanks @CarloToso!)
- Fix HTTP status from 409 to 429 for WebCmdlets to get retry interval from Retry-After header. (#19622) (Thanks @mkht!)
- Remove minor versions from
PSCompatibleVersions
(#18635) (Thanks @xtqqczze!) - Update
JsonSchema.Net
version to 4.1.0 (#19610) (Thanks @gregsdennis!) - Allow combining of
-Skip
and-SkipLast
parameters inSelect-Object
cmdlet. (#18849) (Thanks @ArmaanMcleod!) - Fix constructing
PSModulePath
if a sub-path has trailing separator (#13147) - Add
Get-SecureRandom
cmdlet (#19587) - Fix
New-Item
to re-createJunction
when-Force
is specified (#18311) (Thanks @GigaScratch!) - Improve Hashtable key completion for type constrained variable assignments, nested Hashtables and more (#17660) (Thanks @MartinGC94!)
Set-Clipboard -AsOSC52
for remote usage (#18222) (Thanks @dkaszews!)- Refactor
MUIFileSearcher.AddFiles
in the help related code (#18825) (Thanks @xtqqczze!) - Set
SetLastError
totrue
for symbolic and hard link native APIs (#19566) - Fix
Get-AuthenticodeSignature -Content
to not roundtrip the bytes to a Unicode string and then back to bytes (#18774) (Thanks @jborean93!) - WebCmdlets: Rename
-TimeoutSec
to-ConnectionTimeoutSeconds
(with alias) and add-OperationTimeoutSeconds
(#19558) (Thanks @stevenebutler!)
Code Cleanup
We thank the following contributors!
@eltociear, @ArmaanMcleod, @turbedi, @CarloToso, @Molkree, @xtqqczze
- Fix typo in
NativeCommandProcessor.cs
(#19846) (Thanks @eltociear!) - Rename file from
PingPathCommand.cs
toTestPathCommand.cs
(#19782) (Thanks @ArmaanMcleod!) - Make use of the new
Random.Shared
property (#18417) (Thanks @turbedi!) - six files (#19695) (Thanks @CarloToso!)
- Apply IDE0019:
InlineAsTypeCheck
in Microsoft.PowerShell.Commands (#19688)(#19690)(#19687)(#19689) (Thanks @Molkree!) - Remove
PSv2CompletionCompleter
as part of the PowerShell v2 code cleanup (#18337) (Thanks @xtqqczze!) - Enable more nullable annotations in WebCmdlets (#19359) (Thanks @CarloToso!)
Tools
- Add Git mailmap for Andy Jordan (#19469)
- Add backport function to release tools (#19568)
Tests
- Improve reliability of the
Ctrl+c
tests for WebCmdlets (#19532) (Thanks @stevenebutler!) - Fix logic for
Import-CliXml
test (#19805) - Add some debugging to the transcript test for
SilentlyContinue
(#19770) - Re-enable
Get-ComputerInfo
pending tests (#19746) - Update syslog parser to handle modern formats. (#19737)
- Pass
-UserScope
as required byRunUpdateHelpTests
(#13400) (Thanks @yecril71pl!) - Change how
isPreview
is determined for default cmdlets tests (#19650) - Skip file signature tests on 2012R2 where PKI cmdlet do not work (#19643)
- Change logic for testing missing or extra cmdlets. (#19635)
- Fix incorrect test cases in
ExecutionPolicy.Tests.ps1
(#19485) (Thanks @xtqqczze!) - Fixing structure typo in test setup (#17458) (Thanks @powercode!)
- Fix test failures on Windows for time zone and remoting (#19466)
- Harden 'All approved Cmdlets present' test (#19530)
Build and Packaging Improvements
Updated to .NET 8 Preview 4
We thank the following contributors!
@krishnayalavarthi
- Update to the latest NOTICES file (#19537)(#19820)(#19784)(#19720)(#19644)(#19620)(#19605)(#19546)
- Bump Microsoft.NET.Test.Sdk from 17.5.0 to 17.6.3 (#19867)(#19762)(#19733)(#19668)(#19613)
- Update the cgmanifest (#19847)(#19800)(#19792)(#19776)(#19763)(#19697)(#19631)
- Bump StyleCop.Analyzers from 1.2.0-beta.406 to 1.2.0-beta.507 (#19837)
- Bump Microsoft.CodeAnalysis.CSharp from 4.6.0-1.final to 4.7.0-2.final (#19838)(#19667)
- Update to .NET 8 Preview 4 (#19696)
- Update experimental-feature json files (#19828)
- Bump JsonSchema.Net from 4.1.1 to 4.1.5 (#19790)(#19768)(#19788)
- Update group to assign PRs in
fabricbot.json
(#19759) - Add retry on failure for all upload tasks in Azure Pipelines (#19761)
- Bump Microsoft.PowerShell.MarkdownRender from 7.2.0 to 7.2.1 (#19751)(#19752)
- Delete symbols on Linux as well (#19735)
- Update
windows.json
packaging BOM (#19728) - Disable SBOM signing for CI and add extra files for packaging tests (#19729)
- Update experimental-feature json files (#19698(#19588))
- Add ProductCode in registry for MSI install (#19590)
- Runas format changed (#15434) (Thanks @krishnayalavarthi!)
- For Preview releases, add
pwsh-preview.exe
alias to MSIX package (#19602) - Add prompt to fix conflict during backport (#19583)
- Add comment in wix detailing use of
UseMU
(#19371) - Verify that packages have license data (#19543)
- Add an explicit manual stage for changelog update (#19551)
- Update the team member list in
releaseTools.psm1
(#19544)
Documentation and Help Content
- Update
metadata.json
andREADME.md
for upcoming releases (#19863)(#19542) - Update message to use the actual parameter name (#19851)
- Update
CONTRIBUTING.md
to include Code of Conduct enforcement (#19810) - Update
working-group-definitions.md
(#19809)(#19561) - Update
working-group.md
to add section about reporting working group members (#19758) - Correct capitalization in readme (#19666) (Thanks @Aishat452!)
- Updated the public dashboard link (#19634)
- Fix a typo in
serialization.cs
(#19598) (Thanks @eltociear!)
7.4.0-preview.3 - 2023-04-20
Breaking Changes
- Remove code related to
#requires -pssnapin
(#19320)
Engine Updates and Fixes
- Change the arrow used in feedback suggestion to a more common Unicode character (#19534)
- Support trigger registration in feedback provider (#19525)
- Update the
ICommandPredictor
interface to reduce boilerplate code from predictor implementation (#19414) - Fix a crash in the type inference code (#19400) (Thanks @MartinGC94!)
Performance
- Speed up
Resolve-Path
relative path resolution (#19171) (Thanks @MartinGC94!)
General Cmdlet Updates and Fixes
- Infer external application output as strings (#19193) (Thanks @MartinGC94!)
- Fix a race condition in
Add-Type
(#19471) - Detect insecure
https-to-http
redirect only if both URIs are absolute (#19468) (Thanks @CarloToso!) - Support
Ctrl+c
when connection hangs while reading data in WebCmdlets (#19330) (Thanks @stevenebutler!) - Enable type conversion of
AutomationNull
to$null
for assignment (#19415) - Add the parameter
-Environment
toStart-Process
(#19374) - Add the parameter
-RelativeBasePath
toResolve-Path
(#19358) (Thanks @MartinGC94!) - Exclude redundant parameter aliases from completion results (#19382) (Thanks @MartinGC94!)
- Allow using a folder path in WebCmdlets'
-OutFile
parameter (#19007) (Thanks @CarloToso!)
Code Cleanup
We thank the following contributors!
@eltociear, @CarloToso
- Fix typo in
typeDataXmlLoader.cs
(#19319) (Thanks @eltociear!) - Fix typo in
Compiler.cs
(#19491) (Thanks @eltociear!) - Inline the
GetResponseObject
method (#19380) (Thanks @CarloToso!) - Simplify
ContentHelper
methods (#19367) (Thanks @CarloToso!) - Initialize regex lazily in
BasicHtmlWebResponseObject
(#19361) (Thanks @CarloToso!) - Fix codefactor issue in if-statement (part 5) (#19286) (Thanks @CarloToso!)
- Add nullable annotations in
WebRequestSession.cs
(#19291) (Thanks @CarloToso!)
Tests
- Harden the default command test (#19416)
- 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)
Build and Packaging Improvements
We thank the following contributors!
@dkattan
- Fixing MSI checkbox (#19325)
- Update the experimental feature JSON files (#19297)
- Update the cgmanifest (#19459, #19465)
- Update .NET SDK version to
8.0.100-preview.3.23178.7
(#19381) - Force updating the transitive dependency on
Microsoft.CSharp
(#19514) - Update
DotnetRuntimeMetadata.json
to consume the .NET 8.0.0-preview.3 release (#19529) - Move PSGallery sync to a pool (#19523)
- Fix the regex used for package name check in vPack build (#19511)
- Make the vPack PAT library more obvious (#19505)
- Change
Microsoft.CodeAnalysis.CSharp
back to 4.5.0 (#19464) (Thanks @dkattan!) - Update to the latest NOTICES file (#19332)
- Add
PoolNames
variable group to compliance pipeline (#19408) - Fix stage dependencies and typo in release build (#19353)
- Fix issues in release build and release pipeline (#19338)
7.4.0-preview.2 - 2023-03-14
Breaking Changes
- Update some PowerShell APIs to throw
ArgumentException
instead ofArgumentNullException
when the argument is an empty string (#19215) (Thanks @xtqqczze!) - Add the parameter
-ProgressAction
to the common parameters (#18887)
Engine Updates and Fixes
- Fix
PlainText
output to correctly remove theReset
VT sequence without number (#19283) - Fix
ConciseView
to handle customParserError
error records (#19239) - Fix
VtSubstring
helper method to correctly check characters copied (#19240) - Update the
FeedbackProvider
interface to return structured data (#19133) - Make the exception error in PowerShell able to associate with the right history entry (#19095)
- Fix for JEA session leaking functions (#19024)
- Add WDAC events and system lockdown notification (#18893)
- Fix support for nanoserver due to lack of AMSI (#18882)
Performance
- Use interpolated strings (#19002)(#19003)(#18977)(#18980)(#18996)(#18979)(#18997)(#18978)(#18983)(#18992)(#18993)(#18985)(#18988) (Thanks @CarloToso!)
General Cmdlet Updates and Fixes
- Fix completion for
PSCustomObject
variable properties (#18682) (Thanks @MartinGC94!) - Improve type inference for
Get-Random
(#18972) (Thanks @MartinGC94!) - Make
-Encoding
parameter able to takeANSI
encoding in PowerShell (#19298) (Thanks @CarloToso!) - Telemetry improvements for tracking experimental feature opt out (#18762)
- Support HTTP persistent connections in Web Cmdlets (#19249) (Thanks @stevenebutler!)
- Fix using XML
-Body
in webcmdlets without an encoding (#19281) (Thanks @CarloToso!) - Add the
Statement
property to$MyInvocation
(#19027) (Thanks @IISResetMe!) - Fix
Start-Process
-Wait
with-Credential
(#19096) (Thanks @jborean93!) - Adjust
PUT
method behavior toPOST
one for default content type in WebCmdlets (#19152) (Thanks @CarloToso!) - Improve verbose message in web cmdlets when content length is unknown (#19252) (Thanks @CarloToso!)
- Preserve
WebSession.MaximumRedirection
from changes (#19190) (Thanks @CarloToso!) - Take into account
ContentType
from Headers in WebCmdlets (#19227) (Thanks @CarloToso!) - Use C# 11 UTF-8 string literals (#19243) (Thanks @turbedi!)
- Add property assignment completion for enums (#19178) (Thanks @MartinGC94!)
- Fix class member completion for classes with base types (#19179) (Thanks @MartinGC94!)
- Add
-Path
and-LiteralPath
parameters toTest-Json
cmdlet (#19042) (Thanks @ArmaanMcleod!) - Allow to preserve the original HTTP method by adding
-PreserveHttpMethodOnRedirect
to Web cmdlets (#18894) (Thanks @CarloToso!) - Webcmdlets display an error on HTTPS to http redirect (#18595) (Thanks @CarloToso!)
- Build the relative URI for links from the response in
Invoke-WebRequest
(#19092) (Thanks @CarloToso!) - Fix redirection for
-CustomMethod
POST
in WebCmdlets (#19111) (Thanks @CarloToso!) - Dispose previous response in Webcmdlets (#19117) (Thanks @CarloToso!)
- Improve
Invoke-WebRequest
XML and json errors format (#18837) (Thanks @CarloToso!) - Fix error formatting to remove the unneeded leading newline for concise view (#19080)
- Add
-NoHeader
parameter toConvertTo-Csv
andExport-Csv
cmdlets (#19108) (Thanks @ArmaanMcleod!) - Fix
Start-Process -Credential -Wait
to work on Windows (#19082) - Add
ValidateNotNullOrEmpty
toOutFile
andInFile
parameters of WebCmdlets (#19044) (Thanks @CarloToso!) - Correct spelling of "custom" in event (#19059) (Thanks @spaette!)
- Ignore expected error for file systems not supporting alternate streams (#19065)
- Adding missing guard for telemetry opt out to avoid
NullReferenceException
when importing modules (#18949) (Thanks @powercode!) - Fix progress calculation divide by zero in Copy-Item (#19038)
- Add progress to
Copy-Item
(#18735) - WebCmdlets parse XML declaration to get encoding value, if present. (#18748) (Thanks @CarloToso!)
HttpKnownHeaderNames
update headers list (#18947) (Thanks @CarloToso!)- Fix bug with managing redirection and
KeepAuthorization
in Web cmdlets (#18902) (Thanks @CarloToso!) - Fix
Get-Error
to work with strict mode (#18895) - Add
AllowInsecureRedirect
switch to Web cmdlets (#18546) (Thanks @CarloToso!) Invoke-RestMethod
-FollowRelLink
fix links containing commas (#18829) (Thanks @CarloToso!)- Prioritize the default parameter set when completing positional arguments (#18755) (Thanks @MartinGC94!)
- Add
-CommandWithArgs
parameter to pwsh (#18726) - Enable creating composite subsystem implementation in modules (#18888)
- Fix
Format-Table -RepeatHeader
for property derived tables (#18870) - Add
StatusCode
toHttpResponseException
(#18842) (Thanks @CarloToso!) - Fix type inference for all scope variables (#18758) (Thanks @MartinGC94!)
- Add completion for Using keywords (#16514) (Thanks @MartinGC94!)
Code Cleanup
We thank the following contributors!
@CarloToso, @iSazonov, @xtqqczze, @turbedi, @syntax-tm, @eltociear, @ArmaanMcleod
- Small cleanup in the WebCmdlet code (#19299) (Thanks @CarloToso!)
- Remove unused GUID detection code from console host (#18871) (Thanks @iSazonov!)
- Fix
CodeFactor
issues in the code base - part 4 (#19270) (Thanks @CarloToso!) - Fix codefactor if part 3 (#19269) (Thanks @CarloToso!)
- Fix codefactor if part 2 (#19267) (Thanks @CarloToso!)
- Fix codefactor if part 1 (#19266) (Thanks @CarloToso!)
- Remove comment and simplify condition in WebCmdlets (#19251) (Thanks @CarloToso!)
- Small style changes (#19241) (Thanks @CarloToso!)
- Use
ArgumentException.ThrowIfNullOrEmpty
as appropriate [part 1] (#19215) (Thanks @xtqqczze!) - Use
using
variable to reduce the nested level (#19229) (Thanks @CarloToso!) - Use
ArgumentException.ThrowIfNullOrEmpty()
in more places (#19213) (Thanks @CarloToso!) - Replace
BitConverter.ToString
withConvert.ToHexString
where appropriate (#19216) (Thanks @turbedi!) - Replace
Requires.NotNullOrEmpty(string)
withArgumentException.ThrowIfNullOrEmpty
(#19197) (Thanks @xtqqczze!) - Use
ArgumentOutOfRangeException.ThrowIfNegativeOrZero
when applicable (#19201) (Thanks @xtqqczze!) - Use
CallerArgumentExpression
onRequires.NotNull
(#19200) (Thanks @xtqqczze!) - Revert a few change to not use 'ArgumentNullException.ThrowIfNull' (#19151)
- Corrected some minor spelling mistakes (#19176) (Thanks @syntax-tm!)
- Fix a typo in
InitialSessionState.cs
(#19177) (Thanks @eltociear!) - Fix a typo in
pwsh
help content (#19153) - Revert comment changes in
WebRequestPSCmdlet.Common.cs
(#19136) (Thanks @CarloToso!) - Small cleanup webcmdlets (#19128) (Thanks @CarloToso!)
- Merge partials in
WebRequestPSCmdlet.Common.cs
(#19126) (Thanks @CarloToso!) - Cleanup WebCmdlets comments (#19124) (Thanks @CarloToso!)
- Added minor readability and refactoring fixes to
Process.cs
(#19123) (Thanks @ArmaanMcleod!) - Small changes in Webcmdlets (#19109) (Thanks @CarloToso!)
- Rework
SetRequestContent
in WebCmdlets (#18964) (Thanks @CarloToso!) - Small cleanup WebCmdlets (#19030) (Thanks @CarloToso!)
- Update additional interpolated string changes (#19029)
- Revert some of the interpolated string changes (#19018)
- Cleanup
StreamHelper.cs
,WebRequestPSCmdlet.Common.cs
andInvokeRestMethodCommand.Common.cs
(#18950) (Thanks @CarloToso!) - Small cleanup common code of webcmdlets (#18946) (Thanks @CarloToso!)
- Simplification of
GetHttpMethod
andHttpMethod
in WebCmdlets (#18846) (Thanks @CarloToso!) - Fix typo in
ModuleCmdletBase.cs
(#18933) (Thanks @eltociear!) - Fix regression in
RemoveNulls
(#18881) (Thanks @iSazonov!) - Replace all
NotNull
withArgumentNullException.ThrowIfNull
(#18820) (Thanks @CarloToso!) - Cleanup
InvokeRestMethodCommand.Common.cs
(#18861) (Thanks @CarloToso!)
Tools
- Add a Mariner install script (#19294)
- Add tool to trigger license information gathering for NuGet modules (#18827)
Tests
- Update and enable the test for the type of
$input
(#18968) (Thanks @MartinGC94!) - Increase the timeout for creating the
WebListener
(#19268) - Increase the timeout when waiting for the event log (#19264)
- Add Windows ARM64 CI (#19040)
- Change test so output does not include newline (#19026)
- Allow system lock down test debug hook to work with new WLDP API (#18962)
- Add tests for
Allowinsecureredirect
parameter in Web cmdlets (#18939) (Thanks @CarloToso!) - Enable
get-help
pattern tests on Unix (#18855) (Thanks @xtqqczze!) - Create test to check if WebCmdlets decompress brotli-encoded data (#18905) (Thanks @CarloToso!)
Build and Packaging Improvements
We thank the following contributors!
@bergmeister, @xtqqczze
- Restructure the package build to simplify signing and packaging stages (#19321)
- Bump
Microsoft.CodeAnalysis.CSharp
from4.4.0
to4.6.0-2.23152.6
(#19306)(#19233) - Test fixes for stabilizing tests (#19068)
- Bump
Newtonsoft.Json
from13.0.2
to13.0.3
(#19290)(#19289) - Fix mariner sudo detection (#19304)
- Add stage for symbols job in Release build (#18937)
- Bump .NET to Preview 2 version (#19305)
- Move workflows that create PRs to private repo (#19276)
- Use reference assemblies generated by dotnet (#19302)
- Update the cgmanifest (#18814)(#19165)(#19296)
- Always regenerate files WXS fragment (#19196)
- MSI installer: Add checkbox and MSI property DISABLE_TELEMETRY to optionally disable telemetry. (#10725) (Thanks @bergmeister!)
- Add
-Force
toMove-Item
to fix the GitHub workflow (#19262) - Update and remove outdated docs to fix the URL link checks (#19261)
- Bump
Markdig.Signed
from0.30.4
to0.31.0
(#19232) - Add pattern to replace for reference API generation (#19214)
- Split test artifact build into windows and non-windows (#19199)
- Set
LangVersion
compiler option to11.0
(#18877) (Thanks @xtqqczze!) - Update to .NET 8 preview 1 build (#19194)
- Simplify Windows Packaging CI Trigger YAML (#19160)
- Bump
Microsoft.NET.Test.Sdk
from17.4.0
to17.5.0
(#18823)(#19191) - Add URL for all distributions (#19159)
- Bump
Microsoft.Extensions.ObjectPool
from7.0.1
to7.0.3
(#18925)(#19155) - Add verification of R2R at packaging (#19129)
- Allow cross compiling windows (#19119)
- Update CodeQL build agent (#19113)
- Bump
XunitXml.TestLogger
from3.0.70
to3.0.78
(#19066) - Bump
Microsoft.CodeAnalysis.Analyzers
from3.3.3
to3.3.4
(#18975) - Bump
BenchmarkDotNet
to0.13.3
(#18878) (Thanks @xtqqczze!) - Bump
Microsoft.PowerShell.Native
from7.4.0-preview.1
to7.4.0-preview.2
(#18910) - Add checks for Windows 8.1 and Server 2012 in the MSI installer (#18904)
- Update build to include
WinForms
/WPF
in all Windows builds (#18859)
Documentation and Help Content
- Update to the latest NOTICES file (#19169)(#19309)(#19086)(#19077)
- Update supported distros in readme (#18667) (Thanks @techguy16!)
- Remove the 'Code Coverage Status' badge (#19265)
- Pull in changelogs for
v7.2.10
andv7.3.3
releases (#19219) - Update tools
metadata
andREADME
(#18831)(#19204)(#19014) - Update a broken link in the
README.md
(#19187) - Fix typos in comments (#19064) (Thanks @spaette!)
- Add
7.2
and7.3
changelogs (#19025) - typos (#19058) (Thanks @spaette!)
- Fix typo in
dotnet-tools/README.md
(#19021) (Thanks @spaette!) - Fix up all comments to be in the proper order with proper spacing (#18619)
- Changelog for
v7.4.0-preview.1
release (#18835)
7.4.0-preview.1 - 2022-12-20
Engine Updates and Fixes
- Add Instrumentation to
AmsiUtil
and make the init variable readonly (#18727) - Fix typo in
OutOfProcTransportManager.cs
(#18766) (Thanks @eltociear!) - Allow non-default encodings to be used in user's script/code (#18605)
- Add
Dim
andDimOff
to$PSStyle
(#18653) - Change
exec
from alias to function to handle arbitrary arguments (#18567) - The command prefix should also be in the error color for
NormalView
(#18555) - Skip cloud files marked as "not on disk" during command discovery (#18152)
- Replace
UTF8Encoding(false)
withEncoding.Default
(#18356) (Thanks @xtqqczze!) - Fix
Switch-Process
to settermios
appropriate for child process (#18467) - On Unix, only explicitly terminate the native process if not in background (#18215)
- Treat
[NullString]::Value
as the string type when resolving methods (#18080) - Improve pseudo binding for dynamic parameters (#18030) (Thanks @MartinGC94!)
- Make experimental feature
PSAnsiRenderingFileInfo
stable (#18042) - Update to use version
2.21.0
of Application Insights. (#17903) - Do not preserve temporary results when no need to do so (#17856)
Performance
- Remove some static constants from
Utils.Separators
(#18154) (Thanks @iSazonov!) - Avoid using regular expression when unnecessary in
ScriptWriter
(#18348) - Use source generator for
PSVersionInfo
to improve startup time (#15603) (Thanks @iSazonov!) - Skip evaluating suggestions at startup (#18232)
- Avoid using
Regex
when not necessary (#18210)
General Cmdlet Updates and Fixes
- Update to use
ComputeCore.dll
for PowerShell Direct (#18194) - Replace
ArgumentNullException(nameof())
withArgumentNullException.ThrowIfNull()
(#18792)(#18784) (Thanks @CarloToso!) - Remove
TabExpansion
from remote session configuration (#18795) (Internal 23331) - WebCmdlets get Retry-After from headers if status code is 429 (#18717) (Thanks @CarloToso!)
- Implement
SupportsShouldProcess
inStop-Transcript
(#18731) (Thanks @JohnLBevan!) - Fix
New-Item -ItemType Hardlink
to resolve target to absolute path and not allow link to itself (#18634) - Add output types to Format commands (#18746) (Thanks @MartinGC94!)
- Fix the process
CommandLine
on Linux (#18710) (Thanks @jborean93!) - Fix
SuspiciousContentChecker.Match
to detect a predefined string when the text starts with it (#18693) - Switch
$PSNativeCommandUseErrorActionPreference
to$true
when feature is enabled (#18695) - Fix
Start-Job
to check the existence of working directory using the PowerShell way (#18675) - Webcmdlets add 308 to redirect codes and small cleanup (#18536) (Thanks @CarloToso!)
- Ensure
HelpInfo.Category
is consistently a string (#18254) - Remove
gcloud
from the legacy list because it's resolved to a .ps1 script (#18575) - Add
gcloud
andsqlcmd
to list to use legacy argument passing (#18559) - Fix native access violation (#18545) (#18547) (Thanks @chrullrich!)
- Fix issue when completing the first command in a script with an empty array expression (#18355) (Thanks @MartinGC94!)
- Improve type inference of hashtable keys (#17907) (Thanks @MartinGC94!)
- Fix
Switch-Process
to copy the current env to the new process (#18452) - Fix
Switch-Process
error to include the command that is not found (#18443) - Update
Out-Printer
to remove all decorating ANSI escape sequences from PowerShell formatting (#18425) - Web cmdlets set default charset encoding to
UTF8
(#18219) (Thanks @CarloToso!) - Fix incorrect cmdlet name in the script used by
Restart-Computer
(#18374) (Thanks @urizen-source!) - Add the function
cd~
(#18308) (Thanks @GigaScratch!) - Fix type inference error for empty return statements (#18351) (Thanks @MartinGC94!)
- Fix the exception reporting in
ConvertFrom-StringData
(#18336) (Thanks @GigaScratch!) - Implement
IDisposable
inNamedPipeClient
(#18341) (Thanks @xtqqczze!) - Replace command-error suggestion with new implementation based on subsystem plugin (#18252)
- Remove the
ProcessorArchitecture
portion from the full name as it's obsolete (#18320) - Make the fuzzy searching flexible by passing in the fuzzy matcher (#18270)
- Add
-FuzzyMinimumDistance
parameter toGet-Command
(#18261) - Improve startup time by triggering initialization of additional types on background thread (#18195)
- Fix decompression in web cmdlets (#17955) (Thanks @iSazonov!)
- Add
CustomTableHeaderLabel
formatting to differentiate table header labels that are not property names (#17346) - Remove the extra new line form List formatting (#18185)
- Minor update to the
FileInfo
table formatting on Unix to make it more concise (#18183) - Fix Parent property on processes with complex name (#17545) (Thanks @jborean93!)
- Make PowerShell class not affiliate with
Runspace
when declaring theNoRunspaceAffinity
attribute (#18138) - Complete the progress bar rendering in
Invoke-WebRequest
when downloading is complete or cancelled (#18130) - Display download progress in human readable format for
Invoke-WebRequest
(#14611) (Thanks @bergmeister!) - Update
WriteConsole
to not usestackalloc
for buffer with too large size (#18084) - Filter out compiler generated types for
Add-Type -PassThru
(#18095) - Fixing
CA2014
warnings and removing the warning suppression (#17982) (Thanks @creative-cloud!) - Make experimental feature
PSNativeCommandArgumentPassing
stable (#18044) - Make experimental feature
PSAMSIMethodInvocationLogging
stable (#18041) - Handle
PSObject
argument specially in method invocation logging (#18060) - Fix typos in
EventResource.resx
(#18063) (Thanks @eltociear!) - Make experimental feature
PSRemotingSSHTransportErrorHandling
stable (#18046) - Make experimental feature
PSExec
stable (#18045) - Make experimental feature
PSCleanBlock
stable (#18043) - Fix error formatting to use color defined in
$PSStyle.Formatting
(#17987) - Remove unneeded use of
chmod 777
(#17974) - Support mapping foreground/background
ConsoleColor
values to VT escape sequences (#17938) - Make
pwsh
server modes implicitly not show banner (#17921) - Add output type attributes for
Get-WinEvent
(#17948) (Thanks @MartinGC94!) - Remove 1 second minimum delay in
Invoke-WebRequest
for small files, and prevent file-download-error suppression. (#17896) (Thanks @AAATechGuy!) - Add completion for values in comparisons when comparing Enums (#17654) (Thanks @MartinGC94!)
- Fix positional argument completion (#17796) (Thanks @MartinGC94!)
- Fix member completion in attribute argument (#17902) (Thanks @MartinGC94!)
- Throw when too many parameter sets are defined (#17881) (Thanks @fflaten!)
- Limit searching of
charset
attribute inmeta
tag for HTML to first 1024 characters in webcmdlets (#17813) - Fix
Update-Help
failing silently with implicit non-US culture. (#17780) (Thanks @dkaszews!) - Add the
ValidateNotNullOrWhiteSpace
attribute (#17191) (Thanks @wmentha!) - Improve enumeration of inferred types in pipeline (#17799) (Thanks @MartinGC94!)
Code Cleanup
We thank the following contributors!
@MartinGC94, @CarloToso, @iSazonov, @xtqqczze, @turbedi, @trossr32, @eltociear, @AtariDreams, @jborean93
- Add TSAUpload for APIScan (#18446)
- Use Pattern matching in
ast.cs
(#18794) (Thanks @MartinGC94!) - Cleanup
webrequestpscmdlet.common.cs
(#18596) (Thanks @CarloToso!) - Unify
CreateFile
pinvoke
in SMA (#18751) (Thanks @iSazonov!) - Cleanup
webresponseobject.common
(#18785) (Thanks @CarloToso!) InvokeRestMethodCommand.Common
cleanup and merge partials (#18736) (Thanks @CarloToso!)- Replace
GetDirectories
inCimDscParser
(#14319) (Thanks @xtqqczze!) - WebResponseObject.Common merge partials atomic commits (#18703) (Thanks @CarloToso!)
- Enable pending test for
Start-Process
(#18724) (Thanks @iSazonov!) - Remove one CreateFileW (#18732) (Thanks @iSazonov!)
- Replace
DllImport
withLibraryImport
for WNetAddConnection2 (#18721) (Thanks @iSazonov!) - Use File.OpenHandle() instead CreateFileW pinvoke (#18722) (Thanks @iSazonov!)
- Replace DllImport with LibraryImport for WNetGetConnection (#18690) (Thanks @iSazonov!)
- Replace
DllImport
withLibraryImport
- 1 (#18603) (Thanks @iSazonov!) - Replace DllImport with LibraryImport in SMA 3 (#18564) (Thanks @iSazonov!)
- Replace
DllImport
withLibraryImport
in SMA - 7 (#18594) (Thanks @iSazonov!) - Use static
DateTime.UnixEpoch
andRandomNumberGenerator.Fill()
(#18621) (Thanks @turbedi!) - Rewrite Get-FileHash to use static HashData methods (#18471) (Thanks @turbedi!)
- Replace DllImport with LibraryImport in SMA 8 (#18599) (Thanks @iSazonov!)
- Replace DllImport with LibraryImport in SMA 4 (#18579) (Thanks @iSazonov!)
- Remove NativeCultureResolver as dead code (#18582) (Thanks @iSazonov!)
- Replace DllImport with LibraryImport in SMA 6 (#18581) (Thanks @iSazonov!)
- Replace DllImport with LibraryImport in SMA 2 (#18543) (Thanks @iSazonov!)
- Use standard SBCS detection (#18593) (Thanks @iSazonov!)
- Remove unused pinvokes in RemoteSessionNamedPipe (#18583) (Thanks @iSazonov!)
- Replace DllImport with LibraryImport in SMA 5 (#18580) (Thanks @iSazonov!)
- Remove SafeRegistryHandle (#18597) (Thanks @iSazonov!)
- Remove
ArchitectureSensitiveAttribute
from the code base (#18598) (Thanks @iSazonov!) - Build COM adapter only on Windows (#18590)
- Include timer instantiation for legacy telemetry in conditional compiler statements in Get-Help (#18475) (Thanks @trossr32!)
- Convert
DllImport
toLibraryImport
for recycle bin, clipboard, and computerinfo cmdlets (#18526) - Replace DllImport with LibraryImport in SMA 1 (#18520) (Thanks @iSazonov!)
- Replace DllImport with LibraryImport in engine (#18496)
- Fix typo in InitialSessionState.cs (#18435) (Thanks @eltociear!)
- Remove remaining unused strings from resx files (#18448)
- Use new LINQ Order() methods instead of OrderBy(static x => x) (#18395) (Thanks @turbedi!)
- Make use of StringSplitOptions.TrimEntries when possible (#18412) (Thanks @turbedi!)
- Replace some
string.Join(string)
calls withstring.Join(char)
(#18411) (Thanks @turbedi!) - Remove unused strings from FileSystem and Registry providers (#18403)
- Use generic
GetValues<T>
,GetNames<T>
enum methods (#18391) (Thanks @xtqqczze!) - Remove unused resource strings from
SessionStateStrings
(#18394) - Remove unused resource strings in
System.Management.Automation
(#18388) - Use
Enum.HasFlags
part 1 (#18386) (Thanks @xtqqczze!) - Remove unused strings from parser (#18383)
- Remove unused strings from Utility module (#18370)
- Remove unused console strings (#18369)
- Remove unused strings from
ConsoleInfoErrorStrings.resx
(#18367) - Code cleanup in
ContentHelper.Common.cs
(#18288) (Thanks @CarloToso!) - Remove
FusionAssemblyIdentity
andGlobalAssemblyCache
as they are not used (#18334) (Thanks @iSazonov!) - Remove some static initializations in
StringManipulationHelper
(#18243) (Thanks @xtqqczze!) - Use
MemoryExtensions.IndexOfAny
inPSv2CompletionCompleter
(#18245) (Thanks @xtqqczze!) - Use
MemoryExtensions.IndexOfAny
inWildcardPattern
(#18242) (Thanks @xtqqczze!) - Small cleanup of the stub code (#18301) (Thanks @CarloToso!)
- Fix typo in
RemoteRunspacePoolInternal.cs
(#18263) (Thanks @eltociear!) - Some more code cleanup related to the use of
PSVersionInfo
(#18231) - Use
MemoryExtensions.IndexOfAny
inSessionStateInternal
(#18244) (Thanks @xtqqczze!) - Use overload APIs that take
char
instead ofstring
when it's possible (#18179) (Thanks @iSazonov!) - Replace
UTF8Encoding(false)
withEncoding.Default
(#18144) (Thanks @xtqqczze!) - Remove unused variables (#18058) (Thanks @AtariDreams!)
- Fix typo in PowerShell.Core.Instrumentation.man (#17963) (Thanks @eltociear!)
- Migrate
WinTrust
functions to a common location (#17598) (Thanks @jborean93!)
Tools
- Add a function to get the PR Back-port report (#18299)
- Add a workaround in automatic rebase workflow to continue on error (#18176)
- Update list of PowerShell team members in release tools (#17909)
- Don't block if we fail to create the comment (#17869)
Tests
- Add
testexe.exe -echocmdline
to output raw command-line received by the process on Windows (#18591) - Mark charset test as pending (#18511)
- Skip output rendering tests on Windows Server 2012 R2 (#18382)
- Increase timeout to make subsystem tests more reliable (#18380)
- Add missing -Tag 'CI' to describe blocks. (#18316)
- Use short path instead of multiple quotes in
Get-Item
test relying on node (#18250) - Replace the CIM class used for
-Amended
parameter test (#17884) (Thanks @sethvs!) - Stop ongoing progress-bar in
Write-Progress
test (#17880) (Thanks @fflaten!)
Build and Packaging Improvements
We thank the following contributors!
- Fix reference assembly generation logic for
Microsoft.PowerShell.Commands.Utility
(#18818) - Update the cgmanifest (#18676)(#18521)(#18415)(#18408)(#18197)(#18111)(#18051)(#17913)(#17867)(#17934)(#18088)
- Bump
Microsoft.PowerShell.Native
to the latest preview versionv7.4.0-preview.1
(#18805) - Remove unnecessary reference to
System.Runtime.CompilerServices.Unsafe
(#18806) - Update the release tag in
metadata.json
for next preview (#18799) - Bump Microsoft.CodeAnalysis.NetAnalyzers (#18750)
- Bump .NET SDK to version
7.0.101
(#18786) - Bump
cirrus-actions/rebase
from 1.7 to 1.8 (#18788) - Bump
decode-uri-component
from 0.2.0 to 0.2.2 (#18712) - Bump Microsoft.CodeAnalysis.CSharp from 4.4.0-4.final to 4.4.0 (#18562)
- Bump Newtonsoft.Json from 13.0.1 to 13.0.2 (#18657)
- Apply expected file permissions to Linux files after Authenticode signing (#18643)
- Remove extra quotes after agent moves to pwsh 7.3 (#18577)
- Don't install based on build-id for RPM (#18560)
- Bump Microsoft.NET.Test.Sdk from 17.3.2 to 17.4.0 (#18487)
- Bump
minimatch
from 3.0.4 to 3.1.2 (#18514) - Avoid depending on the pre-generated experimental feature list in private and CI builds (#18484)
- Update
release-MsixBundle.yml
to add retries (#18465) - Bump System.Data.SqlClient from 4.8.4 to 4.8.5 in /src/Microsoft.PowerShell.SDK (#18515)
- Bump to use internal .NET 7 GA build (#18508)
- Insert the pre-release nuget feed before building test artifacts (#18507)
- Add test for framework dependent package in release pipeline (#18506) (Internal 23139)
- Update to azCopy 10 (#18509)
- Fix issues with uploading changelog to GitHub release draft (#18504)
- Bump Microsoft.CodeAnalysis.NetAnalyzers (#18442)
- Add authenticode signing for assemblies on linux builds (#18440)
- Do not remove
penimc_cor3.dll
from build (#18438) - Bump
Microsoft.PowerShell.Native
from 7.3.0-rc.1 to 7.3.0 (#18405) - Allow two-digit revisions in
vPack
package validation pattern (#18392) - Bump
Microsoft.CodeAnalysis.NetAnalyzers
(#18363) - Bump to .NET 7 RC2 official version (#18328)
- Bump to .NET 7 to version
7.0.100-rc.2.22477.20
(#18286) - Replace win7 runtime with win8 and remove APISets (#18304)
- Bump Microsoft.CodeAnalysis.NetAnalyzers (#18312)
- Recurse the file listing. (#18277)
- Create tasks to collect and publish hashes for build files. (#18276)
- Bump Microsoft.CodeAnalysis.NetAnalyzers (#18262)
- Remove ETW trace collection and uploading for CLR CAP (#18253)
- Do not cleanup
pwsh.deps.json
for framework dependent packages (#18226) - Add branch counter to APIScan build (#18214)
- Remove unnecessary native dependencies from the package (#18213)
- Remove XML files for min-size package (#18189)
- Bump Microsoft.CodeAnalysis.NetAnalyzers (#18216)
- Bump
Microsoft.PowerShell.Native
from7.3.0-preview.1
to7.3.0-rc.1
(#18217) - Bump Microsoft.CodeAnalysis.NetAnalyzers (#18201)
- Move ApiScan to compliance build (#18191)
- Fix the verbose message when using
dotnet-install.sh
(#18184) - Bump Microsoft.NET.Test.Sdk from 17.3.1 to 17.3.2 (#18163)
- Bump Microsoft.CodeAnalysis.NetAnalyzers (#18164)
- Make the link to minimal package blob public during release (#18158)
- Bump
Microsoft.CodeAnalysis.NetAnalyzers
(#18147) - Update MSI exit message (#18137)
- Bump Microsoft.CodeAnalysis.CSharp from 4.4.0-1.final to 4.4.0-2.final (#18132)
- Re-enable building with Ready-to-Run (#18105)
- Update
DotnetRuntimeMetadata.json
for .NET 7 RC1 build (#18091) - Bump
Microsoft.CodeAnalysis.NetAnalyzers
(#18096) - Add schema for cgmanifest.json (#18036)
- Bump
Microsoft.CodeAnalysis.CSharp
from 4.3.0-3.final to 4.3.0 (#18012) - Add XML reference documents to NuPkg files for SDK (#17997)
- Bump Microsoft.NET.Test.Sdk from 17.3.0 to 17.3.1 (#18000)
- Bump
Microsoft.CodeAnalysis.NetAnalyzers
(#17988) - Bump Microsoft.CodeAnalysis.NetAnalyzers (#17983)
- Bump Microsoft.CodeAnalysis.NetAnalyzers (#17945)
- Make sure
Security.types.ps1xml
gets signed in release build (#17916) - Make Register Microsoft Update timeout (#17910)
- Merge changes from v7.0.12 v7.2.6 and v7.3.0-preview.7
- Bump Microsoft.NET.Test.Sdk from 17.2.0 to 17.3.0 (#17871)
Documentation and Help Content
- Update readme and metadata for releases (#18780)(#18493)(#18393)(#18332)(#18128)(#17870)
- Remove 'please' and 'Core' from README.md per MS style guide (#18578) (Thanks @Rick-Anderson!)
- Change unsupported XML documentation tag (#18608)
- Change public API mention of
monad
to PowerShell (#18491) - Update security reporting policy to recommend security portal for more streamlined reporting (#18437)
- Changelog for v7.3.0 (#18505) (Internal 23161)
- Replace
msh
in public API comment based documentation with PowerShell equivalent (#18483) - Add missing XML doc elements for methods in
RunspaceFactory
(#18450) - Changelog for
v7.3.0-rc.1
(#18400) - Update changelogs for
v7.2.7
andv7.0.13
(#18342) - Update the changelog for v7.3.0-preview.8 (#18136)
- Add the
ConfigurationFile
option to the PowerShell help content (#18093) - Update help content about the PowerShell flag
-NonInteractive
(#17952)