cookstyle 6.20.2 → 7.3.10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (231) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -4
  3. data/config/cookstyle.yml +318 -247
  4. data/config/disable_all.yml +32 -0
  5. data/config/upstream.yml +271 -80
  6. data/lib/cookstyle/version.rb +2 -2
  7. data/lib/rubocop/cop/chef/correctness/block_guard_clause_string_only.rb +1 -1
  8. data/lib/rubocop/cop/chef/correctness/chef_application_fatal.rb +1 -1
  9. data/lib/rubocop/cop/chef/correctness/conditional_ruby_shellout.rb +1 -1
  10. data/lib/rubocop/cop/chef/correctness/dnf_package_allow_downgrades.rb +1 -1
  11. data/lib/rubocop/cop/chef/correctness/incorrect_library_injection.rb +1 -1
  12. data/lib/rubocop/cop/chef/correctness/invalid_default_action.rb +1 -1
  13. data/lib/rubocop/cop/chef/correctness/invalid_notification_timing.rb +1 -1
  14. data/lib/rubocop/cop/chef/correctness/invalid_platform_family_helper.rb +1 -1
  15. data/lib/rubocop/cop/chef/correctness/invalid_platform_family_values_in_case.rb +1 -1
  16. data/lib/rubocop/cop/chef/correctness/invalid_platform_helper.rb +1 -1
  17. data/lib/rubocop/cop/chef/correctness/invalid_platform_metadata.rb +1 -1
  18. data/lib/rubocop/cop/chef/correctness/invalid_platform_values_in_case.rb +1 -1
  19. data/lib/rubocop/cop/chef/correctness/invalid_value_for_platform_family_helper.rb +1 -1
  20. data/lib/rubocop/cop/chef/correctness/invalid_value_for_platform_helper.rb +1 -1
  21. data/lib/rubocop/cop/chef/correctness/invalid_version_metadata.rb +1 -1
  22. data/lib/rubocop/cop/chef/correctness/lazy_eval_node_attribute_defaults.rb +1 -1
  23. data/lib/rubocop/cop/chef/correctness/lazy_in_resource_guard.rb +1 -1
  24. data/lib/rubocop/cop/chef/correctness/macos_userdefaults_invalid_type.rb +1 -1
  25. data/lib/rubocop/cop/chef/correctness/malformed_value_for_platform.rb +1 -1
  26. data/lib/rubocop/cop/chef/correctness/metadata_missing_name.rb +1 -1
  27. data/lib/rubocop/cop/chef/correctness/node_normal.rb +1 -1
  28. data/lib/rubocop/cop/chef/correctness/node_normal_unless.rb +1 -1
  29. data/lib/rubocop/cop/chef/correctness/node_save.rb +1 -1
  30. data/lib/rubocop/cop/chef/correctness/notifies_action_not_symbol.rb +1 -1
  31. data/lib/rubocop/cop/chef/correctness/octal_mode_as_string.rb +48 -0
  32. data/lib/rubocop/cop/chef/correctness/openssl_password_helpers.rb +1 -1
  33. data/lib/rubocop/cop/chef/correctness/powershell_delete_file.rb +1 -1
  34. data/lib/rubocop/cop/chef/correctness/property_without_type.rb +1 -1
  35. data/lib/rubocop/cop/chef/correctness/resource_sets_internal_properties.rb +1 -1
  36. data/lib/rubocop/cop/chef/correctness/resource_sets_name_property.rb +1 -1
  37. data/lib/rubocop/cop/chef/correctness/resource_with_none_action.rb +1 -1
  38. data/lib/rubocop/cop/chef/correctness/scoped_file_exist.rb +1 -1
  39. data/lib/rubocop/cop/chef/correctness/service_resource.rb +1 -1
  40. data/lib/rubocop/cop/chef/correctness/supports_must_be_float.rb +1 -1
  41. data/lib/rubocop/cop/chef/correctness/tmp_path.rb +1 -1
  42. data/lib/rubocop/cop/chef/deprecation/ use_automatic_resource_name.rb +1 -1
  43. data/lib/rubocop/cop/chef/deprecation/cb_depends_on_self.rb +1 -1
  44. data/lib/rubocop/cop/chef/deprecation/chef_handler_recipe.rb +1 -1
  45. data/lib/rubocop/cop/chef/deprecation/chef_handler_supports.rb +1 -1
  46. data/lib/rubocop/cop/chef/deprecation/chef_rest.rb +1 -1
  47. data/lib/rubocop/cop/chef/deprecation/chef_rewind.rb +1 -1
  48. data/lib/rubocop/cop/chef/deprecation/chef_shellout.rb +1 -1
  49. data/lib/rubocop/cop/chef/deprecation/chef_sugar_helpers.rb +56 -0
  50. data/lib/rubocop/cop/chef/deprecation/chef_windows_platform_helper.rb +1 -1
  51. data/lib/rubocop/cop/chef/deprecation/chefdk_generators.rb +1 -1
  52. data/lib/rubocop/cop/chef/deprecation/cheffile.rb +1 -1
  53. data/lib/rubocop/cop/chef/deprecation/chefspec_coverage_report.rb +1 -1
  54. data/lib/rubocop/cop/chef/deprecation/chefspec_legacy_runner.rb +1 -1
  55. data/lib/rubocop/cop/chef/deprecation/chocolatey_package_uninstall_action.rb +1 -1
  56. data/lib/rubocop/cop/chef/deprecation/depends_compat_resource.rb +1 -1
  57. data/lib/rubocop/cop/chef/deprecation/depends_partial_search.rb +1 -1
  58. data/lib/rubocop/cop/chef/deprecation/depends_poise.rb +1 -1
  59. data/lib/rubocop/cop/chef/deprecation/deprecated_chefspec_platform.rb +3 -4
  60. data/lib/rubocop/cop/chef/deprecation/deprecated_mixins.rb +1 -1
  61. data/lib/rubocop/cop/chef/deprecation/deprecated_platform_methods.rb +1 -1
  62. data/lib/rubocop/cop/chef/deprecation/deprecated_shellout_methods.rb +1 -1
  63. data/lib/rubocop/cop/chef/deprecation/deprecated_windows_version_check.rb +1 -1
  64. data/lib/rubocop/cop/chef/deprecation/deprecated_yum_repository_actions.rb +67 -0
  65. data/lib/rubocop/cop/chef/deprecation/deprecated_yum_repository_properties.rb +1 -1
  66. data/lib/rubocop/cop/chef/deprecation/easy_install.rb +1 -1
  67. data/lib/rubocop/cop/chef/deprecation/eol_audit_mode.rb +1 -1
  68. data/lib/rubocop/cop/chef/deprecation/epic_fail.rb +1 -1
  69. data/lib/rubocop/cop/chef/deprecation/erl_call.rb +1 -1
  70. data/lib/rubocop/cop/chef/deprecation/execute_path_property.rb +1 -1
  71. data/lib/rubocop/cop/chef/deprecation/execute_relative_creates_without_cwd.rb +1 -1
  72. data/lib/rubocop/cop/chef/deprecation/foodcritic_testing.rb +43 -0
  73. data/lib/rubocop/cop/chef/deprecation/hwrp_without_provides.rb +1 -1
  74. data/lib/rubocop/cop/chef/deprecation/inherits_compat_resource.rb +1 -1
  75. data/lib/rubocop/cop/chef/deprecation/launchd_deprecated_hash_property.rb +1 -1
  76. data/lib/rubocop/cop/chef/deprecation/legacy_notify_syntax.rb +1 -1
  77. data/lib/rubocop/cop/chef/deprecation/legacy_yum_cookbook_recipes.rb +1 -1
  78. data/lib/rubocop/cop/chef/deprecation/librarian_chefspec.rb +42 -0
  79. data/lib/rubocop/cop/chef/deprecation/locale_lc_all_property.rb +1 -1
  80. data/lib/rubocop/cop/chef/deprecation/log_resource_notifications.rb +3 -3
  81. data/lib/rubocop/cop/chef/deprecation/macos_userdefaults_global_property.rb +1 -1
  82. data/lib/rubocop/cop/chef/deprecation/name_property_and_default.rb +1 -1
  83. data/lib/rubocop/cop/chef/deprecation/node_deep_fetch.rb +1 -1
  84. data/lib/rubocop/cop/chef/deprecation/node_methods_not_attributes.rb +1 -1
  85. data/lib/rubocop/cop/chef/deprecation/node_set.rb +1 -1
  86. data/lib/rubocop/cop/chef/deprecation/node_set_unless.rb +1 -1
  87. data/lib/rubocop/cop/chef/deprecation/node_set_without_level.rb +1 -1
  88. data/lib/rubocop/cop/chef/deprecation/partial_search_class_usage.rb +1 -1
  89. data/lib/rubocop/cop/chef/deprecation/partial_search_helper_usage.rb +1 -1
  90. data/lib/rubocop/cop/chef/deprecation/poise_archive.rb +1 -1
  91. data/lib/rubocop/cop/chef/deprecation/powershell_cookbook_helpers.rb +1 -1
  92. data/lib/rubocop/cop/chef/deprecation/require_recipe.rb +1 -1
  93. data/lib/rubocop/cop/chef/deprecation/resource_overrides_provides_method.rb +1 -1
  94. data/lib/rubocop/cop/chef/deprecation/resource_uses_dsl_name_method.rb +1 -1
  95. data/lib/rubocop/cop/chef/deprecation/resource_uses_only_resource_name.rb +1 -1
  96. data/lib/rubocop/cop/chef/deprecation/resource_uses_provider_base_method.rb +1 -1
  97. data/lib/rubocop/cop/chef/deprecation/resource_uses_updated_method.rb +1 -1
  98. data/lib/rubocop/cop/chef/deprecation/ruby_27_keyword_argument_warnings.rb +1 -1
  99. data/lib/rubocop/cop/chef/deprecation/ruby_block_create_action.rb +1 -1
  100. data/lib/rubocop/cop/chef/deprecation/run_command_helper.rb +1 -1
  101. data/lib/rubocop/cop/chef/deprecation/search_uses_positional_parameters.rb +1 -1
  102. data/lib/rubocop/cop/chef/deprecation/use_inline_resources.rb +1 -1
  103. data/lib/rubocop/cop/chef/deprecation/use_yaml_dump.rb +47 -0
  104. data/lib/rubocop/cop/chef/deprecation/user_supports_property.rb +1 -1
  105. data/lib/rubocop/cop/chef/deprecation/verify_property_file_expansion.rb +1 -1
  106. data/lib/rubocop/cop/chef/deprecation/windows_feature_servermanagercmd.rb +1 -1
  107. data/lib/rubocop/cop/chef/deprecation/windows_package_installer_type_string.rb +1 -1
  108. data/lib/rubocop/cop/chef/deprecation/windows_task_change_action.rb +1 -1
  109. data/lib/rubocop/cop/chef/deprecation/windows_version_helpers.rb +1 -1
  110. data/lib/rubocop/cop/chef/deprecation/xml_ruby_recipe.rb +1 -1
  111. data/lib/rubocop/cop/chef/deprecation/yum_dnf_compat_recipe.rb +1 -1
  112. data/lib/rubocop/cop/chef/effortless/berksfile.rb +1 -1
  113. data/lib/rubocop/cop/chef/effortless/chef_vault_used.rb +1 -1
  114. data/lib/rubocop/cop/chef/effortless/data_bags.rb +1 -1
  115. data/lib/rubocop/cop/chef/effortless/depends_chef_vault.rb +1 -1
  116. data/lib/rubocop/cop/chef/effortless/node_environment.rb +1 -1
  117. data/lib/rubocop/cop/chef/effortless/node_policygroup.rb +1 -1
  118. data/lib/rubocop/cop/chef/effortless/node_roles.rb +1 -1
  119. data/lib/rubocop/cop/chef/effortless/search_for_environments_or_roles.rb +1 -1
  120. data/lib/rubocop/cop/chef/effortless/search_used.rb +1 -1
  121. data/lib/rubocop/cop/chef/modernize/action_method_in_resource.rb +1 -1
  122. data/lib/rubocop/cop/chef/modernize/allowed_actions_initializer.rb +1 -1
  123. data/lib/rubocop/cop/chef/modernize/apt_default_recipe.rb +1 -1
  124. data/lib/rubocop/cop/chef/modernize/berksfile_source.rb +1 -1
  125. data/lib/rubocop/cop/chef/modernize/build_essential.rb +1 -1
  126. data/lib/rubocop/cop/chef/modernize/chef_14_resources.rb +1 -1
  127. data/lib/rubocop/cop/chef/modernize/chef_gem_nokogiri.rb +1 -1
  128. data/lib/rubocop/cop/chef/modernize/compile_time_resources.rb +1 -1
  129. data/lib/rubocop/cop/chef/modernize/conditional_using_test.rb +1 -1
  130. data/lib/rubocop/cop/chef/modernize/cron_d_file_or_template.rb +1 -1
  131. data/lib/rubocop/cop/chef/modernize/cron_manage_resource.rb +1 -1
  132. data/lib/rubocop/cop/chef/modernize/databag_helpers.rb +1 -1
  133. data/lib/rubocop/cop/chef/modernize/default_action_initializer.rb +1 -1
  134. data/lib/rubocop/cop/chef/modernize/defines_chefspec_matchers.rb +1 -1
  135. data/lib/rubocop/cop/chef/modernize/definitions.rb +1 -1
  136. data/lib/rubocop/cop/chef/modernize/depends_zypper_cookbook.rb +1 -1
  137. data/lib/rubocop/cop/chef/modernize/dsl_include_in_resource.rb +1 -1
  138. data/lib/rubocop/cop/chef/modernize/empty_resource_initialize.rb +1 -1
  139. data/lib/rubocop/cop/chef/modernize/execute_apt_update.rb +1 -1
  140. data/lib/rubocop/cop/chef/modernize/execute_sc_exe.rb +1 -1
  141. data/lib/rubocop/cop/chef/modernize/execute_sleep.rb +1 -1
  142. data/lib/rubocop/cop/chef/modernize/execute_sysctl.rb +1 -1
  143. data/lib/rubocop/cop/chef/modernize/execute_tzutil.rb +1 -1
  144. data/lib/rubocop/cop/chef/modernize/foodcritic_comments.rb +1 -1
  145. data/lib/rubocop/cop/chef/modernize/if_provides_default_action.rb +1 -1
  146. data/lib/rubocop/cop/chef/modernize/includes_mixin_shellout.rb +1 -1
  147. data/lib/rubocop/cop/chef/modernize/libarchive_file.rb +1 -1
  148. data/lib/rubocop/cop/chef/modernize/macos_user_defaults.rb +1 -1
  149. data/lib/rubocop/cop/chef/modernize/minitest_handler_usage.rb +1 -1
  150. data/lib/rubocop/cop/chef/modernize/node_init_package.rb +1 -1
  151. data/lib/rubocop/cop/chef/modernize/node_roles_include.rb +1 -1
  152. data/lib/rubocop/cop/chef/modernize/ohai_default_recipe.rb +1 -1
  153. data/lib/rubocop/cop/chef/modernize/openssl_rsa_key_resource.rb +1 -1
  154. data/lib/rubocop/cop/chef/modernize/openssl_x509_resource.rb +1 -1
  155. data/lib/rubocop/cop/chef/modernize/osx_config_profile_resource.rb +1 -1
  156. data/lib/rubocop/cop/chef/modernize/powershell_expand_archive.rb +1 -1
  157. data/lib/rubocop/cop/chef/modernize/powershell_guard_interpreter.rb +1 -1
  158. data/lib/rubocop/cop/chef/modernize/powershell_install_package.rb +1 -1
  159. data/lib/rubocop/cop/chef/modernize/powershell_install_windowsfeature.rb +1 -1
  160. data/lib/rubocop/cop/chef/modernize/property_with_name_attribute.rb +1 -1
  161. data/lib/rubocop/cop/chef/modernize/provides_initializer.rb +1 -1
  162. data/lib/rubocop/cop/chef/modernize/resource_name_initializer.rb +1 -1
  163. data/lib/rubocop/cop/chef/modernize/resource_set_or_return.rb +1 -1
  164. data/lib/rubocop/cop/chef/modernize/resource_with_attributes.rb +1 -1
  165. data/lib/rubocop/cop/chef/modernize/respond_to_compile_time.rb +1 -1
  166. data/lib/rubocop/cop/chef/modernize/respond_to_metadata.rb +1 -1
  167. data/lib/rubocop/cop/chef/modernize/respond_to_provides.rb +1 -1
  168. data/lib/rubocop/cop/chef/modernize/respond_to_resource_name.rb +1 -1
  169. data/lib/rubocop/cop/chef/modernize/sc_windows_resource.rb +1 -1
  170. data/lib/rubocop/cop/chef/modernize/seven_zip_archive.rb +1 -1
  171. data/lib/rubocop/cop/chef/modernize/shell_out_helper.rb +1 -1
  172. data/lib/rubocop/cop/chef/modernize/shellouts_to_chocolatey.rb +1 -1
  173. data/lib/rubocop/cop/chef/modernize/simplify_apt_ppa_setup.rb +1 -1
  174. data/lib/rubocop/cop/chef/modernize/sysctl_param_resource.rb +1 -1
  175. data/lib/rubocop/cop/chef/modernize/unnecessary_mixlib_shellout_require.rb +1 -1
  176. data/lib/rubocop/cop/chef/modernize/use_multipackage_installs.rb +17 -13
  177. data/lib/rubocop/cop/chef/modernize/use_require_relative.rb +1 -1
  178. data/lib/rubocop/cop/chef/modernize/whyrun_supported_true.rb +1 -1
  179. data/lib/rubocop/cop/chef/modernize/windows_default_recipe.rb +1 -1
  180. data/lib/rubocop/cop/chef/modernize/windows_registry_uac.rb +4 -4
  181. data/lib/rubocop/cop/chef/modernize/windows_zipfile.rb +1 -1
  182. data/lib/rubocop/cop/chef/modernize/zipfile_resource.rb +1 -1
  183. data/lib/rubocop/cop/chef/modernize/zypper_repo.rb +1 -1
  184. data/lib/rubocop/cop/chef/redundant/apt_repository_distribution_default.rb +1 -1
  185. data/lib/rubocop/cop/chef/redundant/apt_repository_notifies_apt_update.rb +1 -1
  186. data/lib/rubocop/cop/chef/redundant/attribute_metadata.rb +1 -1
  187. data/lib/rubocop/cop/chef/redundant/conflicts_metadata.rb +1 -1
  188. data/lib/rubocop/cop/chef/redundant/custom_resource_with_allowed_actions.rb +1 -1
  189. data/lib/rubocop/cop/chef/redundant/double_compile_time.rb +1 -1
  190. data/lib/rubocop/cop/chef/redundant/grouping_metadata.rb +1 -1
  191. data/lib/rubocop/cop/chef/redundant/long_description_metadata.rb +1 -1
  192. data/lib/rubocop/cop/chef/redundant/multiple_platform_checks.rb +1 -1
  193. data/lib/rubocop/cop/chef/redundant/name_property_and_required.rb +1 -1
  194. data/lib/rubocop/cop/chef/redundant/ohai_attribute_to_string.rb +1 -1
  195. data/lib/rubocop/cop/chef/redundant/property_splat_regex.rb +1 -1
  196. data/lib/rubocop/cop/chef/redundant/property_with_default_and_required.rb +1 -1
  197. data/lib/rubocop/cop/chef/redundant/provides_metadata.rb +1 -1
  198. data/lib/rubocop/cop/chef/redundant/recipe_metadata.rb +1 -1
  199. data/lib/rubocop/cop/chef/redundant/replaces_metadata.rb +1 -1
  200. data/lib/rubocop/cop/chef/redundant/resource_with_nothing_action.rb +1 -1
  201. data/lib/rubocop/cop/chef/redundant/sensitive_property_in_resource.rb +1 -1
  202. data/lib/rubocop/cop/chef/redundant/string_property_with_nil_default.rb +1 -1
  203. data/lib/rubocop/cop/chef/redundant/suggests_metadata.rb +1 -1
  204. data/lib/rubocop/cop/chef/redundant/unnecessary_desired_state.rb +13 -12
  205. data/lib/rubocop/cop/chef/redundant/unnecessary_name_property.rb +1 -1
  206. data/lib/rubocop/cop/chef/redundant/use_create_if_missing.rb +1 -1
  207. data/lib/rubocop/cop/chef/sharing/default_maintainer_metadata.rb +1 -1
  208. data/lib/rubocop/cop/chef/sharing/empty_metadata_field.rb +1 -1
  209. data/lib/rubocop/cop/chef/sharing/include_property_descriptions.rb +1 -1
  210. data/lib/rubocop/cop/chef/sharing/include_resource_descriptions.rb +1 -1
  211. data/lib/rubocop/cop/chef/sharing/include_resource_examples.rb +1 -1
  212. data/lib/rubocop/cop/chef/sharing/insecure_cookbook_url.rb +1 -1
  213. data/lib/rubocop/cop/chef/sharing/invalid_license_string.rb +1 -1
  214. data/lib/rubocop/cop/chef/style/attribute_keys.rb +1 -1
  215. data/lib/rubocop/cop/chef/style/chef_whaaat.rb +1 -1
  216. data/lib/rubocop/cop/chef/style/comment_sentence_spacing.rb +2 -2
  217. data/lib/rubocop/cop/chef/style/comments_copyright_format.rb +4 -3
  218. data/lib/rubocop/cop/chef/style/comments_default_copyright.rb +1 -1
  219. data/lib/rubocop/cop/chef/style/comments_format.rb +1 -1
  220. data/lib/rubocop/cop/chef/style/file_mode.rb +1 -1
  221. data/lib/rubocop/cop/chef/style/immediate_notification_timing.rb +1 -1
  222. data/lib/rubocop/cop/chef/style/include_recipe_with_parentheses.rb +1 -1
  223. data/lib/rubocop/cop/chef/style/negating_only_if.rb +1 -1
  224. data/lib/rubocop/cop/chef/style/overly_complex_supports_depends_metadata.rb +1 -1
  225. data/lib/rubocop/cop/chef/style/simplify_platform_major_version_check.rb +1 -1
  226. data/lib/rubocop/cop/chef/style/true_false_resource_properties.rb +1 -1
  227. data/lib/rubocop/cop/chef/style/unnecessary_os_check.rb +1 -1
  228. data/lib/rubocop/cop/chef/style/unnecessary_platform_case_statement.rb +1 -1
  229. data/lib/rubocop/cop/chef/style/use_platform_helpers.rb +1 -1
  230. data/lib/rubocop/monkey_patches/comment_config.rb +1 -1
  231. metadata +10 -4
@@ -0,0 +1,42 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: 2020, Chef Software, Inc.
4
+ # Author:: Tim Smith (<tsmith@chef.io>)
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ module RuboCop
19
+ module Cop
20
+ module Chef
21
+ module Deprecations
22
+ # The Librarian-Chef depsolving project is no longer maintained and a Cheffile should not be used for cookbook depsolving. Consider using Policyfiles instead.
23
+ #
24
+ # @example
25
+ #
26
+ # # bad
27
+ # require 'chefspec/librarian'
28
+ #
29
+ class LibrarianChefSpec < Base
30
+ MSG = 'The Librarian-Chef depsolving project is no longer maintained and ChefSpec should not use Librarian-Chef for cookbook depsolving. Consider using Policyfiles instead.'
31
+ RESTRICT_ON_SEND = [:require].freeze
32
+
33
+ def on_send(node)
34
+ return unless node.arguments.first == s(:str, 'chefspec/librarian')
35
+
36
+ add_offense(node, message: MSG, severity: :warning)
37
+ end
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # The local resource's lc_all property has been deprecated and will be removed in Chef Infra Client 17
23
23
  #
24
24
  # @example
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefDeprecations
22
+ module Deprecations
23
23
  # In Chef Infra Client 16 the log resource no longer notifies when logging so notifications should not be triggered from log resources. Use the notify_group resource introduced in Chef Infra Client 15.8 instead to aggregate notifications.
24
24
  #
25
25
  # @example
@@ -44,7 +44,7 @@ module RuboCop
44
44
  # notifies :restart, 'service[foo]', :delayed
45
45
  # end
46
46
  #
47
- class LogResourceNotifications < Cop
47
+ class LogResourceNotifications < Base
48
48
  include RuboCop::Chef::CookbookHelpers
49
49
  extend TargetChefVersion
50
50
 
@@ -54,7 +54,7 @@ module RuboCop
54
54
 
55
55
  def on_block(node)
56
56
  match_property_in_resource?(:log, 'notifies', node) do |prop_node|
57
- add_offense(prop_node, location: :expression, message: MSG, severity: :warning)
57
+ add_offense(prop_node, message: MSG, severity: :warning)
58
58
  end
59
59
  end
60
60
  end
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefDeprecations
22
+ module Deprecations
23
23
  # The `global` property in the macos_userdefaults resource was deprecated in Chef Infra Client 16.3. This property was never properly implemented and caused failures under many conditions. Omitting the `domain` property will now set global defaults.
24
24
  #
25
25
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # A resource property (or attribute) can't be marked as a name_property (or name_attribute) and also have a default value. The name property is a special property that is derived from the name of the resource block in and thus always has a value passed to the resource. For example if you define `my_resource 'foo'` in recipe, then the name property of `my_resource` will automatically be set to `foo`. Setting a property to be both a name_property and have a default value will cause Chef Infra Client failures in 13.0 and later releases.
23
23
  #
24
24
  # @example
@@ -17,7 +17,7 @@
17
17
  module RuboCop
18
18
  module Cop
19
19
  module Chef
20
- module ChefDeprecations
20
+ module Deprecations
21
21
  # The node.deep_fetch method has been removed from Chef-Sugar, and must be replaced by the node.read API.
22
22
  #
23
23
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # Use node attributes to access data provided by Ohai instead of using node methods to access that data.
23
23
  #
24
24
  # @example
@@ -17,7 +17,7 @@
17
17
  module RuboCop
18
18
  module Cop
19
19
  module Chef
20
- module ChefDeprecations
20
+ module Deprecations
21
21
  # The `node.set` method has been removed in Chef Infra Client 13 and usage must be replaced with `node.normal`.
22
22
  #
23
23
  # This cop will autocorrect code to use node.normal, which is functionally identical to node.set, but we also discourage the use of that method as normal level attributes persist on the node even if the code setting the attribute is later removed.
@@ -17,7 +17,7 @@
17
17
  module RuboCop
18
18
  module Cop
19
19
  module Chef
20
- module ChefDeprecations
20
+ module Deprecations
21
21
  # The node.set_unless method has been removed in Chef Infra Client 13 and usage must be replaced with node.normal_unless.
22
22
  #
23
23
  # This cop will autocorrect code to use node.normal_unless, which is functionally identical to node.set_unless, but we also discourage the use of that method as normal level attributes persist on the node even if the code setting the attribute is later removed.
@@ -17,7 +17,7 @@
17
17
  module RuboCop
18
18
  module Cop
19
19
  module Chef
20
- module ChefDeprecations
20
+ module Deprecations
21
21
  # When setting a node attribute in Chef Infra Client 11 and later you must specify the precedence level.
22
22
  #
23
23
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # Legacy Chef::PartialSearch class usage should be updated to use the `search` helper instead with the `filter_result` key.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # Legacy partial_search usage should be updated to use :filter_result in the search helper instead
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # The poise_archive resource in the deprecated poise-archive should be replaced with the archive_file resource found in Chef Infra Client 15+.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # Use `node['powershell']['version']` or the new `powershell_version` helper available in Chef Infra Client 15.8+ instead of the deprecated PowerShell cookbook helpers
23
23
  #
24
24
  # @example
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefDeprecations
22
+ module Deprecations
23
23
  # Make sure to use include_recipe instead of require_recipe
24
24
  #
25
25
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # Some providers in resources override the provides? method, used to check whether they are a valid provider on the current platform. In Chef Infra Client 13, this will cause an error. Instead use `provides :SOME_PROVIDER_NAME` to register the provider.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # Don't use the dsl_name method in a resource to find the name of the resource. Use the resource_name method instead. dsl_name was removed in Chef Infra Client 13 and will now result in an error.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # Starting with Chef Infra Client 16, using `resource_name` without also using `provides` will result in resource failures. Make sure to use both `resource_name` and `provides` to change the name of the resource. You can also omit `resource_name` entirely if the value set matches the name Chef Infra Client automatically assigns based on COOKBOOKNAME_FILENAME.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # The Resource.provider_base allows the developer to specify within a resource a module to load the resource's provider from. Instead, the provider should call provides to register itself, or the resource should call provider to specify the provider to use.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # Don't call the deprecated updated= method in a resource to set the resource to updated. This method was removed from Chef Infra Client 13 and this will now cause an error. Instead wrap code that updated the state of the node in a converge_by block. Documentation on using the converge_by block can be found at https://docs.chef.io/custom_resources.html.
23
23
  #
24
24
  # @example
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefDeprecations
22
+ module Deprecations
23
23
  # Pass options to shell_out helpers without the brackets to avoid Ruby 2.7 deprecation warnings.
24
24
  #
25
25
  # @example
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefDeprecations
22
+ module Deprecations
23
23
  # Use the :run action in the ruby_block resource instead of the deprecated :create action
24
24
  #
25
25
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # Use 'shell_out!' instead of the legacy 'run_command' or 'run_command_with_systems_locale' helpers for shelling out. The run_command helper was removed in Chef Infra Client 13.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # In the cookbook search helper you need to use named parameters (key/value style) other than the first (type) and second (query string) values.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # use_inline_resources became the default in Chef Infra Client 13+ and no longer needs
23
23
  # to be called in resources
24
24
  #
@@ -0,0 +1,47 @@
1
+ # frozen_string_literal: true
2
+ #
3
+ # Copyright:: 2020, Chef Software, Inc.
4
+ # Author:: Tim Smith (<tsmith@chef.io>)
5
+ #
6
+ # Licensed under the Apache License, Version 2.0 (the "License");
7
+ # you may not use this file except in compliance with the License.
8
+ # You may obtain a copy of the License at
9
+ #
10
+ # http://www.apache.org/licenses/LICENSE-2.0
11
+ #
12
+ # Unless required by applicable law or agreed to in writing, software
13
+ # distributed under the License is distributed on an "AS IS" BASIS,
14
+ # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15
+ # See the License for the specific language governing permissions and
16
+ # limitations under the License.
17
+ #
18
+ module RuboCop
19
+ module Cop
20
+ module Chef
21
+ module Deprecations
22
+ # Chef Infra Client 16.5 introduced performance enhancements to Ruby library loading. Due to the underlying implementation of Ruby's `.to_yaml` method, it does not automatically load the `yaml` library and `YAML.dump()` should be used instead to properly load the `yaml` library.
23
+ #
24
+ # @example
25
+ #
26
+ # # bad
27
+ # {"foo" => "bar"}.to_yaml
28
+ #
29
+ # # good
30
+ # YAML.dump({"foo" => "bar"})
31
+ #
32
+ class UseYamlDump < Base
33
+ extend AutoCorrector
34
+
35
+ MSG = "Chef Infra Client 16.5 introduced performance enhancements to Ruby library loading. Due to the underlying implementation of Ruby's `.to_yaml` method, it does not automatically load the `yaml` library and `YAML.dump()` should be used instead to properly load the `yaml` library."
36
+ RESTRICT_ON_SEND = [:to_yaml].freeze
37
+
38
+ def on_send(node)
39
+ add_offense(node, message: MSG, severity: :warning) do |corrector|
40
+ corrector.replace(node, "YAML.dump(#{node.receiver.source})")
41
+ end
42
+ end
43
+ end
44
+ end
45
+ end
46
+ end
47
+ end
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # The supports property was removed in Chef Infra Client 13 in favor of individual 'manage_home' and 'non_unique' properties.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # In Chef Infra Client 13 the "file" variable for use within the verify property was replaced with the "path" variable.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # The `windows_feature` resource no longer supports setting the `install_method` to `:servermanagercmd`. `:windows_feature_dism` or `:windows_feature_powershell` should be used instead.
23
23
  #
24
24
  # @example
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefDeprecations
22
+ module Deprecations
23
23
  # In Chef Infra Client 13 and later the `windows_package` resource's `installer_type` property must be a symbol.
24
24
  #
25
25
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # The :change action in the windows_task resource was removed when windows_task was added to Chef Infra Client 13+
23
23
  # The default action of :create should can now be used to create an update tasks.
24
24
  #
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # Use node['platform_version'] and node['kernel'] data instead of the deprecated Windows::VersionHelper helpers from the Windows cookbook.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # Do not include the deprecated xml::ruby recipe to install the nokogiri gem. Chef Infra Client 12 and later ships with nokogiri included.
23
23
  #
24
24
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefDeprecations
21
+ module Deprecations
22
22
  # Don't include the deprecated yum DNF compatibility recipe, which is no longer necessary
23
23
  # as Chef Infra Client includes DNF package support
24
24
  #
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefEffortless
22
+ module Effortless
23
23
  # Policyfiles should be used for cookbook dependency solving instead of a Berkshelf Berksfile.
24
24
  #
25
25
  class Berksfile < Base
@@ -19,7 +19,7 @@
19
19
  module RuboCop
20
20
  module Cop
21
21
  module Chef
22
- module ChefEffortless
22
+ module Effortless
23
23
  # Chef Vault is not supported in the Effortless pattern, so usage of Chef Vault must be shifted to another secrets management solution before leveraging the Effortless pattern.
24
24
  #
25
25
  # @example
@@ -18,7 +18,7 @@
18
18
  module RuboCop
19
19
  module Cop
20
20
  module Chef
21
- module ChefEffortless
21
+ module Effortless
22
22
  # Data bags cannot be used with the Effortless Infra pattern
23
23
  #
24
24
  # @example