puppet 4.8.2-x86-mingw32 → 4.9.0-x86-mingw32

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of puppet might be problematic. Click here for more details.

Files changed (348) hide show
  1. checksums.yaml +15 -0
  2. data/CONTRIBUTING.md +25 -1
  3. data/Gemfile +6 -0
  4. data/Rakefile +1 -0
  5. data/ext/project_data.yaml +5 -1
  6. data/ext/windows/service/daemon.rb +2 -1
  7. data/install.rb +43 -6
  8. data/lib/hiera/puppet_function.rb +15 -17
  9. data/lib/hiera/scope.rb +12 -14
  10. data/lib/puppet.rb +52 -0
  11. data/lib/puppet/application/face_base.rb +4 -0
  12. data/lib/puppet/application/lookup.rb +4 -2
  13. data/lib/puppet/application/resource.rb +1 -1
  14. data/lib/puppet/data_providers.rb +6 -3
  15. data/lib/puppet/data_providers/data_adapter.rb +6 -0
  16. data/lib/puppet/data_providers/data_function_support.rb +7 -0
  17. data/lib/puppet/data_providers/function_env_data_provider.rb +7 -0
  18. data/lib/puppet/data_providers/function_module_data_provider.rb +6 -0
  19. data/lib/puppet/data_providers/hiera_config.rb +31 -10
  20. data/lib/puppet/data_providers/hiera_env_data_provider.rb +6 -0
  21. data/lib/puppet/data_providers/hiera_interpolate.rb +2 -1
  22. data/lib/puppet/data_providers/hiera_module_data_provider.rb +6 -0
  23. data/lib/puppet/data_providers/hiera_support.rb +6 -0
  24. data/lib/puppet/data_providers/json_data_provider_factory.rb +12 -0
  25. data/lib/puppet/data_providers/yaml_data_provider_factory.rb +12 -0
  26. data/lib/puppet/defaults.rb +25 -4
  27. data/lib/puppet/face/ca.rb +2 -0
  28. data/lib/puppet/face/certificate_request.rb +2 -0
  29. data/lib/puppet/face/certificate_revocation_list.rb +2 -0
  30. data/lib/puppet/face/file.rb +3 -0
  31. data/lib/puppet/face/help.rb +19 -17
  32. data/lib/puppet/face/help/face.erb +3 -0
  33. data/lib/puppet/face/key.rb +1 -0
  34. data/lib/puppet/face/man.rb +4 -2
  35. data/lib/puppet/face/module/generate.rb +1 -1
  36. data/lib/puppet/face/status.rb +2 -0
  37. data/lib/puppet/feature/base.rb +9 -2
  38. data/lib/puppet/feature/hocon.rb +3 -0
  39. data/lib/puppet/file_system.rb +15 -3
  40. data/lib/puppet/file_system/windows.rb +8 -0
  41. data/lib/puppet/forge.rb +6 -6
  42. data/lib/puppet/forge/repository.rb +1 -2
  43. data/lib/puppet/functions/binary_file.rb +4 -10
  44. data/lib/puppet/functions/hiera_array.rb +1 -1
  45. data/lib/puppet/functions/hiera_include.rb +1 -1
  46. data/lib/puppet/functions/hocon_data.rb +24 -0
  47. data/lib/puppet/functions/json_data.rb +18 -0
  48. data/lib/puppet/functions/yaml_data.rb +21 -0
  49. data/lib/puppet/generate/type.rb +1 -1
  50. data/lib/puppet/graph/simple_graph.rb +4 -2
  51. data/lib/puppet/indirector/file_bucket_file/file.rb +10 -2
  52. data/lib/puppet/indirector/request.rb +5 -1
  53. data/lib/puppet/interface.rb +14 -2
  54. data/lib/puppet/interface/face_collection.rb +1 -1
  55. data/lib/puppet/module.rb +14 -2
  56. data/lib/puppet/module_tool.rb +4 -4
  57. data/lib/puppet/module_tool/applications/builder.rb +3 -2
  58. data/lib/puppet/module_tool/applications/installer.rb +14 -14
  59. data/lib/puppet/module_tool/applications/upgrader.rb +13 -13
  60. data/lib/puppet/module_tool/installed_modules.rb +7 -7
  61. data/lib/puppet/module_tool/local_tarball.rb +3 -3
  62. data/lib/puppet/module_tool/metadata.rb +1 -1
  63. data/lib/puppet/network/http/connection.rb +2 -0
  64. data/lib/puppet/network/http/webrick.rb +2 -1
  65. data/lib/puppet/parser/functions/hiera.rb +14 -0
  66. data/lib/puppet/parser/functions/hiera_array.rb +14 -0
  67. data/lib/puppet/parser/functions/hiera_hash.rb +14 -0
  68. data/lib/puppet/parser/functions/hiera_include.rb +14 -0
  69. data/lib/puppet/parser/scope.rb +14 -20
  70. data/lib/puppet/plugins/data_providers.rb +2 -0
  71. data/lib/puppet/plugins/data_providers/data_provider.rb +108 -17
  72. data/lib/puppet/plugins/data_providers/registry.rb +2 -36
  73. data/lib/puppet/pops.rb +6 -9
  74. data/lib/puppet/pops/adaptable.rb +0 -3
  75. data/lib/puppet/pops/binder/producers.rb +3 -3
  76. data/lib/puppet/pops/evaluator/access_operator.rb +4 -4
  77. data/lib/puppet/pops/evaluator/closure.rb +1 -1
  78. data/lib/puppet/pops/evaluator/compare_operator.rb +4 -4
  79. data/lib/puppet/pops/evaluator/evaluator_impl.rb +1 -1
  80. data/lib/puppet/pops/issues.rb +4 -0
  81. data/lib/puppet/pops/label_provider.rb +14 -0
  82. data/lib/puppet/pops/loader/loader_paths.rb +3 -1
  83. data/lib/puppet/pops/loader/module_loaders.rb +21 -7
  84. data/lib/puppet/pops/loader/typed_name.rb +0 -2
  85. data/lib/puppet/pops/loaders.rb +31 -12
  86. data/lib/puppet/pops/lookup.rb +4 -3
  87. data/lib/puppet/pops/lookup/configured_data_provider.rb +87 -0
  88. data/lib/puppet/pops/lookup/context.rb +121 -71
  89. data/lib/puppet/pops/lookup/data_adapter.rb +27 -0
  90. data/lib/puppet/pops/lookup/data_dig_function_provider.rb +55 -0
  91. data/lib/puppet/pops/lookup/data_hash_function_provider.rb +111 -0
  92. data/lib/puppet/pops/lookup/data_provider.rb +102 -0
  93. data/lib/puppet/pops/lookup/environment_data_provider.rb +27 -0
  94. data/lib/puppet/pops/lookup/explainer.rb +122 -82
  95. data/lib/puppet/pops/lookup/function_provider.rb +82 -0
  96. data/lib/puppet/pops/lookup/global_data_provider.rb +49 -0
  97. data/lib/puppet/pops/lookup/hiera_config.rb +601 -0
  98. data/lib/puppet/pops/lookup/interpolation.rb +56 -35
  99. data/lib/puppet/pops/lookup/invocation.rb +179 -101
  100. data/lib/puppet/pops/lookup/location_resolver.rb +72 -0
  101. data/lib/puppet/pops/lookup/lookup_adapter.rb +451 -0
  102. data/lib/puppet/pops/lookup/lookup_key.rb +99 -0
  103. data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +119 -0
  104. data/lib/puppet/pops/lookup/module_data_provider.rb +58 -0
  105. data/lib/puppet/pops/lookup/sub_lookup.rb +8 -4
  106. data/lib/puppet/pops/merge_strategy.rb +120 -39
  107. data/lib/puppet/pops/parser/egrammar.ra +2 -0
  108. data/lib/puppet/pops/parser/eparser.rb +816 -808
  109. data/lib/puppet/pops/parser/locator.rb +3 -3
  110. data/lib/puppet/pops/parser/slurp_support.rb +4 -3
  111. data/lib/puppet/pops/pcore.rb +21 -12
  112. data/lib/puppet/pops/serialization/abstract_reader.rb +17 -7
  113. data/lib/puppet/pops/serialization/abstract_writer.rb +27 -12
  114. data/lib/puppet/pops/serialization/deserializer.rb +17 -4
  115. data/lib/puppet/pops/serialization/extension.rb +37 -8
  116. data/lib/puppet/pops/serialization/object.rb +14 -6
  117. data/lib/puppet/pops/serialization/rgen.rb +2 -1
  118. data/lib/puppet/pops/serialization/serializer.rb +30 -7
  119. data/lib/puppet/pops/types/implementation_registry.rb +1 -1
  120. data/lib/puppet/pops/types/p_object_type.rb +55 -12
  121. data/lib/puppet/pops/types/p_sem_ver_range_type.rb +27 -27
  122. data/lib/puppet/pops/types/p_sem_ver_type.rb +12 -12
  123. data/lib/puppet/pops/types/p_timespan_type.rb +6 -6
  124. data/lib/puppet/pops/types/p_timestamp_type.rb +2 -2
  125. data/lib/puppet/pops/types/p_type_set_type.rb +7 -16
  126. data/lib/puppet/pops/types/recursion_guard.rb +64 -20
  127. data/lib/puppet/pops/types/ruby_generator.rb +10 -0
  128. data/lib/puppet/pops/types/type_calculator.rb +23 -13
  129. data/lib/puppet/pops/types/type_factory.rb +20 -9
  130. data/lib/puppet/pops/types/type_formatter.rb +37 -17
  131. data/lib/puppet/pops/types/type_mismatch_describer.rb +7 -6
  132. data/lib/puppet/pops/types/type_parser.rb +6 -0
  133. data/lib/puppet/pops/types/types.rb +225 -132
  134. data/lib/puppet/pops/validation.rb +1 -1
  135. data/lib/puppet/pops/validation/checker4_0.rb +12 -2
  136. data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
  137. data/lib/puppet/pops/visitor.rb +4 -3
  138. data/lib/puppet/provider/mcx/mcxcontent.rb +2 -1
  139. data/lib/puppet/provider/nameservice.rb +15 -0
  140. data/lib/puppet/provider/package/appdmg.rb +1 -1
  141. data/lib/puppet/provider/package/dnf.rb +1 -1
  142. data/lib/puppet/provider/package/pkg.rb +1 -1
  143. data/lib/puppet/provider/package/pkgdmg.rb +1 -1
  144. data/lib/puppet/provider/package/pkgng.rb +1 -1
  145. data/lib/puppet/provider/package/rpm.rb +2 -2
  146. data/lib/puppet/provider/service/smf.rb +3 -3
  147. data/lib/puppet/provider/service/systemd.rb +5 -1
  148. data/lib/puppet/provider/user/directoryservice.rb +1 -0
  149. data/lib/puppet/provider/user/user_role_add.rb +15 -0
  150. data/lib/puppet/provider/yumrepo/inifile.rb +2 -2
  151. data/lib/puppet/provider/zone/solaris.rb +4 -1
  152. data/lib/puppet/reference/indirection.rb +1 -1
  153. data/lib/puppet/resource.rb +2 -3
  154. data/lib/puppet/resource/catalog.rb +12 -4
  155. data/lib/puppet/resource/type.rb +3 -3
  156. data/lib/puppet/settings.rb +1 -1
  157. data/lib/puppet/settings/config_file.rb +2 -1
  158. data/lib/puppet/settings/directory_setting.rb +6 -0
  159. data/lib/puppet/settings/environment_conf.rb +6 -2
  160. data/lib/puppet/settings/file_or_directory_setting.rb +6 -0
  161. data/lib/puppet/settings/file_setting.rb +10 -0
  162. data/lib/puppet/ssl/certificate_authority.rb +13 -2
  163. data/lib/puppet/ssl/host.rb +23 -1
  164. data/lib/puppet/transaction/additional_resource_generator.rb +7 -0
  165. data/lib/puppet/type/user.rb +16 -3
  166. data/lib/puppet/util.rb +1 -0
  167. data/lib/puppet/util/execution.rb +3 -3
  168. data/lib/puppet/util/filetype.rb +11 -5
  169. data/lib/puppet/util/logging.rb +2 -1
  170. data/lib/puppet/util/network_device/config.rb +1 -1
  171. data/lib/puppet/util/plist.rb +6 -0
  172. data/lib/puppet/util/profiler/aggregate.rb +1 -1
  173. data/lib/puppet/util/rdoc/generators/puppet_generator.rb +2 -2
  174. data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +2 -1
  175. data/lib/puppet/util/windows/adsi.rb +15 -12
  176. data/lib/puppet/vendor/load_semantic_puppet.rb +1 -0
  177. data/lib/puppet/vendor/pathspec/lib/pathspec.rb +2 -1
  178. data/lib/puppet/vendor/require_vendored.rb +0 -1
  179. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +17 -0
  180. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency.rb +7 -7
  181. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph.rb +2 -2
  182. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph_node.rb +2 -2
  183. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/module_release.rb +58 -0
  184. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/source.rb +2 -2
  185. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/unsatisfiable_graph.rb +2 -2
  186. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +3 -0
  187. data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/locales/config.yaml +21 -0
  188. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version.rb +48 -21
  189. data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version_range.rb +15 -17
  190. data/lib/puppet/version.rb +1 -1
  191. data/lib/semver.rb +19 -12
  192. data/locales/config.yaml +29 -0
  193. data/locales/puppet.pot +79 -0
  194. data/man/man5/puppet.conf.5 +1 -1
  195. data/spec/fixtures/unit/application/environments/puppet_func_provider/functions/{data.pp → environment/data.pp} +0 -0
  196. data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +2 -0
  197. data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/data/common.yaml +1 -1
  198. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/hiera.yaml +5 -0
  199. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet/bindings/backend/default.rb +9 -0
  200. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet_x/backend/special_data_provider_factory.rb +23 -0
  201. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/manifests/init.pp +5 -0
  202. data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/metadata.json +9 -0
  203. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +1 -0
  204. data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/manifests/init.pp +1 -1
  205. data/spec/fixtures/unit/functions/lookup/data/common.yaml +19 -0
  206. data/spec/fixtures/unit/functions/lookup_fixture/data/common.yaml +19 -0
  207. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/environment.conf +0 -0
  208. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/lib/puppet/functions/environment/data.rb +0 -0
  209. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -0
  210. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -0
  211. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/manifests/init.pp +0 -0
  212. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/bindings/bad_data/default.rb +0 -0
  213. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +0 -0
  214. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/manifests/init.pp +0 -0
  215. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/bindings/bca/default.rb +0 -0
  216. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/functions/bca/data.rb +0 -0
  217. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/manifests/init.pp +0 -0
  218. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/data/empty.json +0 -0
  219. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/hiera.yaml +0 -0
  220. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/manifests/init.pp +0 -0
  221. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/metadata.json +0 -0
  222. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/data/empty_key.json +0 -0
  223. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/hiera.yaml +0 -0
  224. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/manifests/init.pp +0 -0
  225. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/metadata.json +0 -0
  226. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/data/empty_key.yaml +0 -0
  227. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/hiera.yaml +0 -0
  228. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/manifests/init.pp +0 -0
  229. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/metadata.json +0 -0
  230. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/data/empty.yaml +0 -0
  231. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/hiera.yaml +0 -0
  232. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/manifests/init.pp +0 -0
  233. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/metadata.json +0 -0
  234. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/data/first.json +0 -0
  235. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/hiera.yaml +0 -0
  236. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/manifests/init.pp +0 -0
  237. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/metadata.json +0 -0
  238. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +0 -0
  239. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/manifests/init.pp +0 -0
  240. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/metadata.json +0 -0
  241. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +0 -0
  242. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +0 -0
  243. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/manifests/init.pp +0 -0
  244. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/metadata.json +0 -0
  245. data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/no_provider/manifests/init.pp +0 -0
  246. data/spec/integration/application/apply_spec.rb +88 -2
  247. data/spec/integration/application/lookup_spec.rb +155 -0
  248. data/spec/integration/data_binding_spec.rb +5 -5
  249. data/spec/integration/defaults_spec.rb +13 -0
  250. data/spec/integration/environments/default_manifest_spec.rb +16 -16
  251. data/spec/integration/environments/setting_hooks_spec.rb +1 -1
  252. data/spec/integration/test/test_helper_spec.rb +6 -2
  253. data/spec/integration/transaction_spec.rb +74 -0
  254. data/spec/integration/util/execution_spec.rb +8 -0
  255. data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
  256. data/spec/lib/puppet_spec/module_tool/stub_source.rb +1 -1
  257. data/spec/lib/puppet_spec/unindent.rb +2 -2
  258. data/spec/unit/application/face_base_spec.rb +16 -0
  259. data/spec/unit/application/lookup_spec.rb +262 -227
  260. data/spec/unit/data_providers/{sample_data_provider_spec.rb → custom_data_provider_spec.rb} +14 -16
  261. data/spec/unit/data_providers/function_data_provider_spec.rb +2 -2
  262. data/spec/unit/data_providers/hiera_data_provider_spec.rb +60 -97
  263. data/spec/unit/defaults_spec.rb +1 -1
  264. data/spec/unit/face/ca_spec.rb +10 -0
  265. data/spec/unit/face/certificate_request_spec.rb +10 -0
  266. data/spec/unit/face/certificate_revocation_list_spec.rb +10 -0
  267. data/spec/unit/face/file_spec.rb +4 -0
  268. data/spec/unit/face/help_spec.rb +17 -0
  269. data/spec/unit/face/key_spec.rb +10 -0
  270. data/spec/unit/face/status_spec.rb +10 -0
  271. data/spec/unit/file_system_spec.rb +143 -6
  272. data/spec/unit/functions/binary_file_spec.rb +1 -1
  273. data/spec/unit/functions/hiera_spec.rb +257 -47
  274. data/spec/unit/functions/lookup_fixture_spec.rb +693 -0
  275. data/spec/unit/functions/lookup_spec.rb +1319 -608
  276. data/spec/unit/functions/new_spec.rb +3 -3
  277. data/spec/unit/graph/rb_tree_map_spec.rb +1 -1
  278. data/spec/unit/graph/simple_graph_spec.rb +1 -1
  279. data/spec/unit/hiera/scope_spec.rb +4 -4
  280. data/spec/unit/indirector/request_spec.rb +9 -0
  281. data/spec/unit/interface_spec.rb +27 -0
  282. data/spec/unit/man_spec.rb +1 -1
  283. data/spec/unit/module_spec.rb +1 -1
  284. data/spec/unit/module_tool/applications/builder_spec.rb +16 -1
  285. data/spec/unit/module_tool/applications/installer_spec.rb +1 -1
  286. data/spec/unit/module_tool/applications/upgrader_spec.rb +1 -1
  287. data/spec/unit/module_tool/installed_modules_spec.rb +6 -6
  288. data/spec/unit/module_tool_spec.rb +3 -3
  289. data/spec/unit/network/http/connection_spec.rb +10 -0
  290. data/spec/unit/network/http/webrick_spec.rb +1 -1
  291. data/spec/unit/pops/evaluator/access_ops_spec.rb +2 -2
  292. data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +9 -9
  293. data/spec/unit/pops/loaders/environment_loader_spec.rb +172 -0
  294. data/spec/unit/pops/lookup/context_spec.rb +45 -16
  295. data/spec/unit/pops/lookup/interpolation_spec.rb +28 -20
  296. data/spec/unit/pops/lookup/lookup_spec.rb +197 -0
  297. data/spec/unit/pops/merge_strategy_spec.rb +18 -0
  298. data/spec/unit/pops/parser/lexer2_spec.rb +16 -1
  299. data/spec/unit/pops/parser/parse_site_spec.rb +4 -0
  300. data/spec/unit/pops/serialization/packer_spec.rb +4 -23
  301. data/spec/unit/pops/serialization/serialization_spec.rb +32 -8
  302. data/spec/unit/pops/types/p_object_type_spec.rb +68 -3
  303. data/spec/unit/pops/types/p_sem_ver_type_spec.rb +4 -4
  304. data/spec/unit/pops/types/p_type_set_type_spec.rb +31 -2
  305. data/spec/unit/pops/types/type_acceptor_spec.rb +18 -17
  306. data/spec/unit/pops/types/type_calculator_spec.rb +39 -40
  307. data/spec/unit/pops/types/type_factory_spec.rb +3 -3
  308. data/spec/unit/pops/types/type_formatter_spec.rb +7 -3
  309. data/spec/unit/pops/types/type_mismatch_describer_spec.rb +13 -2
  310. data/spec/unit/pops/types/types_spec.rb +25 -2
  311. data/spec/unit/pops/validator/validator_spec.rb +60 -4
  312. data/spec/unit/provider/nameservice_spec.rb +42 -0
  313. data/spec/unit/provider/package/aptrpm_spec.rb +1 -1
  314. data/spec/unit/provider/package/pkg_spec.rb +22 -0
  315. data/spec/unit/provider/package/pkgng_spec.rb +12 -0
  316. data/spec/unit/provider/package/rpm_spec.rb +8 -8
  317. data/spec/unit/provider/service/smf_spec.rb +13 -11
  318. data/spec/unit/provider/service/systemd_spec.rb +8 -1
  319. data/spec/unit/provider/user/useradd_spec.rb +1 -0
  320. data/spec/unit/puppet_spec.rb +14 -0
  321. data/spec/unit/resource/catalog_spec.rb +15 -9
  322. data/spec/unit/resource_spec.rb +20 -17
  323. data/spec/unit/semver_spec.rb +14 -0
  324. data/spec/unit/ssl/certificate_authority_spec.rb +12 -1
  325. data/spec/unit/transaction/additional_resource_generator_spec.rb +11 -0
  326. data/spec/unit/type/user_spec.rb +32 -6
  327. data/spec/unit/util/filetype_spec.rb +3 -3
  328. data/spec/unit/util/yaml_spec.rb +1 -1
  329. data/spec/unit/util_spec.rb +10 -2
  330. data/tasks/i18n.rake +20 -0
  331. metadata +2661 -2607
  332. data/lib/puppet/data_providers/lookup_adapter.rb +0 -254
  333. data/lib/puppet/vendor/load_semantic.rb +0 -1
  334. data/lib/puppet/vendor/semantic/Gemfile +0 -20
  335. data/lib/puppet/vendor/semantic/PUPPET_README.md +0 -6
  336. data/lib/puppet/vendor/semantic/Rakefile +0 -69
  337. data/lib/puppet/vendor/semantic/lib/semantic.rb +0 -7
  338. data/lib/puppet/vendor/semantic/lib/semantic/dependency/module_release.rb +0 -60
  339. data/lib/puppet/vendor/semantic/spec/spec_helper.rb +0 -24
  340. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_node_spec.rb +0 -141
  341. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_spec.rb +0 -162
  342. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/module_release_spec.rb +0 -143
  343. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/source_spec.rb +0 -5
  344. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/unsatisfiable_graph_spec.rb +0 -44
  345. data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency_spec.rb +0 -383
  346. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_range_spec.rb +0 -307
  347. data/lib/puppet/vendor/semantic/spec/unit/semantic/version_spec.rb +0 -608
  348. data/spec/fixtures/unit/data_providers/environments/sample/manifests/site.pp +0 -6
@@ -0,0 +1,58 @@
1
+ require 'semantic_puppet/dependency'
2
+
3
+ module SemanticPuppet
4
+ module Dependency
5
+ class ModuleRelease
6
+ include GraphNode
7
+
8
+ attr_reader :name, :version
9
+
10
+ # Create a new instance of a module release.
11
+ #
12
+ # @param source [SemanticPuppet::Dependency::Source]
13
+ # @param name [String]
14
+ # @param version [SemanticPuppet::Version]
15
+ # @param dependencies [{String => SemanticPuppet::VersionRange}]
16
+ def initialize(source, name, version, dependencies = {})
17
+ @source = source
18
+ @name = name.freeze
19
+ @version = version.freeze
20
+
21
+ dependencies.each do |name, range|
22
+ add_constraint('initialize', name, range.to_s) do |node|
23
+ range === node.version
24
+ end
25
+
26
+ add_dependency(name)
27
+ end
28
+ end
29
+
30
+ def priority
31
+ @source.priority
32
+ end
33
+
34
+ def <=>(oth)
35
+ our_key = [ priority, name, version ]
36
+ their_key = [ oth.priority, oth.name, oth.version ]
37
+
38
+ return our_key <=> their_key
39
+ end
40
+
41
+ def eql?(other)
42
+ other.is_a?(ModuleRelease) &&
43
+ @name.eql?(other.name) &&
44
+ @version.eql?(other.version) &&
45
+ dependencies.eql?(other.dependencies)
46
+ end
47
+ alias == eql?
48
+
49
+ def hash
50
+ @name.hash ^ @version.hash
51
+ end
52
+
53
+ def to_s
54
+ "#<#{self.class} #{name}@#{version}>"
55
+ end
56
+ end
57
+ end
58
+ end
@@ -1,6 +1,6 @@
1
- require 'semantic/dependency'
1
+ require 'semantic_puppet/dependency'
2
2
 
3
- module Semantic
3
+ module SemanticPuppet
4
4
  module Dependency
5
5
  class Source
6
6
  def self.priority
@@ -1,6 +1,6 @@
1
- require 'semantic/dependency'
1
+ require 'semantic_puppet/dependency'
2
2
 
3
- module Semantic
3
+ module SemanticPuppet
4
4
  module Dependency
5
5
  class UnsatisfiableGraph < StandardError
6
6
  attr_reader :graph
@@ -0,0 +1,3 @@
1
+ module SemanticPuppet
2
+ VERSION = '0.1.4'
3
+ end
@@ -0,0 +1,21 @@
1
+ ---
2
+ # This is the project-specific configuration file for setting up
3
+ # fast_gettext for your project.
4
+ gettext:
5
+ # This is used for the name of the .pot and .po files; they will be
6
+ # called <project_name>.pot?
7
+ project_name: 'semantic_puppet'
8
+ # This is used in comments in the .pot and .po files to indicate what
9
+ # project the files belong to and should bea little more desctiptive than
10
+ # <project_name>
11
+ package_name: Semantic Puppet Gem
12
+ # The locale that the default messages in the .pot file are in
13
+ default_locale: en
14
+ # The email used for sending bug reports.
15
+ bugs_address: docs@puppetlabs.com
16
+ # The holder of the copyright.
17
+ copyright_holder: Puppet, Inc.
18
+ # Patterns for +Dir.glob+ used to find all files that might contain
19
+ # translatable content, relative to the project root directory
20
+ source_files:
21
+ - 'lib/**/*.rb'
@@ -1,8 +1,8 @@
1
- require 'semantic'
1
+ require 'semantic_puppet'
2
2
 
3
- module Semantic
3
+ module SemanticPuppet
4
4
 
5
- # @note Semantic::Version subclasses Numeric so that it has sane Range
5
+ # @note SemanticPuppet::Version subclasses Numeric so that it has sane Range
6
6
  # semantics in Ruby 1.9+.
7
7
  class Version < Numeric
8
8
  include Comparable
@@ -10,44 +10,47 @@ module Semantic
10
10
  class ValidationFailure < ArgumentError; end
11
11
 
12
12
  class << self
13
- LOOSE_REGEX = /
14
- \A
15
- (\d+)[.](\d+)[.](\d+) # Major . Minor . Patch
16
- (?: [-](.*?))? # Prerelease
17
- (?: [+](.*?))? # Build
18
- \Z
19
- /x
20
-
21
13
  # Parse a Semantic Version string.
22
14
  #
23
15
  # @param ver [String] the version string to parse
24
16
  # @return [Version] a comparable {Version} object
25
17
  def parse(ver)
26
- match, major, minor, patch, prerelease, build = *ver.match(LOOSE_REGEX)
18
+ match, major, minor, patch, prerelease, build = *ver.match(/\A#{REGEX_FULL}\Z/)
27
19
 
28
20
  if match.nil?
29
- raise 'Version numbers MUST begin with three dot-separated numbers'
30
- elsif [major, minor, patch].any? { |x| x =~ /^0\d+/ }
31
- raise 'Version numbers MUST NOT contain leading zeroes'
21
+ raise _("Unable to parse '%{version}' as a semantic version identifier") % {version: ver}
32
22
  end
33
23
 
34
24
  prerelease = parse_prerelease(prerelease) if prerelease
35
- build = parse_build_metadata(build) if build
25
+ # Build metadata is not yet supported in semantic_puppet, but we hope to.
26
+ # The following code prevents build metadata for now.
27
+ #build = parse_build_metadata(build) if build
28
+ if !build.nil?
29
+ raise _("'%{version}' MUST NOT include build identifiers") % {version: ver}
30
+ end
36
31
 
37
32
  self.new(major.to_i, minor.to_i, patch.to_i, prerelease, build)
38
33
  end
39
34
 
35
+ # Validate a Semantic Version string.
36
+ #
37
+ # @param ver [String] the version string to validate
38
+ # @return [bool] whether or not the string represents a valid Semantic Version
39
+ def valid?(ver)
40
+ !!(ver =~ /\A#{REGEX_FULL}\Z/)
41
+ end
42
+
40
43
  private
41
44
  def parse_prerelease(prerelease)
42
45
  subject = 'Prerelease identifiers'
43
46
  prerelease = prerelease.split('.', -1)
44
47
 
45
48
  if prerelease.empty? or prerelease.any? { |x| x.empty? }
46
- raise "#{subject} MUST NOT be empty"
49
+ raise _("%{subject} MUST NOT be empty") % {subject: subject}
47
50
  elsif prerelease.any? { |x| x =~ /[^0-9a-zA-Z-]/ }
48
- raise "#{subject} MUST use only ASCII alphanumerics and hyphens"
51
+ raise _("%{subject} MUST use only ASCII alphanumerics and hyphens") % {subject: subject}
49
52
  elsif prerelease.any? { |x| x =~ /^0\d+$/ }
50
- raise "#{subject} MUST NOT contain leading zeroes"
53
+ raise _("%{subject} MUST NOT contain leading zeroes") % {subject: subject}
51
54
  end
52
55
 
53
56
  return prerelease.map { |x| x =~ /^\d+$/ ? x.to_i : x }
@@ -58,9 +61,9 @@ module Semantic
58
61
  build = build.split('.', -1)
59
62
 
60
63
  if build.empty? or build.any? { |x| x.empty? }
61
- raise "#{subject} MUST NOT be empty"
64
+ raise _("%{subject} MUST NOT be empty") % {subject: subject}
62
65
  elsif build.any? { |x| x =~ /[^0-9a-zA-Z-]/ }
63
- raise "#{subject} MUST use only ASCII alphanumerics and hyphens"
66
+ raise _("%{subject} MUST use only ASCII alphanumerics and hyphens") % {subject: subject}
64
67
  end
65
68
 
66
69
  return build
@@ -112,6 +115,16 @@ module Semantic
112
115
  return compare_prerelease(other)
113
116
  end
114
117
 
118
+ def eql?(other)
119
+ other.is_a?(Version) &&
120
+ @major.eql?(other.major) &&
121
+ @minor.eql?(other.minor) &&
122
+ @patch.eql?(other.patch) &&
123
+ @prerelease.eql?(other.instance_variable_get(:@prerelease)) &&
124
+ @build.eql?(other.instance_variable_get(:@build))
125
+ end
126
+ alias == eql?
127
+
115
128
  def to_s
116
129
  "#{major}.#{minor}.#{patch}" +
117
130
  (@prerelease.nil? || prerelease.empty? ? '' : "-" + prerelease) +
@@ -164,5 +177,19 @@ module Semantic
164
177
  def first_prerelease
165
178
  self.class.new(@major, @minor, @patch, [])
166
179
  end
180
+
181
+ public
182
+
183
+ # Version string matching regexes
184
+ REGEX_NUMERIC = "(0|[1-9]\\d*)[.](0|[1-9]\\d*)[.](0|[1-9]\\d*)" # Major . Minor . Patch
185
+ REGEX_PRE = "(?:[-](.*?))?" # Prerelease
186
+ REGEX_BUILD = "(?:[+](.*?))?" # Build
187
+ REGEX_FULL = REGEX_NUMERIC + REGEX_PRE + REGEX_BUILD
188
+
189
+ # The lowest precedence Version possible
190
+ MIN = self.new(0, 0, 0, []).freeze
191
+
192
+ # The highest precedence Version possible
193
+ MAX = self.new((1.0/0.0), 0, 0).freeze
167
194
  end
168
195
  end
@@ -1,6 +1,6 @@
1
- require 'semantic'
1
+ require 'semantic_puppet'
2
2
 
3
- module Semantic
3
+ module SemanticPuppet
4
4
  class VersionRange < Range
5
5
  class << self
6
6
  # Parses a version range string into a comparable {VersionRange} instance.
@@ -46,7 +46,7 @@ module Semantic
46
46
  end
47
47
 
48
48
  rescue ArgumentError
49
- raise ArgumentError, "Unparsable version range: #{range_str.inspect}"
49
+ raise ArgumentError, _("Unparsable version range: %{range}") % {range: range_str.inspect}
50
50
  end
51
51
 
52
52
  private
@@ -123,7 +123,7 @@ module Semantic
123
123
  start = process_loose_expr(expr).last.send(:first_prerelease)
124
124
  end
125
125
 
126
- self.new(start, MAX_VERSION)
126
+ self.new(start, SemanticPuppet::Version::MAX)
127
127
  end
128
128
 
129
129
  # Returns a range covering all versions greater than or equal to the given
@@ -139,7 +139,7 @@ module Semantic
139
139
  start = process_loose_expr(expr).first.send(:first_prerelease)
140
140
  end
141
141
 
142
- self.new(start, MAX_VERSION)
142
+ self.new(start, SemanticPuppet::Version::MAX)
143
143
  end
144
144
 
145
145
  # Returns a range covering all versions less than the given `expr`.
@@ -154,7 +154,7 @@ module Semantic
154
154
  finish = process_loose_expr(expr).first.send(:first_prerelease)
155
155
  end
156
156
 
157
- self.new(MIN_VERSION, finish, true)
157
+ self.new(SemanticPuppet::Version::MIN, finish, true)
158
158
  end
159
159
 
160
160
  # Returns a range covering all versions less than or equal to the given
@@ -166,10 +166,10 @@ module Semantic
166
166
  def parse_lte_expression(expr)
167
167
  if expr =~ /^[^+]*-/
168
168
  finish = Version.parse(expr)
169
- self.new(MIN_VERSION, finish)
169
+ self.new(SemanticPuppet::Version::MIN, finish)
170
170
  else
171
171
  finish = process_loose_expr(expr).last.send(:first_prerelease)
172
- self.new(MIN_VERSION, finish, true)
172
+ self.new(SemanticPuppet::Version::MIN, finish, true)
173
173
  end
174
174
  end
175
175
 
@@ -190,7 +190,7 @@ module Semantic
190
190
  # @example "Reasonably close" minor version
191
191
  # "~1.2" # => (>=1.2.0 <1.3.0)
192
192
  # @example "Reasonably close" patch version
193
- # "~1.2.3" # => (1.2.3)
193
+ # "~1.2.3" # => (>=1.2.3 <1.3.0)
194
194
  # @example "Reasonably close" prerelease version
195
195
  # "~1.2.3-alpha" # => (>=1.2.3-alpha <1.2.4)
196
196
  #
@@ -201,6 +201,10 @@ module Semantic
201
201
 
202
202
  if parsed.stable?
203
203
  parsed = parsed.send(:first_prerelease)
204
+
205
+ # Handle the special case of "~1.2.3" expressions.
206
+ succ = succ.next(:minor) if ((parsed.major == succ.major) && (parsed.minor == succ.minor))
207
+
204
208
  succ = succ.send(:first_prerelease)
205
209
  self.new(parsed, succ, true)
206
210
  else
@@ -323,12 +327,6 @@ module Semantic
323
327
 
324
328
  private
325
329
 
326
- # The lowest precedence Version possible
327
- MIN_VERSION = Version.new(0, 0, 0, []).freeze
328
-
329
- # The highest precedence Version possible
330
- MAX_VERSION = Version.new((1.0/0.0), 0, 0).freeze
331
-
332
330
  # Determines whether this {VersionRange} has an earlier endpoint than the
333
331
  # give `other` range.
334
332
  #
@@ -342,13 +340,13 @@ module Semantic
342
340
  # Describes whether this range has an upper limit.
343
341
  # @return [Boolean] true if this range has no upper limit
344
342
  def open_end?
345
- self.end == MAX_VERSION
343
+ self.end == SemanticPuppet::Version::MAX
346
344
  end
347
345
 
348
346
  # Describes whether this range has a lower limit.
349
347
  # @return [Boolean] true if this range has no lower limit
350
348
  def open_begin?
351
- self.begin == MIN_VERSION
349
+ self.begin == SemanticPuppet::Version::MIN
352
350
  end
353
351
 
354
352
  # Describes whether this range follows the patterns for matching all
@@ -7,7 +7,7 @@
7
7
 
8
8
 
9
9
  module Puppet
10
- PUPPETVERSION = '4.8.2'
10
+ PUPPETVERSION = '4.9.0'
11
11
 
12
12
  ##
13
13
  # version is a public API method intended to always provide a fast and
@@ -2,6 +2,8 @@ require 'puppet/util/monkey_patches'
2
2
 
3
3
  # We need to subclass Numeric to force range comparisons not to try to iterate over SemVer
4
4
  # and instead use numeric comparisons (eg >, <, >=, <=)
5
+ # @api private
6
+ # @deprecated
5
7
  class SemVer < Numeric
6
8
  include Comparable
7
9
 
@@ -20,17 +22,17 @@ class SemVer < Numeric
20
22
  vstring =~ /-/ ? vstring : vstring + '-'
21
23
  end
22
24
 
23
- def self.[](range)
25
+ def self.[](range, suppress_deprecation_warning = false)
24
26
  range.gsub(/([><=])\s+/, '\1').split(/\b\s+(?!-)/).map do |r|
25
27
  case r
26
28
  when SemVer::VERSION
27
- SemVer.new(pre(r)) .. SemVer.new(r)
29
+ SemVer.new(pre(r), suppress_deprecation_warning) .. SemVer.new(r, suppress_deprecation_warning)
28
30
  when SemVer::SIMPLE_RANGE
29
31
  r += ".0" unless SemVer.valid?(r.gsub(/x/i, '0'))
30
- SemVer.new(r.gsub(/x/i, '0'))...SemVer.new(r.gsub(/(\d+)\.x/i) { "#{$1.to_i + 1}.0" } + '-')
32
+ SemVer.new(r.gsub(/x/i, '0'))...SemVer.new(r.gsub(/(\d+)\.x/i) { "#{$1.to_i + 1}.0" } + '-', suppress_deprecation_warning)
31
33
  when /\s+-\s+/
32
34
  a, b = r.split(/\s+-\s+/)
33
- SemVer.new(pre(a)) .. SemVer.new(b)
35
+ SemVer.new(pre(a)) .. SemVer.new(b, suppress_deprecation_warning)
34
36
  when /^~/
35
37
  ver = r.sub(/~/, '').split('.').map(&:to_i)
36
38
  start = (ver + [0] * (3 - ver.length)).join('.')
@@ -39,13 +41,13 @@ class SemVer < Numeric
39
41
  ver[-1] = ver.last + 1
40
42
 
41
43
  finish = (ver + [0] * (3 - ver.length)).join('.')
42
- SemVer.new(pre(start)) ... SemVer.new(pre(finish))
44
+ SemVer.new(pre(start), suppress_deprecation_warning) ... SemVer.new(pre(finish), suppress_deprecation_warning)
43
45
  when /^>=/
44
46
  ver = r.sub(/^>=/, '')
45
- SemVer.new(pre(ver)) .. SemVer::MAX
47
+ SemVer.new(pre(ver), suppress_deprecation_warning) .. SemVer::MAX
46
48
  when /^<=/
47
49
  ver = r.sub(/^<=/, '')
48
- SemVer::MIN .. SemVer.new(ver)
50
+ SemVer::MIN .. SemVer.new(ver, suppress_deprecation_warning)
49
51
  when /^>/
50
52
  if r =~ /-/
51
53
  ver = [r[1..-1]]
@@ -53,10 +55,10 @@ class SemVer < Numeric
53
55
  ver = r.sub(/^>/, '').split('.').map(&:to_i)
54
56
  ver[2] = ver.last + 1
55
57
  end
56
- SemVer.new(ver.join('.') + '-') .. SemVer::MAX
58
+ SemVer.new(ver.join('.') + '-', suppress_deprecation_warning) .. SemVer::MAX
57
59
  when /^</
58
60
  ver = r.sub(/^</, '')
59
- SemVer::MIN ... SemVer.new(pre(ver))
61
+ SemVer::MIN ... SemVer.new(pre(ver), suppress_deprecation_warning)
60
62
  else
61
63
  (1..1)
62
64
  end
@@ -65,7 +67,12 @@ class SemVer < Numeric
65
67
 
66
68
  attr_reader :major, :minor, :tiny, :special
67
69
 
68
- def initialize(ver)
70
+ def initialize(ver, suppress_deprecation_warning = false)
71
+ unless suppress_deprecation_warning || Puppet[:strict] == :off
72
+ Puppet.warn_once(:deprecation, 'Puppet::SemVer',
73
+ "Use of class Puppet::SemVer is deprecated. SemanticPuppet::Version or SemanticPuppet::VersionRange should be used instead")
74
+ end
75
+
69
76
  unless SemVer.valid?(ver)
70
77
  raise ArgumentError.new("Invalid version string '#{ver}'!")
71
78
  end
@@ -130,10 +137,10 @@ class SemVer < Numeric
130
137
  end
131
138
  alias :to_s :inspect
132
139
 
133
- MIN = SemVer.new('0.0.0-')
140
+ MIN = SemVer.new('0.0.0-', true)
134
141
  MIN.instance_variable_set(:@vstring, 'vMIN')
135
142
 
136
- MAX = SemVer.new('8.0.0')
143
+ MAX = SemVer.new('8.0.0', true)
137
144
  MAX.instance_variable_set(:@major, Float::INFINITY) # => Infinity
138
145
  MAX.instance_variable_set(:@vstring, 'vMAX')
139
146
  end
@@ -0,0 +1,29 @@
1
+ ---
2
+ # This is the project-specific configuration file for setting up
3
+ # fast_gettext for your project.
4
+ gettext:
5
+ # This is used for the name of the .pot and .po files; they will be
6
+ # called <project_name>.pot?
7
+ project_name: 'puppet'
8
+ # This is used in comments in the .pot and .po files to indicate what
9
+ # project the files belong to and should be a little more descriptive than
10
+ # <project_name>
11
+ package_name: Puppet automation framework
12
+ # The locale that the default messages in the .pot file are in
13
+ default_locale: en
14
+ # The address for sending bug reports.
15
+ bugs_address: https://tickets.puppetlabs.com
16
+ # The holder of the copyright.
17
+ copyright_holder: Puppet, Inc.
18
+ # Patterns for +Dir.glob+ used to find all files that might contain
19
+ # translatable content, relative to the project root directory
20
+ source_files:
21
+ - 'lib/**/*.rb'
22
+ # Patterns for +Dir.glob+ used to find all files contained in
23
+ # `source_files` that should be ignored when searching for translatable
24
+ # content, relative to the project root directory
25
+ exclude_files:
26
+ - 'lib/puppet/pops/types/type_formatter.rb'
27
+ # The semantic_puppet gem is temporarily vendored (PUP-7114), and it
28
+ # handles its own translation.
29
+ - 'lib/semantic_puppet/**/*.rb'