## Improvements ### Chef CLI The Chef CLI's `chef generate cookbook` command has been updated to generate a more complete `chefignore` file. ### ChefSpec ChefSpec was updated from 9.1 to 9.2 which now supports cookbooks that include Ohai plugins in the 'ohai' directory. It also adds support for Chef 16's `after_resource`. ### Cookstyle Cookstyle has been updated from 6.7 to 6.9 with an updated RuboCop engine and additional Chef Infra cops. #### RuboCop 0.86 RuboCop has been updated to 0.86 which includes several bug fixes to prevent false positives and includes new autocorrection capabilities. #### Improvements for Chef Infra Client 16.2 Chef Infra Client 16.2 contains additional changes to the way that resource names are specified in order to avoid edge cases in resource naming. When setting the name of a custom resource, `provides` should now be used instead of `resource_name`. When writing cookbooks that support Chef Infra Client earlier than version 16, you'll want to use both `provides` and `resource_name` to support all releases. To support these changes we've made several updates to existing cops. The `ChefDeprecations/ResourceUsesOnlyResourceName` cop has been updated to add `provides` in addition to `resoure_name` instead of replacing `resource_name` with `provides`. This change ensures that cookbooks will continue to function on versions of Chef Infra Client prior to version 16. The `ChefDeprecations/ResourceWithoutNameOrProvides` cop has also been renamed to `ChefDeprecations/HWRPWithoutProvides` and improves detection of resources without `provides`. Both cops now better validate the contents of existing `provides` calls. ### InSpec InSpec was updated from 4.19 to 4.21. This new release includes the following improvements: * Certain substrings within a .toml file no longer cause unexpected crashes. * Accurate InSpec CLI input parsing for numeric values and structured data, which were previously treated as strings. Numeric values are cast to an integer or float and YAML or JSON structures are converted to a hash or an array. * Suppress deprecation warnings on `inspec exec` with the `--silence-deprecations` option. ### knife bootstrap The `knife bootstrap` command has been updated with several fixes and improvements - knife bootstrap will now warn when bootstrapping a system using a validation key. Users should instead use validatorless bootstrapping with `knife bootstrap` which generates node and client keys using the client key of the user bootstrapping the node. This method is far more secure as an organization-wide validation key does not need to be distributed or rotated. Users can switch to validatorless bootstrapping by removing any `validation_key` entries in their config.rb (knife.rb) file. - Resolved an error bootstrapping Linux nodes from Windows hosts - Improved information messages during the bootstrap process - Bootstrapping will now be done using a single SSH connection improving bootstrap times on high latency network connection. ### Knife Tidy Knife Tidy has been updated from 2.0.12 to 2.1.0 which adds support for a `--keep-versions` command line flag. Specifying this keeps a minimum number of versions of each cookbook and defaults to `0`. ### net-ssh `net-ssh` has been updated from 5.2.0 to 6.1.0 which includes the following updates: - Support empty lines and comments in known_hosts. - Add sha2-{256,512}-etm@openssh.com MAC algorithms. - curve25519sha256 support. ### Ohai Ohai was updated from 16.1 to 16.2 which correctly identifies the new macOS Big Sur (11.0) beta as the platform `mac_os_x`. ## Platform Packages - Debian 8 packages are no longer being produced as Debian 8 is now end-of-life. - We now produce Windows 8 packages. ## Backward Incompatibilities - gerkin and cucumber-core gems no longer ship by default with Chef Workstation.