puppet 4.8.2-x64-mingw32 → 4.9.0-x64-mingw32
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of puppet might be problematic. Click here for more details.
- checksums.yaml +15 -0
- data/CONTRIBUTING.md +25 -1
- data/Gemfile +6 -0
- data/Rakefile +1 -0
- data/ext/project_data.yaml +5 -1
- data/ext/windows/service/daemon.rb +2 -1
- data/install.rb +43 -6
- data/lib/hiera/puppet_function.rb +15 -17
- data/lib/hiera/scope.rb +12 -14
- data/lib/puppet.rb +52 -0
- data/lib/puppet/application/face_base.rb +4 -0
- data/lib/puppet/application/lookup.rb +4 -2
- data/lib/puppet/application/resource.rb +1 -1
- data/lib/puppet/data_providers.rb +6 -3
- data/lib/puppet/data_providers/data_adapter.rb +6 -0
- data/lib/puppet/data_providers/data_function_support.rb +7 -0
- data/lib/puppet/data_providers/function_env_data_provider.rb +7 -0
- data/lib/puppet/data_providers/function_module_data_provider.rb +6 -0
- data/lib/puppet/data_providers/hiera_config.rb +31 -10
- data/lib/puppet/data_providers/hiera_env_data_provider.rb +6 -0
- data/lib/puppet/data_providers/hiera_interpolate.rb +2 -1
- data/lib/puppet/data_providers/hiera_module_data_provider.rb +6 -0
- data/lib/puppet/data_providers/hiera_support.rb +6 -0
- data/lib/puppet/data_providers/json_data_provider_factory.rb +12 -0
- data/lib/puppet/data_providers/yaml_data_provider_factory.rb +12 -0
- data/lib/puppet/defaults.rb +25 -4
- data/lib/puppet/face/ca.rb +2 -0
- data/lib/puppet/face/certificate_request.rb +2 -0
- data/lib/puppet/face/certificate_revocation_list.rb +2 -0
- data/lib/puppet/face/file.rb +3 -0
- data/lib/puppet/face/help.rb +19 -17
- data/lib/puppet/face/help/face.erb +3 -0
- data/lib/puppet/face/key.rb +1 -0
- data/lib/puppet/face/man.rb +4 -2
- data/lib/puppet/face/module/generate.rb +1 -1
- data/lib/puppet/face/status.rb +2 -0
- data/lib/puppet/feature/base.rb +9 -2
- data/lib/puppet/feature/hocon.rb +3 -0
- data/lib/puppet/file_system.rb +15 -3
- data/lib/puppet/file_system/windows.rb +8 -0
- data/lib/puppet/forge.rb +6 -6
- data/lib/puppet/forge/repository.rb +1 -2
- data/lib/puppet/functions/binary_file.rb +4 -10
- data/lib/puppet/functions/hiera_array.rb +1 -1
- data/lib/puppet/functions/hiera_include.rb +1 -1
- data/lib/puppet/functions/hocon_data.rb +24 -0
- data/lib/puppet/functions/json_data.rb +18 -0
- data/lib/puppet/functions/yaml_data.rb +21 -0
- data/lib/puppet/generate/type.rb +1 -1
- data/lib/puppet/graph/simple_graph.rb +4 -2
- data/lib/puppet/indirector/file_bucket_file/file.rb +10 -2
- data/lib/puppet/indirector/request.rb +5 -1
- data/lib/puppet/interface.rb +14 -2
- data/lib/puppet/interface/face_collection.rb +1 -1
- data/lib/puppet/module.rb +14 -2
- data/lib/puppet/module_tool.rb +4 -4
- data/lib/puppet/module_tool/applications/builder.rb +3 -2
- data/lib/puppet/module_tool/applications/installer.rb +14 -14
- data/lib/puppet/module_tool/applications/upgrader.rb +13 -13
- data/lib/puppet/module_tool/installed_modules.rb +7 -7
- data/lib/puppet/module_tool/local_tarball.rb +3 -3
- data/lib/puppet/module_tool/metadata.rb +1 -1
- data/lib/puppet/network/http/connection.rb +2 -0
- data/lib/puppet/network/http/webrick.rb +2 -1
- data/lib/puppet/parser/functions/hiera.rb +14 -0
- data/lib/puppet/parser/functions/hiera_array.rb +14 -0
- data/lib/puppet/parser/functions/hiera_hash.rb +14 -0
- data/lib/puppet/parser/functions/hiera_include.rb +14 -0
- data/lib/puppet/parser/scope.rb +14 -20
- data/lib/puppet/plugins/data_providers.rb +2 -0
- data/lib/puppet/plugins/data_providers/data_provider.rb +108 -17
- data/lib/puppet/plugins/data_providers/registry.rb +2 -36
- data/lib/puppet/pops.rb +6 -9
- data/lib/puppet/pops/adaptable.rb +0 -3
- data/lib/puppet/pops/binder/producers.rb +3 -3
- data/lib/puppet/pops/evaluator/access_operator.rb +4 -4
- data/lib/puppet/pops/evaluator/closure.rb +1 -1
- data/lib/puppet/pops/evaluator/compare_operator.rb +4 -4
- data/lib/puppet/pops/evaluator/evaluator_impl.rb +1 -1
- data/lib/puppet/pops/issues.rb +4 -0
- data/lib/puppet/pops/label_provider.rb +14 -0
- data/lib/puppet/pops/loader/loader_paths.rb +3 -1
- data/lib/puppet/pops/loader/module_loaders.rb +21 -7
- data/lib/puppet/pops/loader/typed_name.rb +0 -2
- data/lib/puppet/pops/loaders.rb +31 -12
- data/lib/puppet/pops/lookup.rb +4 -3
- data/lib/puppet/pops/lookup/configured_data_provider.rb +87 -0
- data/lib/puppet/pops/lookup/context.rb +121 -71
- data/lib/puppet/pops/lookup/data_adapter.rb +27 -0
- data/lib/puppet/pops/lookup/data_dig_function_provider.rb +55 -0
- data/lib/puppet/pops/lookup/data_hash_function_provider.rb +111 -0
- data/lib/puppet/pops/lookup/data_provider.rb +102 -0
- data/lib/puppet/pops/lookup/environment_data_provider.rb +27 -0
- data/lib/puppet/pops/lookup/explainer.rb +122 -82
- data/lib/puppet/pops/lookup/function_provider.rb +82 -0
- data/lib/puppet/pops/lookup/global_data_provider.rb +49 -0
- data/lib/puppet/pops/lookup/hiera_config.rb +601 -0
- data/lib/puppet/pops/lookup/interpolation.rb +56 -35
- data/lib/puppet/pops/lookup/invocation.rb +179 -101
- data/lib/puppet/pops/lookup/location_resolver.rb +72 -0
- data/lib/puppet/pops/lookup/lookup_adapter.rb +451 -0
- data/lib/puppet/pops/lookup/lookup_key.rb +99 -0
- data/lib/puppet/pops/lookup/lookup_key_function_provider.rb +119 -0
- data/lib/puppet/pops/lookup/module_data_provider.rb +58 -0
- data/lib/puppet/pops/lookup/sub_lookup.rb +8 -4
- data/lib/puppet/pops/merge_strategy.rb +120 -39
- data/lib/puppet/pops/parser/egrammar.ra +2 -0
- data/lib/puppet/pops/parser/eparser.rb +816 -808
- data/lib/puppet/pops/parser/locator.rb +3 -3
- data/lib/puppet/pops/parser/slurp_support.rb +4 -3
- data/lib/puppet/pops/pcore.rb +21 -12
- data/lib/puppet/pops/serialization/abstract_reader.rb +17 -7
- data/lib/puppet/pops/serialization/abstract_writer.rb +27 -12
- data/lib/puppet/pops/serialization/deserializer.rb +17 -4
- data/lib/puppet/pops/serialization/extension.rb +37 -8
- data/lib/puppet/pops/serialization/object.rb +14 -6
- data/lib/puppet/pops/serialization/rgen.rb +2 -1
- data/lib/puppet/pops/serialization/serializer.rb +30 -7
- data/lib/puppet/pops/types/implementation_registry.rb +1 -1
- data/lib/puppet/pops/types/p_object_type.rb +55 -12
- data/lib/puppet/pops/types/p_sem_ver_range_type.rb +27 -27
- data/lib/puppet/pops/types/p_sem_ver_type.rb +12 -12
- data/lib/puppet/pops/types/p_timespan_type.rb +6 -6
- data/lib/puppet/pops/types/p_timestamp_type.rb +2 -2
- data/lib/puppet/pops/types/p_type_set_type.rb +7 -16
- data/lib/puppet/pops/types/recursion_guard.rb +64 -20
- data/lib/puppet/pops/types/ruby_generator.rb +10 -0
- data/lib/puppet/pops/types/type_calculator.rb +23 -13
- data/lib/puppet/pops/types/type_factory.rb +20 -9
- data/lib/puppet/pops/types/type_formatter.rb +37 -17
- data/lib/puppet/pops/types/type_mismatch_describer.rb +7 -6
- data/lib/puppet/pops/types/type_parser.rb +6 -0
- data/lib/puppet/pops/types/types.rb +225 -132
- data/lib/puppet/pops/validation.rb +1 -1
- data/lib/puppet/pops/validation/checker4_0.rb +12 -2
- data/lib/puppet/pops/validation/validator_factory_4_0.rb +1 -0
- data/lib/puppet/pops/visitor.rb +4 -3
- data/lib/puppet/provider/mcx/mcxcontent.rb +2 -1
- data/lib/puppet/provider/nameservice.rb +15 -0
- data/lib/puppet/provider/package/appdmg.rb +1 -1
- data/lib/puppet/provider/package/dnf.rb +1 -1
- data/lib/puppet/provider/package/pkg.rb +1 -1
- data/lib/puppet/provider/package/pkgdmg.rb +1 -1
- data/lib/puppet/provider/package/pkgng.rb +1 -1
- data/lib/puppet/provider/package/rpm.rb +2 -2
- data/lib/puppet/provider/service/smf.rb +3 -3
- data/lib/puppet/provider/service/systemd.rb +5 -1
- data/lib/puppet/provider/user/directoryservice.rb +1 -0
- data/lib/puppet/provider/user/user_role_add.rb +15 -0
- data/lib/puppet/provider/yumrepo/inifile.rb +2 -2
- data/lib/puppet/provider/zone/solaris.rb +4 -1
- data/lib/puppet/reference/indirection.rb +1 -1
- data/lib/puppet/resource.rb +2 -3
- data/lib/puppet/resource/catalog.rb +12 -4
- data/lib/puppet/resource/type.rb +3 -3
- data/lib/puppet/settings.rb +1 -1
- data/lib/puppet/settings/config_file.rb +2 -1
- data/lib/puppet/settings/directory_setting.rb +6 -0
- data/lib/puppet/settings/environment_conf.rb +6 -2
- data/lib/puppet/settings/file_or_directory_setting.rb +6 -0
- data/lib/puppet/settings/file_setting.rb +10 -0
- data/lib/puppet/ssl/certificate_authority.rb +13 -2
- data/lib/puppet/ssl/host.rb +23 -1
- data/lib/puppet/transaction/additional_resource_generator.rb +7 -0
- data/lib/puppet/type/user.rb +16 -3
- data/lib/puppet/util.rb +1 -0
- data/lib/puppet/util/execution.rb +3 -3
- data/lib/puppet/util/filetype.rb +11 -5
- data/lib/puppet/util/logging.rb +2 -1
- data/lib/puppet/util/network_device/config.rb +1 -1
- data/lib/puppet/util/plist.rb +6 -0
- data/lib/puppet/util/profiler/aggregate.rb +1 -1
- data/lib/puppet/util/rdoc/generators/puppet_generator.rb +2 -2
- data/lib/puppet/util/rdoc/parser/puppet_parser_core.rb +2 -1
- data/lib/puppet/util/windows/adsi.rb +15 -12
- data/lib/puppet/vendor/load_semantic_puppet.rb +1 -0
- data/lib/puppet/vendor/pathspec/lib/pathspec.rb +2 -1
- data/lib/puppet/vendor/require_vendored.rb +0 -1
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet.rb +17 -0
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency.rb +7 -7
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph.rb +2 -2
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/graph_node.rb +2 -2
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/dependency/module_release.rb +58 -0
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/source.rb +2 -2
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/dependency/unsatisfiable_graph.rb +2 -2
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/gem_version.rb +3 -0
- data/lib/puppet/vendor/semantic_puppet/lib/semantic_puppet/locales/config.yaml +21 -0
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version.rb +48 -21
- data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version_range.rb +15 -17
- data/lib/puppet/version.rb +1 -1
- data/lib/semver.rb +19 -12
- data/locales/config.yaml +29 -0
- data/locales/puppet.pot +79 -0
- data/man/man5/puppet.conf.5 +1 -1
- data/spec/fixtures/unit/application/environments/puppet_func_provider/functions/{data.pp → environment/data.pp} +0 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_misc/data/common.yaml +2 -0
- data/spec/fixtures/unit/data_providers/environments/hiera_modules/modules/two/data/common.yaml +1 -1
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/hiera.yaml +5 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet/bindings/backend/default.rb +9 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/lib/puppet_x/backend/special_data_provider_factory.rb +23 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/manifests/init.pp +5 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/backend/metadata.json +9 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/lib/puppet_x/helindbe/sample_env_data.rb +1 -0
- data/spec/fixtures/unit/data_providers/environments/sample/modules/dataprovider/manifests/init.pp +1 -1
- data/spec/fixtures/unit/functions/lookup/data/common.yaml +19 -0
- data/spec/fixtures/unit/functions/lookup_fixture/data/common.yaml +19 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/environment.conf +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/lib/puppet/functions/environment/data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/bindings/abc/default.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/lib/puppet/functions/abc/data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/abc/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/bindings/bad_data/default.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/lib/puppet/functions/bad_data/data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bad_data/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/bindings/bca/default.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/lib/puppet/functions/bca/data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/bca/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/data/empty.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/hiera.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_json/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/data/empty_key.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/hiera.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_json/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/data/empty_key.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/hiera.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_key_yaml/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/data/empty.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/hiera.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/empty_yaml/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/data/first.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/hiera.yaml +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/hieraprovider/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/lib/puppet/functions/meta/data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/meta/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/lib/puppet/bindings/metawcp/default.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/lib/puppet_x/thallgren/sample_module_data.rb +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/manifests/init.pp +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/metawcp/metadata.json +0 -0
- data/spec/fixtures/unit/functions/{lookup → lookup_fixture}/environments/production/modules/no_provider/manifests/init.pp +0 -0
- data/spec/integration/application/apply_spec.rb +88 -2
- data/spec/integration/application/lookup_spec.rb +155 -0
- data/spec/integration/data_binding_spec.rb +5 -5
- data/spec/integration/defaults_spec.rb +13 -0
- data/spec/integration/environments/default_manifest_spec.rb +16 -16
- data/spec/integration/environments/setting_hooks_spec.rb +1 -1
- data/spec/integration/test/test_helper_spec.rb +6 -2
- data/spec/integration/transaction_spec.rb +74 -0
- data/spec/integration/util/execution_spec.rb +8 -0
- data/spec/lib/puppet_spec/module_tool/shared_functions.rb +2 -2
- data/spec/lib/puppet_spec/module_tool/stub_source.rb +1 -1
- data/spec/lib/puppet_spec/unindent.rb +2 -2
- data/spec/unit/application/face_base_spec.rb +16 -0
- data/spec/unit/application/lookup_spec.rb +262 -227
- data/spec/unit/data_providers/{sample_data_provider_spec.rb → custom_data_provider_spec.rb} +14 -16
- data/spec/unit/data_providers/function_data_provider_spec.rb +2 -2
- data/spec/unit/data_providers/hiera_data_provider_spec.rb +60 -97
- data/spec/unit/defaults_spec.rb +1 -1
- data/spec/unit/face/ca_spec.rb +10 -0
- data/spec/unit/face/certificate_request_spec.rb +10 -0
- data/spec/unit/face/certificate_revocation_list_spec.rb +10 -0
- data/spec/unit/face/file_spec.rb +4 -0
- data/spec/unit/face/help_spec.rb +17 -0
- data/spec/unit/face/key_spec.rb +10 -0
- data/spec/unit/face/status_spec.rb +10 -0
- data/spec/unit/file_system_spec.rb +143 -6
- data/spec/unit/functions/binary_file_spec.rb +1 -1
- data/spec/unit/functions/hiera_spec.rb +257 -47
- data/spec/unit/functions/lookup_fixture_spec.rb +693 -0
- data/spec/unit/functions/lookup_spec.rb +1319 -608
- data/spec/unit/functions/new_spec.rb +3 -3
- data/spec/unit/graph/rb_tree_map_spec.rb +1 -1
- data/spec/unit/graph/simple_graph_spec.rb +1 -1
- data/spec/unit/hiera/scope_spec.rb +4 -4
- data/spec/unit/indirector/request_spec.rb +9 -0
- data/spec/unit/interface_spec.rb +27 -0
- data/spec/unit/man_spec.rb +1 -1
- data/spec/unit/module_spec.rb +1 -1
- data/spec/unit/module_tool/applications/builder_spec.rb +16 -1
- data/spec/unit/module_tool/applications/installer_spec.rb +1 -1
- data/spec/unit/module_tool/applications/upgrader_spec.rb +1 -1
- data/spec/unit/module_tool/installed_modules_spec.rb +6 -6
- data/spec/unit/module_tool_spec.rb +3 -3
- data/spec/unit/network/http/connection_spec.rb +10 -0
- data/spec/unit/network/http/webrick_spec.rb +1 -1
- data/spec/unit/pops/evaluator/access_ops_spec.rb +2 -2
- data/spec/unit/pops/evaluator/runtime3_converter_spec.rb +9 -9
- data/spec/unit/pops/loaders/environment_loader_spec.rb +172 -0
- data/spec/unit/pops/lookup/context_spec.rb +45 -16
- data/spec/unit/pops/lookup/interpolation_spec.rb +28 -20
- data/spec/unit/pops/lookup/lookup_spec.rb +197 -0
- data/spec/unit/pops/merge_strategy_spec.rb +18 -0
- data/spec/unit/pops/parser/lexer2_spec.rb +16 -1
- data/spec/unit/pops/parser/parse_site_spec.rb +4 -0
- data/spec/unit/pops/serialization/packer_spec.rb +4 -23
- data/spec/unit/pops/serialization/serialization_spec.rb +32 -8
- data/spec/unit/pops/types/p_object_type_spec.rb +68 -3
- data/spec/unit/pops/types/p_sem_ver_type_spec.rb +4 -4
- data/spec/unit/pops/types/p_type_set_type_spec.rb +31 -2
- data/spec/unit/pops/types/type_acceptor_spec.rb +18 -17
- data/spec/unit/pops/types/type_calculator_spec.rb +39 -40
- data/spec/unit/pops/types/type_factory_spec.rb +3 -3
- data/spec/unit/pops/types/type_formatter_spec.rb +7 -3
- data/spec/unit/pops/types/type_mismatch_describer_spec.rb +13 -2
- data/spec/unit/pops/types/types_spec.rb +25 -2
- data/spec/unit/pops/validator/validator_spec.rb +60 -4
- data/spec/unit/provider/nameservice_spec.rb +42 -0
- data/spec/unit/provider/package/aptrpm_spec.rb +1 -1
- data/spec/unit/provider/package/pkg_spec.rb +22 -0
- data/spec/unit/provider/package/pkgng_spec.rb +12 -0
- data/spec/unit/provider/package/rpm_spec.rb +8 -8
- data/spec/unit/provider/service/smf_spec.rb +13 -11
- data/spec/unit/provider/service/systemd_spec.rb +8 -1
- data/spec/unit/provider/user/useradd_spec.rb +1 -0
- data/spec/unit/puppet_spec.rb +14 -0
- data/spec/unit/resource/catalog_spec.rb +15 -9
- data/spec/unit/resource_spec.rb +20 -17
- data/spec/unit/semver_spec.rb +14 -0
- data/spec/unit/ssl/certificate_authority_spec.rb +12 -1
- data/spec/unit/transaction/additional_resource_generator_spec.rb +11 -0
- data/spec/unit/type/user_spec.rb +32 -6
- data/spec/unit/util/filetype_spec.rb +3 -3
- data/spec/unit/util/yaml_spec.rb +1 -1
- data/spec/unit/util_spec.rb +10 -2
- data/tasks/i18n.rake +20 -0
- metadata +2661 -2607
- data/lib/puppet/data_providers/lookup_adapter.rb +0 -254
- data/lib/puppet/vendor/load_semantic.rb +0 -1
- data/lib/puppet/vendor/semantic/Gemfile +0 -20
- data/lib/puppet/vendor/semantic/PUPPET_README.md +0 -6
- data/lib/puppet/vendor/semantic/Rakefile +0 -69
- data/lib/puppet/vendor/semantic/lib/semantic.rb +0 -7
- data/lib/puppet/vendor/semantic/lib/semantic/dependency/module_release.rb +0 -60
- data/lib/puppet/vendor/semantic/spec/spec_helper.rb +0 -24
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_node_spec.rb +0 -141
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/graph_spec.rb +0 -162
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/module_release_spec.rb +0 -143
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/source_spec.rb +0 -5
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency/unsatisfiable_graph_spec.rb +0 -44
- data/lib/puppet/vendor/semantic/spec/unit/semantic/dependency_spec.rb +0 -383
- data/lib/puppet/vendor/semantic/spec/unit/semantic/version_range_spec.rb +0 -307
- data/lib/puppet/vendor/semantic/spec/unit/semantic/version_spec.rb +0 -608
- 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
         | 
| @@ -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'
         | 
    
        data/lib/puppet/vendor/{semantic/lib/semantic → semantic_puppet/lib/semantic_puppet}/version.rb
    RENAMED
    
    | @@ -1,8 +1,8 @@ | |
| 1 | 
            -
            require ' | 
| 1 | 
            +
            require 'semantic_puppet'
         | 
| 2 2 |  | 
| 3 | 
            -
            module  | 
| 3 | 
            +
            module SemanticPuppet
         | 
| 4 4 |  | 
| 5 | 
            -
              # @note  | 
| 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( | 
| 18 | 
            +
                    match, major, minor, patch, prerelease, build = *ver.match(/\A#{REGEX_FULL}\Z/)
         | 
| 27 19 |  | 
| 28 20 | 
             
                    if match.nil?
         | 
| 29 | 
            -
                      raise ' | 
| 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 | 
            -
                     | 
| 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 " | 
| 49 | 
            +
                      raise _("%{subject} MUST NOT be empty") % {subject: subject}
         | 
| 47 50 | 
             
                    elsif prerelease.any? { |x| x =~ /[^0-9a-zA-Z-]/ }
         | 
| 48 | 
            -
                      raise " | 
| 51 | 
            +
                      raise _("%{subject} MUST use only ASCII alphanumerics and hyphens") % {subject: subject}
         | 
| 49 52 | 
             
                    elsif prerelease.any? { |x| x =~ /^0\d+$/ }
         | 
| 50 | 
            -
                      raise " | 
| 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 " | 
| 64 | 
            +
                      raise _("%{subject} MUST NOT be empty") % {subject: subject}
         | 
| 62 65 | 
             
                    elsif build.any? { |x| x =~ /[^0-9a-zA-Z-]/ }
         | 
| 63 | 
            -
                      raise " | 
| 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 ' | 
| 1 | 
            +
            require 'semantic_puppet'
         | 
| 2 2 |  | 
| 3 | 
            -
            module  | 
| 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:  | 
| 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,  | 
| 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,  | 
| 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( | 
| 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( | 
| 169 | 
            +
                      self.new(SemanticPuppet::Version::MIN, finish)
         | 
| 170 170 | 
             
                    else
         | 
| 171 171 | 
             
                      finish = process_loose_expr(expr).last.send(:first_prerelease)
         | 
| 172 | 
            -
                      self.new( | 
| 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 ==  | 
| 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 ==  | 
| 349 | 
            +
                  self.begin == SemanticPuppet::Version::MIN
         | 
| 352 350 | 
             
                end
         | 
| 353 351 |  | 
| 354 352 | 
             
                # Describes whether this range follows the patterns for matching all
         | 
    
        data/lib/puppet/version.rb
    CHANGED
    
    
    
        data/lib/semver.rb
    CHANGED
    
    | @@ -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
         | 
    
        data/locales/config.yaml
    ADDED
    
    | @@ -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'
         |