88d28cb878
Add CHANGELOG for 7.2.0-preview.2
20 KiB
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 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 repo (#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!)