## Improvements ### fauxhai The `fauxhai` library is updated from 8.3.1 to 8.4.0 and includes new support for CentOS 7.8, RedHat 7.8, and openSUSE 15.2, as well as updates to existing platform data for Chef Infra Client 16.6. ### Cookstyle The Cookstyle linting tool has been updated from 6.21.1 to 7.2.1, with new cops and a new cop naming format. #### New Cop Naming Format Cookstyle now ships with the RuboCop 1.x engine. This new release of RuboCop has enabled us to improve the naming scheme for Cookstyle cops. Previously all Cookstyle cops started with `Chef` and then included the description of what the department actually did such as `ChefDeprecations`, which was for deprecation cops. Cop names are now three parts instead of two, so `ChefDeprecations/SomeCop` becomes `Chef/Deprecations/SomeCop`. Why the change? Using this format makes it much easier to enable just the Chef specific cops in Cookstyle without having to list each individual department. Now you can run `cookstyle --only Chef` to see just Chef Infra related cops without the additional few hundred Ruby specific cops provided by RuboCop. Cookstyle will automatically migrate any comments to the new department names, but anything in your .rubocop.yml will need to be updated manually. **New Name Mapping** - ChefCorrectness -> Chef/Correctness - ChefDeprecations -> Chef/Deprecations - ChefEffortless -> Chef/Effortless - ChefModernize -> Chef/Modernize - RedundantCode -> Chef/RedundantCode - ChefSharing -> Chef/Sharing - ChefStyle -> Chef/Style #### New Cops ##### Style/CollectionCompact The `Style/CollectionCompact` cop detects code that removes `nil` values from Hashes or Arrays using a Ruby block when this can be done with the `compact` method instead. `Examples:` Overly complex nil removals: ```ruby array.reject { |e| e.nil? } array.select { |e| !e.nil? } ``` Simpler nil removal: ```ruby array.compact ``` ##### Chef/Deprecations/FoodcriticTesting The `Chef/Deprecations/FoodcriticTesting` cop detects cookbooks with a Gemfile that requires Foodcritic or any code, such as a Rakefile/Guardfile, that requires the Foodcritic gem. Foodcritic is no longer supported and has been significantly eclipsed in functionality by Cookstyle. Any existing Rakefile or Guardfile tests for Foodcritic should be updated to use Cookstyle instead. `Enabled by default`: True `Autocorrects`: False ##### Chef/Deprecations/LibrarianChefSpec The `Chef/Deprecations/LibrarianChefSpec` cop detects ChefSpec tests that require the legacy `chefspec/librarian` library. Librarian Chef is no longer supported and users should migrate to Berkshelf or Policyfiles. `Enabled by default`: True `Autocorrects`: True ### Chef InSpec Chef InSpec is updated from 4.23.11 to 4.23.15. A bug fix included ensuring that waiver expiration data is always populated. ### chef-vault We've updated the release of `chef-vault` to 4.1. Chef Vault 4.1 properly handles escape strings in secrets and greatly improves performance for users with large numbers of secrets. Thanks for the performance work [@Annih](https://github.com/Annih)! ### Kitchen Vagrant The `kitchen-vagrant` plugin is updated from version 1.7.1 to 1.7.2 with a bug fix to no longer stop with an error when updating a Vagrant box that has not yet been downloaded. ### Kitchen vCenter The `kitchen-vcenter` plugin is updated from version 2.8.2 to 2.9.0, which includes support for Windows guest customization and improved support for nested datacenters.