PowerShell/CHANGELOG/preview.md
Robert Holt 88d28cb878 Merged PR 13877: Add CHANGELOG for 7.2.0-preview.2
Add CHANGELOG for 7.2.0-preview.2
2020-12-15 21:09:53 +00:00

20 KiB

Current preview release

7.2.0-preview.2 - 2020-12-15

Breaking Changes

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

Experimental Features

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

Performance

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

General Cmdlet Updates and Fixes

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

Code Cleanup

We thank the following contributors!

@xtqqczze, @matthewjdegarmo, @powercode, @Gimly

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

Tools

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

Tests

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

Build and Packaging Improvements

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

Documentation and Help Content

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

7.2.0-preview.1 - 2020-11-17

Engine Updates and Fixes

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

General Cmdlet Updates and Fixes

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

Code Cleanup

We thank the following contributors!

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

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

Tools

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

Build and Packaging Improvements

We thank the following contributors!

@mkswd, @xtqqczze

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

Documentation and Help Content

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