Change log#
See upgrade notes for helpful information when upgrading from previous versions.
Important notes:
- Several options have been renamed and the old names will be removed in v3. See deprecations for details.
- 
Several properties of rule and language block elements will be removed from v3. See deprecations for details. 
Experimental features:
- Baseline groups allow you to use a friendly name to reference baselines. See baselines for more information.
- Functions within YAML and JSON expressions can be used to perform manipulation prior to testing a condition. See functions for more information.
- Sub-selectors within YAML and JSON expressions can be used to filter rules and list properties. See sub-selectors for more information.
- 
Processing of changes files only within a pipeline. See creating your pipeline for more information. 
Attention
We are currently working towards the next release of PSRule. For more information see v3 release notes. Please check out our upgrade notes to get prepared for upgrading to the latest version.
v2.9.0#
What's changed since release v2.8.1:
- New features:- Added sub-selector quantifiers for allOforanyOfoperators by @BernieWhite. #1423- Quantifiers allow you to specify the number of matches with count,less,lessOrEqual,greater, orgreaterOrEqual.
- See Sub-selectors for more information.
 
- Quantifiers allow you to specify the number of matches with 
- Added support for new functions by @BernieWhite.
  #1422- Added support for padLeft, andpadRight.
 
- Added support for 
- Experimental: Added support for baseline groups by @BernieWhite.
  #1541- Baseline groups allow you to reference a baseline by a friendly name.
- Update the baseline group to point to a new baseline.
- Currently only a single baseline can be referenced by a baseline group.
- See baselines for more information.
 
 
- Added sub-selector quantifiers for 
- General improvements:- Added style and improved handling for restore command by @BernieWhite. #1152
- Important change: Rename of execution options by @BernieWhite.
  #1456- Renamed options allow configuration of output level as Ignore,Warn,Error, orDebug.
- Execution.AliasReferenceWarningis replaced with- Execution.AliasReference.
- Execution.InconclusiveWarningis replaced with- Execution.RuleInconclusive.
- Execution.InvariantCultureWarningis replaced with- Execution.InvariantCulture.
- Execution.NotProcessedWarningis replaced with- Execution.UnprocessedObject.
- Deprecated AliasReferenceWarningoption, which will be removed in v3.
- Deprecated InconclusiveWarningoption, which will be removed in v3.
- Deprecated InvariantCultureWarningoption, which will be removed in v3.
- Deprecated NotProcessedWarningoption, which will be removed in v3.
 
- Renamed options allow configuration of output level as 
- Improved schema display names by @BernieWhite. #1488
 
- Engineering:
- Bug fixes:
What's changed since pre-release v2.9.0-B0068:
- No additional changes.
v2.9.0-B0068 (pre-release)#
What's changed since pre-release v2.9.0-B0033:
- New features:- Experimental: Added support for baseline groups by @BernieWhite.
  #1541- Baseline groups allow you to reference a baseline by a friendly name.
- Update the baseline group to point to a new baseline.
- Currently only a single baseline can be referenced by a baseline group.
- See baselines for more information.
 
 
- Experimental: Added support for baseline groups by @BernieWhite.
  #1541
- General improvements:- Added style and improved handling for restore command by @BernieWhite. #1152
 
- Engineering:
- Bug fixes:- Fixed include local not automatically being enabled for default module baseline by @BernieWhite. #1506
 
v2.9.0-B0033 (pre-release)#
What's changed since pre-release v2.9.0-B0013:
- New features:- Added sub-selector quantifiers for allOforanyOfoperators by @BernieWhite. #1423- Quantifiers allow you to specify the number of matches with count,less,lessOrEqual,greater, orgreaterOrEqual.
- See Sub-selectors for more information.
 
- Quantifiers allow you to specify the number of matches with 
- Added support for new functions by @BernieWhite.
  #1422- Added support for padLeft, andpadRight.
 
- Added support for 
 
- Added sub-selector quantifiers for 
v2.9.0-B0013 (pre-release)#
What's changed since release v2.8.1:
- General improvements:- Important change: Rename of execution options by @BernieWhite.
  #1456- Renamed options allow configuration of output level as Ignore,Warn,Error, orDebug.
- Execution.AliasReferenceWarningis replaced with- Execution.AliasReference.
- Execution.InconclusiveWarningis replaced with- Execution.RuleInconclusive.
- Execution.InvariantCultureWarningis replaced with- Execution.InvariantCulture.
- Execution.NotProcessedWarningis replaced with- Execution.UnprocessedObject.
- Deprecated AliasReferenceWarningoption, which will be removed in v3.
- Deprecated InconclusiveWarningoption, which will be removed in v3.
- Deprecated InvariantCultureWarningoption, which will be removed in v3.
- Deprecated NotProcessedWarningoption, which will be removed in v3.
 
- Renamed options allow configuration of output level as 
- Improved schema display names by @BernieWhite. #1488
 
- Important change: Rename of execution options by @BernieWhite.
  #1456
- Engineering:
- Bug fixes:
v2.8.1#
What's changed since release v2.8.0:
- Bug fixes:
v2.8.0#
What's changed since release v2.7.0:
- General improvements:- Important change: Replaced SuppressedRuleWarningexecution option withRuleSuppressedby @BernieWhite. #1456- Improved options for output of suppressed rules with RuleSuppressedoption.
- Deprecated SuppressedRuleWarningoption, which will be removed in v3.
 
- Improved options for output of suppressed rules with 
- Added support for logging excluded rules by @BernieWhite.
  #1432- Configure Execution.RuleExcludedto control output level of excluded rules asIgnore,Warn,Error, orDebug.
 
- Configure 
- Added additional options to schema for PSRule for Azure by @BernieWhite. #1446
- Improved error message for failing to read options file by @BernieWhite. #1433
- Added support for import within initialize block by @BernieWhite. #1448
- Added support for direct typing on import by @BernieWhite.
  #1449- Use the $PSRule.ImportWithTypemethod to import an object with a specific type.
 
- Use the 
- Added support for case sensitivity matching with matchandnotMatchexpressions by @BernieWhite. #1480
 
- Important change: Replaced 
- Engineering:- Bump Pester to v5.4.0. #1414 Bump Microsoft.CodeAnalysis.Common to v4.4.0. #1341
- Bump BenchmarkDotNet to v0.13.5. #1413
- Bump BenchmarkDotNet.Diagnostics.Windows to v0.13.5. #1413
- Bump Microsoft.NET.Test.Sdk to v17.5.0. #1442
- Bump Newtonsoft.Json to v13.0.3. #1467
- Bump Microsoft.CodeAnalysis.NetAnalyzers to v7.0.1. #1468
 
- Bug fixes:- Fixes handling of numerics in tests for that are impacted by regional format by @BernieWhite. #1405
- Fixed no output with using job summary with as summary by @BernieWhite.
  #1483- Fixed output and added error for unsupported scenarios.
 
- Fixed LocalizedData is not exposed to if pre-conditions by @BernieWhite. #1083
- Fixed LocalizedData is not exposed to conventions by @BernieWhite. #1477
- Fixed problem binding when not set locally by @BernieWhite. #1473
 
What's changed since pre-release v2.8.0-B0171:
- No additional changes.
v2.8.0-B0171 (pre-release)#
What's changed since pre-release v2.8.0-B0121:
- General improvements:- Added support for case sensitivity matching with matchandnotMatchexpressions by @BernieWhite. #1480
 
- Added support for case sensitivity matching with 
- Bug fixes:- Fixed no output with using job summary with as summary by @BernieWhite.
  #1483- Fixed output and added error for unsupported scenarios.
 
 
- Fixed no output with using job summary with as summary by @BernieWhite.
  #1483
v2.8.0-B0121 (pre-release)#
What's changed since pre-release v2.8.0-B0076:
- Bug fixes:
v2.8.0-B0076 (pre-release)#
What's changed since pre-release v2.8.0-B0034:
- Engineering:
- Bug fixes:- Fixed problem binding when not set locally by @BernieWhite. #1473
 
v2.8.0-B0034 (pre-release)#
What's changed since v2.7.0:
- General improvements:- Important change: Replaced SuppressedRuleWarningexecution option withRuleSuppressedby @BernieWhite. #1456- Improved options for output of suppressed rules with RuleSuppressedoption.
- Deprecated SuppressedRuleWarningoption, which will be removed in v3.
 
- Improved options for output of suppressed rules with 
- Added support for logging excluded rules by @BernieWhite. #1432
- Added additional options to schema for PSRule for Azure by @BernieWhite. #1446
- Improved error message for failing to read options file by @BernieWhite. #1433
- Added support for import within initialize block by @BernieWhite. #1448
- Added support for direct typing on import by @BernieWhite.
  #1449- Use the $PSRule.ImportWithTypemethod to import an object with a specific type.
 
- Use the 
 
- Important change: Replaced 
- Engineering:
- Bug fixes:- Fixes handling of numerics in tests for that are impacted by regional format by @BernieWhite. #1405
 
v2.7.0#
What's changed since v2.6.0:
- New features:
- General improvements:- Added support target scope by @BernieWhite. #1350
- Added support for hasValueexpression withscopeby @BernieWhite. #1382
- Return target object scope as an array by @BernieWhite. #1383
- Improve support of string comparisons to support an array of strings by @BernieWhite. #1384
- Added help properties to rules from YAML/ JSON resources by @BernieWhite. #1386
 
- Engineering:
- Bug fixes:- Fixed exception with comments in JSON baselines by @BernieWhite. #1336
- Fixed handling of constrained language mode with PowerShell 7.3 by @BernieWhite. #1348
- Fixed exception calling RuleSourcevalue cannot be null by @BernieWhite. #1343
- Fixed null reference for link property by @BernieWhite. #1393
- Fixed reason are emitted for pre-condition sub-selectors by @BernieWhite. #1394
- Fixed CLI failed to load required assemblies by @BernieWhite. #1361
- Fixed CLI ignores modules specified in Include.Modulesby @BernieWhite. #1362
- Fixed job summary directory creation by @BernieWhite. #1353
- Fixed same key for ref and name by @BernieWhite #1354
- Fixed object path fails to iterate JSON object with wildcard selector by @BernieWhite. #1376
- Fixed rule annotations are not included from YAML/ JSON definition by @BernieWhite. #1378
- Fixed loop stuck parsing JSON allOfnotrule condition by @BernieWhite. #1370
- Fixed handling of uint64 with LessOrEqualassertion method by @BernieWhite. #1366
 
What's changed since pre-release v2.7.0-B0126:
- No additional changes.
v2.7.0-B0126 (pre-release)#
What's changed since pre-release v2.7.0-B0097:
- Bug fixes:
v2.7.0-B0097 (pre-release)#
What's changed since pre-release v2.7.0-B0070:
- General improvements:- Added support for hasValueexpression withscopeby @BernieWhite. #1382
- Return target object scope as an array by @BernieWhite. #1383
- Improve support of string comparisons to support an array of strings by @BernieWhite. #1384
- Added help properties to rules from YAML/ JSON resources by @BernieWhite. #1386
 
- Added support for 
- Engineering:
v2.7.0-B0070 (pre-release)#
What's changed since pre-release v2.7.0-B0049:
- Bug fixes:
v2.7.0-B0049 (pre-release)#
What's changed since pre-release v2.7.0-B0031:
- Bug fixes:
v2.7.0-B0031 (pre-release)#
What's changed since pre-release v2.7.0-B0016:
- New features:
- Bug fixes:
v2.7.0-B0016 (pre-release)#
What's changed since pre-release v2.7.0-B0006:
- Bug fixes:
v2.7.0-B0006 (pre-release)#
What's changed since pre-release v2.7.0-B0001:
- General improvements:- Added support target scope by @BernieWhite. #1350
 
- Bug fixes:
v2.7.0-B0001 (pre-release)#
What's changed since v2.6.0:
- Bug fixes:- Fixed exception calling RuleSourcevalue cannot be null by @BernieWhite. #1343
 
- Fixed exception calling 
v2.6.0#
What's changed since v2.5.3:
- New features:- Added support for generating job summaries by @BernieWhite.
  #1264- Job summaries provide a markdown output for pipelines in addition to other supported output formats.
- To use, configure the Output.JobSummaryPathoption.
 
- Added support for time bound suppression groups by @BernieWhite.
  #1335- Suppression groups can be configured to expire after a specified time by setting the spec.expiresOnproperty.
- When a suppression group expires, the suppression group will generate a warning by default.
- Configure the Execution.SuppressionGroupExpiredoption to ignore or error on expired suppression groups.
 
- Suppression groups can be configured to expire after a specified time by setting the 
 
- Added support for generating job summaries by @BernieWhite.
  #1264
- Engineering:
What's changed since pre-release v2.6.0-B0034:
- No additional changes.
v2.6.0-B0034 (pre-release)#
What's changed since pre-release v2.6.0-B0013:
- New features:- Added support for generating job summaries by @BernieWhite.
  #1264- Job summaries provide a markdown output for pipelines in addition to other supported output formats.
- To use, configure the Output.JobSummaryPathoption.
 
- Added support for time bound suppression groups by @BernieWhite.
  #1335- Suppression groups can be configured to expire after a specified time by setting the spec.expiresOnproperty.
- When a suppression group expires, the suppression group will generate a warning by default.
- Configure the Execution.SuppressionGroupExpiredoption to ignore or error on expired suppression groups.
 
- Suppression groups can be configured to expire after a specified time by setting the 
 
- Added support for generating job summaries by @BernieWhite.
  #1264
- Engineering:- Bump Microsoft.NET.Test.Sdk to v17.4.0. #1331
 
v2.6.0-B0013 (pre-release)#
What's changed since v2.5.3:
- Engineering:
v2.5.3#
What's changed since v2.5.2:
- Bug fixes:- Fixed incorrect XML header for encoding by @BernieWhite. #1322
 
v2.5.2#
What's changed since v2.5.1:
- Bug fixes:- Fixed NUnit output does not escape characters in all result properties by @BernieWhite. #1316
 
v2.5.1#
What's changed since v2.5.0:
- Bug fixes:- Fixed Inwith array source object and dot object path by @BernieWhite. #1314
 
- Fixed 
v2.5.0#
What's changed since v2.4.2:
- New features:- Experimental: Added support for only processing changed files by @BernieWhite.
  #688- To ignore unchanged files, set the Input.IgnoreUnchangedPathoption totrue.
- See creating your pipeline for more information.
 
- To ignore unchanged files, set the 
 
- Experimental: Added support for only processing changed files by @BernieWhite.
  #688
- General improvements:- Added labels metadata from grouping and filtering rules by @BernieWhite.
  #1272- Labels are metadata that extends on tags to provide a more structured way to group rules.
- Rules can be classified by setting the metadata.labelsproperty or-Labelsparameter.
 
- Provide unblock for command line tools by @BernieWhite. #1261
 
- Added labels metadata from grouping and filtering rules by @BernieWhite.
  #1272
- Engineering:- Bump Microsoft.NET.Test.Sdk to v17.3.1. #1248
 
- Bug fixes:
What's changed since pre-release v2.5.0-B0080:
- No additional changes.
v2.5.0-B0080 (pre-release)#
What's changed since pre-release v2.5.0-B0045:
- Bug fixes:- Fixed exception with PathExpressionBuilder.GetAllRecurseby @BernieWhite. #1301
 
- Fixed exception with 
v2.5.0-B0045 (pre-release)#
What's changed since pre-release v2.5.0-B0015:
- New features:- Experimental: Added support for only processing changed files by @BernieWhite.
  #688- To ignore unchanged files, set the Input.IgnoreUnchangedPathoption totrue.
- See creating your pipeline for more information.
 
- To ignore unchanged files, set the 
 
- Experimental: Added support for only processing changed files by @BernieWhite.
  #688
- General improvements:- Added labels metadata from grouping and filtering rules by @BernieWhite.
  #1272- Labels are metadata that extends on tags to provide a more structured way to group rules.
- Rules can be classified by setting the metadata.labelsproperty or-Labelsparameter.
 
 
- Added labels metadata from grouping and filtering rules by @BernieWhite.
  #1272
- Bug fixes:
v2.5.0-B0015 (pre-release)#
What's changed since pre-release v2.5.0-B0004:
- General improvements:- Provide unblock for command line tools by @BernieWhite. #1261
 
v2.5.0-B0004 (pre-release)#
What's changed since v2.4.0:
- Engineering:- Bump Microsoft.NET.Test.Sdk to v17.3.1. #1248
 
- Bug fixes:
v2.4.2#
What's changed since v2.4.1:
- Bug fixes:- Fixed exception with PathExpressionBuilder.GetAllRecurseby @BernieWhite. #1301
 
- Fixed exception with 
v2.4.1#
What's changed since v2.4.0:
- Bug fixes:
v2.4.0#
What's changed since v2.3.2:
- New features:- Experimental: Added support for functions within YAML and JSON expressions by @BernieWhite.
  #1227
  #1016- Added conversion functions boolean,string, andinteger.
- Added lookup functions configuration, andpath.
- Added string functions concat,substring.
- See functions for more information.
 
- Added conversion functions 
- Experimental: Added support for sub-selector YAML and JSON expressions by @BernieWhite.
  #1024
  #1045- Sub-selector pre-conditions add an additional expression to determine if a rule is executed.
- Sub-selector object filters provide an way to filter items from list properties.
- See sub-selectors for more information.
 
 
- Experimental: Added support for functions within YAML and JSON expressions by @BernieWhite.
  #1227
  #1016
- Engineering:- Improvements to PSRule engine API documentation by @BernieWhite. #1186
- Updates to PSRule engine API by @BernieWhite.
  #1152- Added tool support for baselines parameter.
- Added module path discovery.
- Added output for verbose and debug messages.
 
- Bump support projects to .NET 6 by @BernieWhite. #1209
- Bump Microsoft.NET.Test.Sdk to v17.3.0. #1213
- Bump BenchmarkDotNet to v0.13.2. #1241
- Bump BenchmarkDotNet.Diagnostics.Windows to v0.13.2. #1242
 
- Bug fixes:- Fixed reporting of duplicate identifiers which were not generating an error for all cases by @BernieWhite.
  #1229- Added Execution.DuplicateResourceIdoption to configure PSRule behaviour.
- By default, duplicate resource identifiers return an error.
 
- Added 
- Fixed exception on JSON baseline without a synopsis by @BernieWhite. #1230
- Fixed repository information not in output by @BernieWhite. #1219
 
- Fixed reporting of duplicate identifiers which were not generating an error for all cases by @BernieWhite.
  #1229
What's changed since pre-release v2.4.0-B0091:
- No additional changes.
v2.4.0-B0091 (pre-release)#
What's changed since pre-release v2.4.0-B0063:
- Engineering:
v2.4.0-B0063 (pre-release)#
What's changed since pre-release v2.4.0-B0039:
- New features:- Experimental: Added support for sub-selector YAML and JSON expressions by @BernieWhite.
  #1024
  #1045- Sub-selector pre-conditions add an additional expression to determine if a rule is executed.
- Sub-selector object filters provide an way to filter items from list properties.
- See sub-selectors for more information.
 
 
- Experimental: Added support for sub-selector YAML and JSON expressions by @BernieWhite.
  #1024
  #1045
- Engineering:- Improvements to PSRule engine API documentation by @BernieWhite. #1186
 
v2.4.0-B0039 (pre-release)#
What's changed since pre-release v2.4.0-B0022:
- New features:
- Bug fixes:- Fixed reporting of duplicate identifiers which were not generating an error for all cases by @BernieWhite.
  #1229- Added Execution.DuplicateResourceIdoption to configure PSRule behaviour.
- By default, duplicate resource identifiers return an error.
 
- Added 
- Fixed exception on JSON baseline without a synopsis by @BernieWhite. #1230
 
- Fixed reporting of duplicate identifiers which were not generating an error for all cases by @BernieWhite.
  #1229
v2.4.0-B0022 (pre-release)#
What's changed since pre-release v2.4.0-B0009:
- Engineering:- Updates to PSRule engine API by @BernieWhite.
  #1152- Added tool support for baselines parameter.
- Added module path discovery.
- Added output for verbose and debug messages.
 
 
- Updates to PSRule engine API by @BernieWhite.
  #1152
v2.4.0-B0009 (pre-release)#
What's changed since v2.3.2:
- Engineering:
- Bug fixes:- Fixed repository information not in output by @BernieWhite. #1219
 
v2.3.2#
What's changed since v2.3.1:
- Bug fixes:- Fixes lost scope for rules by @BernieWhite. #1214
 
v2.3.1#
What's changed since v2.3.0:
- Bug fixes:- Fixed object path join handling of self path identifier by @BernieWhite. #1204
 
v2.3.0#
What's changed since v2.2.0:
- General improvements:- Added PathPrefixmethod to add an object path prefix to assertion reasons by @BernieWhite. #1198
- Added support for binding with JSON objects by @BernieWhite. #1182
- Added support for full path from JSON objects by @BernieWhite. #1174
- Improved reporting of full object path from pre-processed results by @BernieWhite. #1169
- Added PSRule for Azure expansion configuration to options schema by @BernieWhite. #1149
 
- Added 
- Engineering:- Bump xunit to v2.4.2. #1200
- Expose online link extension method by @BernieWhite. #1195
- Added comment documentation to .NET classes and interfaces by @BernieWhite. #1186
- Added publishing support for NuGet symbol packages @BernieWhite. #1173
- Updated outcome option docs by @BernieWhite. #1166
- Bump Sarif.Sdk to v2.4.16. #1177
- Refactoring and updates to interfaces to allow use outside of PowerShell by @BernieWhite. #1152
 
- Bug fixes:- Fixes JSON parsing of string array for single objects by @BernieWhite. #1193
- Fixed handling for JSON objects in rules by @BernieWhite. #1187
- Fixed null object reference for object equity comparison by @BernieWhite. #1157
- Fixed expression evaluation not logging debug output when using the -Debugswitch by @BernieWhite. #1158
- Fixed startIndex cannot be larger than length of string by @BernieWhite. #1160
- Fixed path within SDK package causes psd1to compile by @BernieWhite. #1146
 
What's changed since pre-release v2.3.0-B0163:
- No additional changes.
v2.3.0-B0163 (pre-release)#
What's changed since pre-release v2.3.0-B0130:
- General improvements:- Added PathPrefixmethod to add an object path prefix to assertion reasons by @BernieWhite. #1198
 
- Added 
- Engineering:- Bump xunit to v2.4.2. #1200
 
v2.3.0-B0130 (pre-release)#
What's changed since pre-release v2.3.0-B0100:
- Engineering:- Expose online link extension method by @BernieWhite. #1195
 
- Bug fixes:- Fixes JSON parsing of string array for single objects by @BernieWhite. #1193
 
v2.3.0-B0100 (pre-release)#
What's changed since pre-release v2.3.0-B0074:
- Engineering:- Added comment documentation to .NET classes and interfaces by @BernieWhite. #1186
 
- Bug fixes:- Fixed handling for JSON objects in rules by @BernieWhite. #1187
 
v2.3.0-B0074 (pre-release)#
What's changed since pre-release v2.3.0-B0051:
- General improvements:- Added support for binding with JSON objects by @BernieWhite. #1182
 
v2.3.0-B0051 (pre-release)#
What's changed since pre-release v2.3.0-B0030:
- General improvements:- Added support for full path from JSON objects by @BernieWhite. #1174
 
- Engineering:
v2.3.0-B0030 (pre-release)#
What's changed since pre-release v2.3.0-B0015:
- General improvements:- Improved reporting of full object path from pre-processed results by @BernieWhite. #1169
 
v2.3.0-B0015 (pre-release)#
What's changed since pre-release v2.3.0-B0006:
- Bug fixes:
v2.3.0-B0006 (pre-release)#
What's changed since pre-release v2.3.0-B0001:
- General improvements:- Added PSRule for Azure expansion configuration to options schema by @BernieWhite. #1149
 
- Engineering:- Refactoring and updates to interfaces to allow use outside of PowerShell by @BernieWhite. #1152
 
v2.3.0-B0001 (pre-release)#
What's changed since v2.2.0:
- Bug fixes:- Fixed path within SDK package causes psd1to compile by @BernieWhite. #1146
 
- Fixed path within SDK package causes 
v2.2.0#
What's changed since v2.1.0:
- New features:- Added notCountexpression and assertion helper by @ArmaanMcleod. #1091
 
- Added 
- General improvements:- Improved reporting of the object path that caused rule failures by @BernieWhite.
  #1092- Output include a new Detailproperty with details of the reason and the object path.
- Custom methods ReasonFromandReasonIfaccept apathparameter to specify the object path.
 
- Output include a new 
- Added informational message when output has been written to disk by @BernieWhite.
  #1074- The Output.Footeroption now supportsOutputFilewhich reports the output file path. This is enabled by default.
 
- The 
- Added descendant selector to object path syntax by @BernieWhite.
  #1133- Use ..to traverse into child objects, for example$..namefinds names for all nested objects.
 
- Use 
 
- Improved reporting of the object path that caused rule failures by @BernieWhite.
  #1092
- Engineering:- Bump Newtonsoft.Json to 13.0.1. #1137
- Added more object path tests by @ArmaanMcleod. #1110
- Bump xunit.runner.visualstudio to 2.4.5. #1084
- Bump Pester to 5.3.3. #1079
- Bump Microsoft.NET.Test.Sdk to 17.2.0. #1089
- Added NuGet packaging publishing by @BernieWhite. #1093
- Updated NuGet packaging metadata by @BernieWhite. #1093
 
- Bug fixes:- Fixed output of reason with wide format by @BernieWhite. #1117
- Fixed piped input does not respect excluded paths by @BernieWhite.
  #1114- By default, objects are not excluded by source.
- To exclude piped input based on source configure the Input.IgnoreObjectSourceoption.
 
- Fixed issue building a PSRule project by removing PSRule.psd1 from compile target by @BernieWhite. #1140
- Fixed grouping of logical operators in object path by @BernieWhite. #1101
 
What's changed since pre-release v2.2.0-B0175:
- No additional changes.
v2.2.0-B0175 (pre-release)#
What's changed since pre-release v2.2.0-B0131:
- Bug fixes:- Fixed issue building a PSRule project by removing PSRule.psd1 from compile target by @BernieWhite. #1140
 
v2.2.0-B0131 (pre-release)#
What's changed since pre-release v2.2.0-B0089:
- General improvements:- Added descendant selector to object path syntax by @BernieWhite.
  #1133- Use ..to traverse into child objects, for example$..namefinds names for all nested objects.
 
- Use 
 
- Added descendant selector to object path syntax by @BernieWhite.
  #1133
- Engineering:- Bump Newtonsoft.Json to 13.0.1. #1137
 
v2.2.0-B0089 (pre-release)#
What's changed since pre-release v2.2.0-B0052:
- General improvements:- Improved reporting of the object path that caused rule failures by @BernieWhite.
  #1092- Output include a new Detailproperty with details of the reason and the object path.
- Custom methods ReasonFromandReasonIfaccept apathparameter to specify the object path.
 
- Output include a new 
 
- Improved reporting of the object path that caused rule failures by @BernieWhite.
  #1092
v2.2.0-B0052 (pre-release)#
What's changed since pre-release v2.2.0-B0021:
- General improvements:- Added informational message when output has been written to disk by @BernieWhite.
  #1074- The Output.Footeroption now supportsOutputFilewhich reports the output file path. This is enabled by default.
 
- The 
 
- Added informational message when output has been written to disk by @BernieWhite.
  #1074
- Engineering:- Added more object path tests by @ArmaanMcleod. #1110
 
- Bug fixes:
v2.2.0-B0021 (pre-release)#
What's changed since v2.1.0:
- New features:- Added notCountexpression and assertion helper by @ArmaanMcleod. #1091
 
- Added 
- Engineering:
- Bug fixes:- Fixed grouping of logical operators in object path by @BernieWhite. #1101
 
v2.1.0#
What's changed since v2.0.1:
- General improvements:- Added notStartsWith,notEndsWith, andnotContainsexpressions and assertion helpers. #1047
- Added like,notLikeexpressions and assertion helpers. #1048
- Added additional repository paths to ignore by default. #1043
- Added custom suppression message during PSRule runs. #1046- When a rule is suppressed using a suppression group the synopsis is shown in the suppression warning.
- Configure the suppression group synopsis to display a custom message.
- Suppression groups synopsis can be localized using markdown documentation.
- Use markdown to set a culture specific synopsis.
- Custom suppression messages are not supported when suppressing individual rules using ps-rule.yaml.
- See about_PSRule_SuppressionGroups for details.
 
- Added source support for string conditions. #1068
 
- Added 
- Engineering:
- Bug fixes:- Important change: Fixed source scope not updated in multi-module runs. #1053- Several properties of rule and language block elements have been renamed to improve consistency.
- From v3 custom scripts may not work correctly until you update these names.
- For details on the updated property names see deprecations.
 
 
- Important change: Fixed source scope not updated in multi-module runs. #1053
What's changed since pre-release v2.1.0-B0069:
- No additional changes.
v2.1.0-B0069 (pre-release)#
What's changed since pre-release v2.1.0-B0040:
- General improvements:
- Engineering:- Bump Sarif.Sdk to 2.4.15. #1075
 
v2.1.0-B0040 (pre-release)#
What's changed since pre-release v2.1.0-B0015:
- General improvements:- Added custom suppression message during PSRule runs. #1046- When a rule is suppressed using a suppression group the synopsis is shown in the suppression warning.
- Configure the suppression group synopsis to display a custom message.
- Suppression groups synopsis can be localized using markdown documentation.
- Use markdown to set a culture specific synopsis.
- Custom suppression messages are not supported when suppressing individual rules using ps-rule.yaml.
- See about_PSRule_SuppressionGroups for details.
 
- Added source support for string conditions. #1068
 
- Added custom suppression message during PSRule runs. #1046
- Engineering:
- Bug fixes:- Important change: Fixed source scope not updated in multi-module runs. #1053- Several properties of rule and language block elements have been renamed to improve consistency.
- From v3 custom scripts may not work correctly until you update these names.
- For details on the updated property names see deprecations.
 
 
- Important change: Fixed source scope not updated in multi-module runs. #1053
v2.1.0-B0015 (pre-release)#
What's changed since v2.0.1:
v2.0.1#
What's changed since v2.0.0:
- Bug fixes:
v2.0.0#
What's changed since v1.11.1:
- New features:- Add support for suppression groups. #793- New SuppressionGroupresource has been included.
- See about_PSRule_SuppressionGroups for details.
 
- New 
- Added source expression property. #933- Included the following expressions:- source
- withinPath
- notWithinPath
 
 
- Included the following expressions:
- Added support for rule severity level. #880- Rules can be configured to be Error,Warning, orInformation.
- Failing rules with the Errorseverity level will cause the pipeline to fail.
- Rules with the Warningseverity level will be reported as warnings.
- Rules with the Informationseverity level will be reported as informational messages.
- By default, the severity level for a rule is Error.
 
- Rules can be configured to be 
- Added expression support for type based assertions. #908- Included the following expressions:- IsArray
- IsBoolean
- IsDateTime
- IsInteger
- IsNumeric
 
 
- Included the following expressions:
- Added support for formatting results as SARIF. #878- Set Output.FormattoSarifto output results in the SARIF format.
- See about_PSRule_Options for details.
 
- Set 
 
- Add support for suppression groups. #793
- General improvements:- Add option to disable invariant culture warning. #899- Added Execution.InvariantCultureWarningoption.
- See about_PSRule_Options for details.
 
- Added 
- Added support for object path expressions. #808 #693- Inspired by JSONPath, object path expressions can be used to access nested objects.
- Array members can be filtered and enumerated using object path expressions.
- Object path expressions can be used in YAML, JSON, and PowerShell rules and selectors.
- See about_PSRule_Assert for details.
 
- Improve tracking of suppressed objects. #794- Added Execution.SuppressedRuleWarningoption to output warning for suppressed rules.
 
- Added 
- Added support for rule aliases. #792- Aliases allow rules to be references by an alternative name.
- When renaming rules, add a rule alias to avoid breaking references to the old rule name.
- To specify an alias use the -Aliasparameter oraliasmetadata property in YAML or JSON.
 
- Added support for stable identifiers with rule refs. #881- A rule ref may be optionally be used to reference a rule.
- Rule refs should be: stable, not changing between releases; opaque, as opposed to being a human-readable string. Stable and opaque refs ease web lookup and to help to avoid language difficulties.
- To specify a rule ref use the -Refparameter orrefmetadata property in YAML or JSON.
 
- Added new properties for module lookup to SARIF results. #951
- Capture and output repository info in Assert-PSRule runs. #978- Added Repository.Urloption set repository URL reported in output.
- Repository URL is detected automatically for GitHub Actions and Azure Pipelines.
- Added RepositoryInfotoOutput.Banneroption.
- Repository info is shown by default.
 
- Added 
- Added convertandcaseSensitiveto string comparison expressions. #1001- The following expressions support type conversion and case-sensitive comparison.- startsWith,- contains, and- endsWith.
- equalsand- notEquals.
 
 
- The following expressions support type conversion and case-sensitive comparison.
- Added convertto numeric comparison expressions. #943- Type conversion is now supported for less,lessOrEquals,greater, andgreaterOrEquals.
 
- Type conversion is now supported for 
- Added Extentproperty on rules reported byGet-PSRule. #990- Extent provides the line and position of the rule in the source code.
 
- Breaking change: Added validation of resource names. #1012- Invalid rules names will now produce a specific error.
- See upgrade notes for more information.
 
 
- Add option to disable invariant culture warning. #899
- Engineering:- Breaking change: Removal of deprecated default baseline from module manifest. #755- Set the default module baseline using module configuration.
- See upgrade notes for details.
 
- Breaking change: Require apiVersionon YAML and JSON to be specified. #648- Resources should use github.com/microsoft/PSRule/v1as theapiVersion.
- Resources that do not specify an apiVersionwill be ignored.
- See upgrade notes for details.
 
- Resources should use 
- Breaking change: Prefer module sources over loose files. #610- Module sources are discovered before loose files.
- Warning is shown for duplicate rule names, and exception is thrown for duplicate rule Ids.
- See upgrade notes for details.
 
- Breaking change: Require rule sources from current working directory to be explicitly included. #760- From v2 onwards, $PWDis not included by default unless-Path .or-Path $PWDis explicitly specified.
- See upgrade notes for details.
 
- From v2 onwards, 
- Added more tests for JSON resources. #929
- Bump Sarif.Sdk to 2.4.13. #1007
- Bump PowerShellStandard.Library to 5.1.1. #999
 
- Breaking change: Removal of deprecated default baseline from module manifest. #755
- Bug fixes:- Fixed object path handling with dash. #902
- Fixed empty suppression group rules property applies to no rules. #931
- Fixed object reference for suppression group will rule not defined. #932
- Fixed rule source loading twice from $PWDand.ps-rule/. #939
- Fixed rule references in SARIF format for extensions need a toolComponent reference. #949
- Fixed file objects processed with file input format have no source location. #950
- Fixed GitHub code scanning alerts treats pass as problems. #955- By default, SARIF output will only include fail or error outcomes.
- Added Output.SarifProblemsOnlyoption to include pass outcomes.
 
- Fixed SARIF output includes rule property for default tool component. #956
- Fixed Invoke-PSRule hanging if JSON rule file is empty. #969
- Fixed SARIF should report base branch. #964
- Fixed unclear error message on invalid rule names. #1012
 
What's changed since pre-release v2.0.0-B2203045:
- No additional changes.
v2.0.0-B2203045 (pre-release)#
What's changed since pre-release v2.0.0-B2203033:
- General improvements:- Added convertto numeric comparison expressions. #943- Type conversion is now supported for less,lessOrEquals,greater, andgreaterOrEquals.
 
- Type conversion is now supported for 
- Breaking change: Added validation of resource names. #1012- Invalid rules names will now produce a specific error.
- See upgrade notes for more information.
 
 
- Added 
- Bug fixes:- Fixed unclear error message on invalid rule names. #1012
 
v2.0.0-B2203033 (pre-release)#
What's changed since pre-release v2.0.0-B2203019:
- General improvements:- Added Extentproperty on rules reported byGet-PSRule. #990- Extent provides the line and position of the rule in the source code.
 
 
- Added 
- Engineering:
v2.0.0-B2203019 (pre-release)#
What's changed since pre-release v2.0.0-B2202072:
- General improvements:- Added convertandcaseSensitiveto string comparison expressions. #1001- The following expressions support type conversion and case-sensitive comparison.- startsWith,- contains, and- endsWith.
- equalsand- notEquals.
 
 
- The following expressions support type conversion and case-sensitive comparison.
 
- Added 
v2.0.0-B2202072 (pre-release)#
What's changed since pre-release v2.0.0-B2202065:
- General improvements:- Capture and output repository info in Assert-PSRule runs. #978- Added Repository.Urloption set repository URL reported in output.
- Repository URL is detected automatically for GitHub Actions and Azure Pipelines.
- Added RepositoryInfotoOutput.Banneroption.
- Repository info is shown by default.
 
- Added 
 
- Capture and output repository info in Assert-PSRule runs. #978
- Bug fixes:- Fixed SARIF should report base branch. #964
 
v2.0.0-B2202065 (pre-release)#
What's changed since pre-release v2.0.0-B2202056:
- Bug fixes:- Fixed broken documentation links. #980
 
v2.0.0-B2202056 (pre-release)#
What's changed since pre-release v2.0.0-B2202024:
- Bug fixes:- Fixed Invoke-PSRule hanging if JSON rule file is empty. #969
 
v2.0.0-B2202024 (pre-release)#
What's changed since pre-release v2.0.0-B2202017:
- New features:- Added source expression property. #933- Included the following expressions:- source
- withinPath
- notWithinPath
 
 
- Included the following expressions:
 
- Added source expression property. #933
v2.0.0-B2202017 (pre-release)#
What's changed since pre-release v2.0.0-B2202006:
- Bug fixes:
v2.0.0-B2202006 (pre-release)#
What's changed since pre-release v2.0.0-B2201161:
- General improvements:- Added new properties for module lookup to SARIF results. #951
 
- Bug fixes:
v2.0.0-B2201161 (pre-release)#
What's changed since pre-release v2.0.0-B2201146:
- New features:- Added support for rule severity level. #880- Rules can be configured to be Error,Warning, orInformation.
- Failing rules with the Errorseverity level will cause the pipeline to fail.
- Rules with the Warningseverity level will be reported as warnings.
- Rules with the Informationseverity level will be reported as informational messages.
- By default, the severity level for a rule is Error.
 
- Rules can be configured to be 
- Added expression support for type based assertions. #908- Included the following expressions:- IsArray
- IsBoolean
- IsDateTime
- IsInteger
- IsNumeric
 
 
- Included the following expressions:
- Added support for formatting results as SARIF. #878- Set Output.FormattoSarifto output results in the SARIF format.
- See about_PSRule_Options for details.
 
- Set 
 
- Added support for rule severity level. #880
v2.0.0-B2201146 (pre-release)#
What's changed since pre-release v2.0.0-B2201135:
- Engineering:- Breaking change: Require rule sources from current working directory to be explicitly included. #760- From v2 onwards, $PWDis not included by default unless-Path .or-Path $PWDis explicitly specified.
- See upgrade notes for details.
 
- From v2 onwards, 
 
- Breaking change: Require rule sources from current working directory to be explicitly included. #760
- Bug fixes:- Fixed rule source loading twice from $PWDand.ps-rule/. #939
 
- Fixed rule source loading twice from 
v2.0.0-B2201135 (pre-release)#
What's changed since pre-release v2.0.0-B2201117:
- Engineering:- Breaking change: Prefer module sources over loose files. #610- Module sources are discovered before loose files.
- Warning is shown for duplicate rule names, and exception is thrown for duplicate rule Ids.
- See upgrade notes for details.
 
- Added more tests for JSON resources. #929
 
- Breaking change: Prefer module sources over loose files. #610
- Bug fixes:
v2.0.0-B2201117 (pre-release)#
What's changed since pre-release v2.0.0-B2201093:
- General improvements:- Add option to disable invariant culture warning. #899- Added Execution.InvariantCultureWarningoption.
- See about_PSRule_Options for details.
 
- Added 
 
- Add option to disable invariant culture warning. #899
v2.0.0-B2201093 (pre-release)#
What's changed since pre-release v2.0.0-B2201075:
- New features:- Add support for suppression groups. #793- New SuppressionGroupresource has been included.
- See about_PSRule_SuppressionGroups for details.
 
- New 
 
- Add support for suppression groups. #793
v2.0.0-B2201075 (pre-release)#
What's changed since pre-release v2.0.0-B2201054:
- General improvements:- Added support for rule aliases. #792- Aliases allow rules to be references by an alternative name.
- When renaming rules, add a rule alias to avoid breaking references to the old rule name.
- To specify an alias use the -Aliasparameter oraliasmetadata property in YAML or JSON.
 
- Added support for stable identifiers with rule refs. #881- A rule ref may be optionally be used to reference a rule.
- Rule refs should be: stable, not changing between releases; opaque, as opposed to being a human-readable string. Stable and opaque refs ease web lookup and to help to avoid language difficulties.
- To specify a rule ref use the -Refparameter orrefmetadata property in YAML or JSON.
 
 
- Added support for rule aliases. #792
- Bug fixes:- Fixed object path handling with dash. #902
 
v2.0.0-B2201054 (pre-release)#
What's changed since v1.11.0:
- General improvements:- Added support for object path expressions. #808 #693- Inspired by JSONPath, object path expressions can be used to access nested objects.
- Array members can be filtered and enumerated using object path expressions.
- Object path expressions can be used in YAML, JSON, and PowerShell rules and selectors.
- See about_PSRule_Assert for details.
 
- Improve tracking of suppressed objects. #794- Added Execution.SuppressedRuleWarningoption to output warning for suppressed rules.
 
- Added 
 
- Added support for object path expressions. #808 #693
- Engineering:- Breaking change: Removal of deprecated default baseline from module manifest. #755- Set the default module baseline using module configuration.
- See upgrade notes for details.
 
- Breaking change: Require apiVersionon YAML and JSON to be specified. #648- Resources should use github.com/microsoft/PSRule/v1as theapiVersion.
- Resources that do not specify an apiVersionwill be ignored.
- See upgrade notes for details.
 
- Resources should use 
 
- Breaking change: Removal of deprecated default baseline from module manifest. #755