## Performance Improvements This release of Chef Workstation ships with several optimizations to our Ruby installation to improve the performance of loading the various commands bundled with Workstation. These improvements are particularly noticeable on non-SSD hosts and on Windows. ## Updated Components ### Chef Infra Client 15.6.10 Chef Infra Client has been updated to 15.6.10 which includes multiple resource fixes and optimizations. ### Cookstyle 5.16 Cookstyle has been updated from 5.13 to 5.16 with 22 new cops, improvements to existing cops, a new TargetChefVersion config option, and expanded cop departments. #### TargetChefVersion Config Cookstyle now includes a new top-level configuration option `TargetChefVersion`. This new configuration option works similarly to RuboCop's `TargetRubyVersion` config option and allows you to specify a Chef Infra version that you want to target in your Cookstyle analysis. This prevents Cookstyle from autocorrecting cookbook code in a way that would make your cookbook incompatible with your desired Chef Infra Client version. It also makes it easier to perform staged upgrades of the Chef Infra Client by allowing you to step the `TargetChefVersion` one major version at a time. Example .rubocop.yml config specifying a TargetChefVersion of 14.0: ```yaml AllCops: TargetChefVersion: 14.0 ``` #### New ChefSharing and ChefRedundantCode Departments Cookstyle now includes two new Chef cop departments with a large number of existing cops moved into these more appropriate departments. Our goal is to have clearly defined cop departments that can be enabled or disabled to detect particular conditions in your cookbooks. Cops in the new ChefSharing department are focused around sharing cookbooks internally or on the public Supermarket. This includes things like ensuring proper license strings and complete metadata. Cops in the ChefRedundantCode category detect and correct unnecessary cookbook code. Anything detected by ChefRedundantCode cops can be removed regardless of the Chef Infra Client release you run in your infrastructure, so these are always safe to run. With the addition of these new departments, we've moved many cops out of the ChefCorrectness department. Going forward only cops that detect code that may fail a Chef Infra Client run or cause it to behave incorrectly will be included in this category. We hope that ChefCorrectness along with ChefDeprecations are used in most cookbook CI pipelines. ### kitchen-azurerm kitchen-azurerm has been updated from 0.14.9 to 0.15.0 with the following improvements: - Enable the WinRM HTTP listener by default. Thanks @sean-nixon - Allow overriding the `subscription_id` by setting the `AZURE_SUBSCRIPTION_ID` ENV variable - Add a new `nic_name` config. Thanks @libertymutual - Support for creating VM with Azure KeyVault certificate. Thanks @javgallegos ### kitchen-dokken kitchen-dokken has been updated to 2.8.1 which fixes a bug that prevented ENV vars from being passed into containers. ### kitchen-google and knife-google kitchen-google and knife-google plugins have been updated to allow the updated google-api-client SDK v0.34. ### knife-ec2 knife-ec2 has been updated from 1.0.17 to 1.0.21 with the following fixes: - Resolved a missing credential error when using aws-profile. - Mask AWS access keys data in any error or debug logs. - Raises an error if password length is less than 8 characters on Windows and will stop warning on passwords over 14 characters. ### knife-tidy knife-tidy has been updated from 2.0.1 to 2.0.6 to resolve issues if an org was named `cookbooks` and to improve error messages. ### mixlib-install mixlib-install has been updated from 3.11.21 to 3.11.24, which properly identifies Windows 2019 hosts.