Skip to content

Instantly share code, notes, and snippets.

@dhollinger
Created April 9, 2018 20:12
Show Gist options
  • Save dhollinger/27ab0881df1f7acb02ff3a92a13dc22d to your computer and use it in GitHub Desktop.
Save dhollinger/27ab0881df1f7acb02ff3a92a13dc22d to your computer and use it in GitHub Desktop.
PDK Changes Report
--- .gitignore 2018-04-09 15:02:47.186602083 -0500
+++ .gitignore.pdknew 2018-04-09 15:06:09.782075000 -0500
@@ -1,21 +1,23 @@
-pkg/
-Gemfile.lock
-Gemfile.local
-vendor/
-.vendor/
-spec/fixtures/manifests/
-spec/fixtures/modules/
-.vagrant/
-.bundle/
-.ruby-version
-coverage/
-log/
-.idea/
-.dependencies/
-.librarian/
-Puppetfile.lock
+.*.sw[op]
+.metadata
+.yardoc
+.yardwarns
*.iml
-.*.sw?
-.yardoc/
-Guardfile
+/.bundle/
+/.idea/
+/.vagrant/
+/coverage/
+/bin/
+/doc/
+/Gemfile.local
+/Gemfile.lock
+/junit/
+/log/
+/pkg/
+/spec/fixtures/manifests/
+/spec/fixtures/modules/
+/tmp/
+/vendor/
+/convert_report.txt
+.DS_Store
--- .rspec 2018-04-09 15:02:47.186829832 -0500
+++ .rspec.pdknew 2018-04-09 15:06:09.784816000 -0500
@@ -1,3 +1,3 @@
---format documentation
--color
+--format documentation
--- .rubocop.yml 2018-04-09 15:02:47.187143251 -0500
+++ .rubocop.yml.pdknew 2018-04-09 15:06:09.773832000 -0500
@@ -1,546 +1,108 @@
+---
require: rubocop-rspec
AllCops:
- TargetRubyVersion: 1.9
+ DisplayCopNames: true
+ TargetRubyVersion: '2.1'
Include:
- - ./**/*.rb
+ - "./**/*.rb"
Exclude:
- - files/**/*
- - vendor/**/*
- - .vendor/**/*
- - pkg/**/*
- - spec/fixtures/**/*
- - Gemfile
- - Rakefile
- - Guardfile
- - Vagrantfile
-Lint/ConditionPosition:
- Enabled: True
-
-Lint/ElseLayout:
- Enabled: True
-
-Lint/UnreachableCode:
- Enabled: True
-
-Lint/UselessComparison:
- Enabled: True
-
-Lint/EnsureReturn:
- Enabled: True
-
-Lint/HandleExceptions:
- Enabled: True
-
-Lint/LiteralInCondition:
- Enabled: True
-
-Lint/ShadowingOuterLocalVariable:
- Enabled: True
-
-Lint/LiteralInInterpolation:
- Enabled: True
-
-Style/HashSyntax:
- Enabled: True
-
-Style/RedundantReturn:
- Enabled: True
-
-Layout/EndOfLine:
- Enabled: False
-
-Lint/AmbiguousOperator:
- Enabled: True
-
-Lint/AssignmentInCondition:
- Enabled: True
-
-Layout/SpaceBeforeComment:
- Enabled: True
-
-Style/AndOr:
- Enabled: True
-
-Style/RedundantSelf:
- Enabled: True
-
-Metrics/BlockLength:
- Enabled: False
-
-# Method length is not necessarily an indicator of code quality
-Metrics/MethodLength:
- Enabled: False
-
-# Module length is not necessarily an indicator of code quality
-Metrics/ModuleLength:
- Enabled: False
-
-Style/WhileUntilModifier:
- Enabled: True
-
-Lint/AmbiguousRegexpLiteral:
- Enabled: True
-
-Security/Eval:
- Enabled: True
-
-Lint/BlockAlignment:
- Enabled: True
-
-Lint/DefEndAlignment:
- Enabled: True
-
-Lint/EndAlignment:
- Enabled: True
-
-Lint/DeprecatedClassMethods:
- Enabled: True
-
-Lint/Loop:
- Enabled: True
-
-Lint/ParenthesesAsGroupedExpression:
- Enabled: True
-
-Lint/RescueException:
- Enabled: True
-
-Lint/StringConversionInInterpolation:
- Enabled: True
-
-Lint/UnusedBlockArgument:
- Enabled: True
-
-Lint/UnusedMethodArgument:
- Enabled: True
-
-Lint/UselessAccessModifier:
- Enabled: True
-
-Lint/UselessAssignment:
- Enabled: True
-
-Lint/Void:
- Enabled: True
-
-Layout/AccessModifierIndentation:
- Enabled: True
-
-Style/AccessorMethodName:
- Enabled: True
-
-Style/Alias:
- Enabled: True
-
-Layout/AlignArray:
- Enabled: True
-
-Layout/AlignHash:
- Enabled: True
-
-Layout/AlignParameters:
- Enabled: True
-
-Metrics/BlockNesting:
- Enabled: True
-
-Style/AsciiComments:
- Enabled: True
-
-Style/Attr:
- Enabled: True
-
-Style/BracesAroundHashParameters:
- Enabled: True
-
-Style/CaseEquality:
- Enabled: True
-
-Layout/CaseIndentation:
- Enabled: True
-
-Style/CharacterLiteral:
- Enabled: True
-
-Style/ClassAndModuleCamelCase:
- Enabled: True
-
-Style/ClassAndModuleChildren:
- Enabled: False
-
-Style/ClassCheck:
- Enabled: True
-
-# Class length is not necessarily an indicator of code quality
-Metrics/ClassLength:
- Enabled: False
-
-Style/ClassMethods:
- Enabled: True
-
-Style/ClassVars:
- Enabled: True
-
-Style/WhenThen:
- Enabled: True
-
-Style/WordArray:
- Enabled: True
-
-Style/UnneededPercentQ:
- Enabled: True
-
-Layout/Tab:
- Enabled: True
-
-Layout/SpaceBeforeSemicolon:
- Enabled: True
-
-Layout/TrailingBlankLines:
- Enabled: True
-
-Layout/SpaceInsideBlockBraces:
- Enabled: True
-
-Layout/SpaceInsideBrackets:
- Enabled: True
-
-Layout/SpaceInsideHashLiteralBraces:
- Enabled: True
-
-Layout/SpaceInsideParens:
- Enabled: True
-
-Layout/LeadingCommentSpace:
- Enabled: True
-
-Layout/SpaceBeforeFirstArg:
- Enabled: True
-
-Layout/SpaceAfterColon:
- Enabled: True
-
-Layout/SpaceAfterComma:
- Enabled: True
-
-Layout/SpaceAfterMethodName:
- Enabled: True
-
-Layout/SpaceAfterNot:
- Enabled: True
-
-Layout/SpaceAfterSemicolon:
- Enabled: True
-
-Layout/SpaceAroundEqualsInParameterDefault:
- Enabled: True
-
-Layout/SpaceAroundOperators:
- Enabled: True
-
-Layout/SpaceBeforeBlockBraces:
- Enabled: True
-
-Layout/SpaceBeforeComma:
- Enabled: True
-
-Style/CollectionMethods:
- Enabled: True
-
-Layout/CommentIndentation:
- Enabled: True
-
-Style/ColonMethodCall:
- Enabled: True
-
-Style/CommentAnnotation:
- Enabled: True
-
-# 'Complexity' is very relative
-Metrics/CyclomaticComplexity:
- Enabled: False
-
-Style/ConstantName:
- Enabled: True
-
-Style/Documentation:
- Enabled: False
-
-Style/DefWithParentheses:
- Enabled: True
-
-Style/PreferredHashMethods:
- Enabled: True
-
-Layout/DotPosition:
- EnforcedStyle: trailing
-
-Style/DoubleNegation:
- Enabled: True
-
-Style/EachWithObject:
- Enabled: True
-
-Layout/EmptyLineBetweenDefs:
- Enabled: True
-
-Layout/IndentArray:
- Enabled: True
-
-Layout/IndentHash:
- Enabled: True
-
-Layout/IndentationConsistency:
- Enabled: True
-
-Layout/IndentationWidth:
- Enabled: True
-
-Layout/EmptyLines:
- Enabled: True
-
-Layout/EmptyLinesAroundAccessModifier:
- Enabled: True
-
-Style/EmptyLiteral:
- Enabled: True
-
-# Configuration parameters: AllowURI, URISchemes.
+ - bin/*
+ - ".vendor/**/*"
+ - Gemfile
+ - Rakefile
+ - pkg/**/*
+ - spec/fixtures/**/*
+ - vendor/**/*
Metrics/LineLength:
- Enabled: False
-
-Style/MethodCallWithoutArgsParentheses:
- Enabled: True
-
-Style/MethodDefParentheses:
- Enabled: True
-
-Style/LineEndConcatenation:
- Enabled: True
-
-Layout/TrailingWhitespace:
- Enabled: True
-
-Style/StringLiterals:
- Enabled: True
-
-Style/TrailingCommaInArguments:
- Enabled: True
-
-Style/TrailingCommaInLiteral:
- Enabled: True
-
-Style/GlobalVars:
- Enabled: True
-
-Style/GuardClause:
- Enabled: True
-
-Style/IfUnlessModifier:
- Enabled: True
-
-Style/MultilineIfThen:
- Enabled: True
-
-Style/NegatedIf:
- Enabled: True
-
-Style/NegatedWhile:
- Enabled: True
-
-Style/Next:
- Enabled: True
-
-Style/SingleLineBlockParams:
- Enabled: True
-
-Style/SingleLineMethods:
- Enabled: True
-
-Style/SpecialGlobalVars:
- Enabled: True
-
-Style/TrivialAccessors:
- Enabled: True
-
-Style/UnlessElse:
- Enabled: True
-
-Style/VariableInterpolation:
- Enabled: True
-
-Style/VariableName:
- Enabled: True
-
-Style/WhileUntilDo:
- Enabled: True
-
-Style/EvenOdd:
- Enabled: True
-
-Style/FileName:
- Enabled: True
-
-Style/For:
- Enabled: True
-
-Style/Lambda:
- Enabled: True
-
-Style/MethodName:
- Enabled: True
-
-Style/MultilineTernaryOperator:
- Enabled: True
-
-Style/NestedTernaryOperator:
- Enabled: True
-
-Style/NilComparison:
- Enabled: True
-
+ Description: People have wide screens, use them.
+ Max: 200
+RSpec/BeforeAfterAll:
+ Description: Beware of using after(:all) as it may cause state to leak between tests.
+ A necessary evil in acceptance testing.
+ Exclude:
+ - spec/acceptance/**/*.rb
+RSpec/HookArgument:
+ Description: Prefer explicit :each argument, matching existing module's style
+ EnforcedStyle: each
+Style/BlockDelimiters:
+ Description: Prefer braces for chaining. Mostly an aesthetical choice. Better to
+ be consistent then.
+ EnforcedStyle: braces_for_chaining
+Style/ClassAndModuleChildren:
+ Description: Compact style reduces the required amount of indentation.
+ EnforcedStyle: compact
+Style/EmptyElse:
+ Description: Enforce against empty else clauses, but allow `nil` for clarity.
+ EnforcedStyle: empty
Style/FormatString:
- Enabled: True
-
-Style/MultilineBlockChain:
- Enabled: True
-
-Style/Semicolon:
- Enabled: True
-
-Style/SignalException:
- Enabled: True
-
-Style/NonNilCheck:
- Enabled: True
-
-Style/Not:
- Enabled: True
-
-Style/NumericLiterals:
- Enabled: True
-
-Style/OneLineConditional:
- Enabled: True
-
-Style/OpMethod:
- Enabled: True
-
-Style/ParenthesesAroundCondition:
- Enabled: True
-
-Style/PercentLiteralDelimiters:
- Enabled: True
-
-Style/PerlBackrefs:
- Enabled: True
-
-Style/PredicateName:
- Enabled: True
-
-Style/RedundantException:
- Enabled: True
-
-Style/SelfAssignment:
- Enabled: True
-
-Style/Proc:
- Enabled: True
-
-Style/RaiseArgs:
- Enabled: True
-
-Style/RedundantBegin:
- Enabled: True
-
-Style/RescueModifier:
- Enabled: True
-
-# based on https://github.com/voxpupuli/modulesync_config/issues/168
+ Description: Following the main puppet project's style, prefer the % format format.
+ EnforcedStyle: percent
+Style/FormatStringToken:
+ Description: Following the main puppet project's style, prefer the simpler template
+ tokens over annotated ones.
+ EnforcedStyle: template
+Style/Lambda:
+ Description: Prefer the keyword for easier discoverability.
+ EnforcedStyle: literal
Style/RegexpLiteral:
+ Description: Community preference. See https://github.com/voxpupuli/modulesync_config/issues/168
EnforcedStyle: percent_r
- Enabled: True
-
-Lint/UnderscorePrefixedVariableName:
- Enabled: True
-
-Metrics/ParameterLists:
- Enabled: False
-
-Lint/RequireParentheses:
- Enabled: True
-
-Style/ModuleFunction:
- Enabled: True
-
-Lint/Debugger:
- Enabled: True
-
-Style/IfWithSemicolon:
- Enabled: True
-
-Style/Encoding:
- Enabled: True
-
-Style/BlockDelimiters:
- Enabled: True
-
-Layout/MultilineBlockLayout:
- Enabled: True
-
-# 'Complexity' is very relative
+Style/TernaryParentheses:
+ Description: Checks for use of parentheses around ternary conditions. Enforce parentheses
+ on complex expressions for better readability, but seriously consider breaking
+ it up.
+ EnforcedStyle: require_parentheses_when_complex
+Style/TrailingCommaInArguments:
+ Description: Prefer always trailing comma on multiline argument lists. This makes
+ diffs, and re-ordering nicer.
+ EnforcedStyleForMultiline: comma
+Style/TrailingCommaInLiteral:
+ Description: Prefer always trailing comma on multiline literals. This makes diffs,
+ and re-ordering nicer.
+ EnforcedStyleForMultiline: comma
+Style/SymbolArray:
+ Description: Using percent style obscures symbolic intent of array's contents.
+ EnforcedStyle: brackets
+RSpec/MessageSpies:
+ EnforcedStyle: receive
+Style/CollectionMethods:
+ Enabled: true
+Style/MethodCalledOnDoEndBlock:
+ Enabled: true
+Style/StringMethods:
+ Enabled: true
+Layout/EndOfLine:
+ Enabled: false
Metrics/AbcSize:
- Enabled: False
-
-# 'Complexity' is very relative
+ Enabled: false
+Metrics/BlockLength:
+ Enabled: false
+Metrics/ClassLength:
+ Enabled: false
+Metrics/CyclomaticComplexity:
+ Enabled: false
+Metrics/MethodLength:
+ Enabled: false
+Metrics/ModuleLength:
+ Enabled: false
+Metrics/ParameterLists:
+ Enabled: false
Metrics/PerceivedComplexity:
- Enabled: False
-
-Lint/UselessAssignment:
- Enabled: True
-
-Layout/ClosingParenthesisIndentation:
- Enabled: True
-
-# RSpec
-
-RSpec/BeforeAfterAll:
- Exclude:
- - spec/acceptance/**/*
-
-# We don't use rspec in this way
+ Enabled: false
RSpec/DescribeClass:
- Enabled: False
-
-# Example length is not necessarily an indicator of code quality
+ Enabled: false
RSpec/ExampleLength:
- Enabled: False
-
-RSpec/NamedSubject:
- Enabled: False
-
-# disabled for now since they cause a lot of issues
-# these issues aren't easy to fix
-RSpec/RepeatedDescription:
- Enabled: False
-
+ Enabled: false
+RSpec/MessageExpectation:
+ Enabled: false
+RSpec/MultipleExpectations:
+ Enabled: false
RSpec/NestedGroups:
- Enabled: False
-
-# this is broken on ruby1.9
-Layout/IndentHeredoc:
- Enabled: False
-
-# disable Yaml safe_load. This is needed to support ruby2.0.0 development envs
-Security/YAMLLoad:
Enabled: false
-
-# This affects hiera interpolation, as well as some configs that we push.
-Style/FormatStringToken:
+Style/AsciiComments:
Enabled: false
-
-# This is useful, but sometimes a little too picky about where unit tests files
-# are located.
-RSpec/FilePath:
+Style/IfUnlessModifier:
+ Enabled: false
+Style/SymbolProc:
Enabled: false
--- .travis.yml 2018-04-09 15:02:47.187710870 -0500
+++ .travis.yml.pdknew 2018-04-09 15:06:09.783872000 -0500
@@ -4,62 +4,67 @@
language: ruby
cache: bundler
before_install:
- - rm -f Gemfile.lock
+ - bundle -v
+ - rm Gemfile.lock || true
+ - gem update --system
+ - gem update bundler
+ - gem --version
+ - bundle -v
script:
- 'bundle exec rake $CHECK'
+bundler_args: --without system_tests
+rvm:
+ - 2.4.1
+env:
+ - PUPPET_GEM_VERSION="~> 5.0" CHECK=spec
matrix:
fast_finish: true
include:
- - rvm: 2.1.9
- bundler_args: --without system_tests development release
- env: PUPPET_VERSION="~> 4.0" CHECK=test PARALLEL_TEST_PROCESSORS=12
- - rvm: 2.4.3
- bundler_args: --without system_tests development release
- env: PUPPET_VERSION="~> 5.0" CHECK=test_with_coveralls
- - rvm: 2.5.0
- bundler_args: --without system_tests development release
- env: PUPPET_VERSION="~> 5.0" CHECK=test_with_coveralls
- - rvm: 2.4.3
- bundler_args: --without system_tests development release
- env: PUPPET_VERSION="~> 5.0" CHECK=rubocop
- - rvm: 2.4.3
- bundler_args: --without system_tests development release
- env: PUPPET_VERSION="~> 5.0" CHECK=build DEPLOY_TO_FORGE=yes
- - rvm: 2.4.3
- bundler_args: --without development release
- dist: trusty
- env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_set=docker/centos-7 CHECK=beaker
- services: docker
- sudo: required
- - rvm: 2.4.3
- bundler_args: --without development release
- dist: trusty
- env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_set=docker/debian-8 CHECK=beaker
- services: docker
- sudo: required
- - rvm: 2.4.3
- bundler_args: --without development release
- dist: trusty
- env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_set=docker/ubuntu-14.04 CHECK=beaker
- services: docker
- sudo: required
- - rvm: 2.4.3
- bundler_args: --without development release
- dist: trusty
- env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_set=docker/ubuntu-16.04 CHECK=beaker
- services: docker
- sudo: required
+ -
+ dist: trusty
+ env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_set=docker/centos-7
+ rvm: 2.4.1
+ script: bundle exec rake beaker
+ services: docker
+ sudo: required
+ -
+ dist: trusty
+ env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_set=docker/debian-8
+ rvm: 2.4.1
+ script: bundle exec rake beaker
+ services: docker
+ sudo: required
+ -
+ dist: trusty
+ env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_set=docker/ubuntu-14.04
+ rvm: 2.4.1
+ script: bundle exec rake beaker
+ services: docker
+ sudo: required
+ -
+ dist: trusty
+ env: PUPPET_INSTALL_TYPE=agent BEAKER_debug=true BEAKER_set=docker/ubuntu-16.04
+ rvm: 2.4.1
+ script: bundle exec rake beaker
+ services: docker
+ sudo: required
+ -
+ env: CHECK=rubocop
+ -
+ env: CHECK="syntax lint"
+ -
+ env: CHECK=metadata_lint
+ -
+ env: CHECK=spec
+ -
+ env: PUPPET_GEM_VERSION="~> 4.0" CHECK=spec
+ rvm: 2.1.9
branches:
only:
- - master
- - /^v\d/
+ - master
+ - /^v\d/
notifications:
email: false
- irc:
- on_success: always
- on_failure: always
- channels:
- - "chat.freenode.org#voxpupuli-notifications"
deploy:
provider: puppetforge
user: puppet
@@ -67,8 +72,6 @@
secure: "MZqQwYbb+SzRq+9NhBRILmNxA0dFPoQ9Q4ueidPUP7V4VGgm1HGG59K1ajdAnxayWvTmrLhtpNWw11HBLeSC6GVdkAdxd5NMpJSlqr7GRDfezx14Mi4sF+4NnAB39Kb0jyaA/jLnY/JBuk7FMAvicdrC5nvwMXz0yy2SxohLILf3i8FIL4dfpBLUcp+bnyXB/v2q59h/z1zsCng1s4Mz1zsW+jSKGY3to5gOiD6HBvZbveY3t0emon0pwQA9sP3FUDtgCmXsmfYfuKzWL1p3jNAC7ago22Y/UMKmOEg4dCTAjHpnzeE+RtUVjDVYKVZYdUDJiA/8aQbGTfsljfnHhqnrWUlb32pU4FM0qRARZiSzRkr7F43NZf4kPE9gpD6VuOqXWYPjQNim/pU3SGBDiEI1YcrAWloJxbpPbfk5QEoJ+uFUVAHmdV+a9Mb+8s7fXn1jO7qF4qn2M2ruxr3rWj0DZmVahQCtZ6y3/FXUNj3nLzTlqzwgnW9iwOguWlp343vDVTOy1CRjC4QX6PRhRbeC8qOlfQQsVZQ49DCOiqJKyhKJ5vsAWBXqxybQgAcUM8vnovqFrz2rhrg/SJqdZqtX9t03R7MvYRiFQ41sGFgCP9cOSyVeE82sawu1jj55gSPvpgaM2Lqrla78mirJsWcznWwU0hhct408VLoEtPk="
on:
tags: true
- # all_branches is required to use tags
all_branches: true
- # Only publish the build marked with "DEPLOY_TO_FORGE"
condition: "$DEPLOY_TO_FORGE = yes"
--- .yardopts 2018-04-09 15:02:47.187939037 -0500
+++ .yardopts.pdknew 2018-04-09 15:06:09.766754000 -0500
@@ -1,3 +1,2 @@
--markup markdown
---output-dir docs/
.gitlab-ci.yml
appveyor.yml
.pdkignore
convert_report.txt
--- spec/default_facts.yml 2018-04-09 15:02:47.189806032 -0500
+++ spec/default_facts.yml.pdknew 2018-04-09 15:06:09.768584000 -0500
@@ -1,12 +1,6 @@
-# This file is managed via modulesync
-# https://github.com/voxpupuli/modulesync
-# https://github.com/voxpupuli/modulesync_config
+# Use default_module_facts.yml for module specific facts.
#
-# use default_module_facts.yaml for module specific
-# facts.
-#
-# Hint if using with rspec-puppet-facts ("on_supported_os.each"):
-# if a same named fact exists in facterdb it will be overridden.
+# Facts specified here will override the values provided by rspec-puppet-facts.
---
concat_basedir: "/tmp"
ipaddress: "172.16.254.254"
--- Gemfile 2018-04-09 15:02:47.188494675 -0500
+++ Gemfile.pdknew 2018-04-09 15:06:09.779915000 -0500
@@ -1,79 +1,130 @@
-source ENV['GEM_SOURCE'] || "https://rubygems.org"
+source ENV['GEM_SOURCE'] || 'https://rubygems.org'
-def location_for(place, fake_version = nil)
- if place =~ /^(git[:@][^#]*)#(.*)/
- [fake_version, { :git => $1, :branch => $2, :require => false }].compact
- elsif place =~ /^file:\/\/(.*)/
- ['>= 0', { :path => File.expand_path($1), :require => false }]
+def location_for(place_or_version, fake_version = nil)
+ if place_or_version =~ %r{\A(git[:@][^#]*)#(.*)}
+ [fake_version, { git: Regexp.last_match(1), branch: Regexp.last_match(2), require: false }].compact
+ elsif place_or_version =~ %r{\Afile:\/\/(.*)}
+ ['>= 0', { path: File.expand_path(Regexp.last_match(1)), require: false }]
else
- [place, { :require => false }]
+ [place_or_version, { require: false }]
end
end
-group :test do
- gem 'puppetlabs_spec_helper', '~> 2.6.0', :require => false
- gem 'rspec-puppet', '~> 2.5', :require => false
- gem 'rspec-puppet-facts', :require => false
- gem 'rspec-puppet-utils', :require => false
- gem 'puppet-lint-leading_zero-check', :require => false
- gem 'puppet-lint-trailing_comma-check', :require => false
- gem 'puppet-lint-version_comparison-check', :require => false
- gem 'puppet-lint-classes_and_types_beginning_with_digits-check', :require => false
- gem 'puppet-lint-unquoted_string-check', :require => false
- gem 'puppet-lint-variable_contains_upcase', :require => false
- gem 'metadata-json-lint', :require => false
- gem 'redcarpet', :require => false
- gem 'rubocop', '~> 0.49.1', :require => false if RUBY_VERSION >= '2.3.0'
- gem 'rubocop-rspec', '~> 1.15.0', :require => false if RUBY_VERSION >= '2.3.0'
- gem 'mocha', '>= 1.2.1', :require => false
- gem 'coveralls', :require => false
- gem 'simplecov-console', :require => false
- gem 'rack', '~> 1.0', :require => false if RUBY_VERSION < '2.2.2'
- gem 'parallel_tests', :require => false
- gem 'hiera', :require => false
+def gem_type(place_or_version)
+ if place_or_version =~ %r{\Agit[:@]}
+ :git
+ elsif !place_or_version.nil? && place_or_version.start_with?('file:')
+ :file
+ else
+ :gem
+ end
end
+ruby_version_segments = Gem::Version.new(RUBY_VERSION.dup).segments
+minor_version = ruby_version_segments[0..1].join('.')
+
group :development do
- gem 'travis', :require => false
- gem 'travis-lint', :require => false
- gem 'guard-rake', :require => false
- gem 'overcommit', '>= 0.39.1', :require => false
+ gem "fast_gettext", '1.1.0', require: false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.1.0')
+ gem "fast_gettext", require: false if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.1.0')
+ gem "json_pure", '<= 2.0.1', require: false if Gem::Version.new(RUBY_VERSION.dup) < Gem::Version.new('2.0.0')
+ gem "json", '= 1.8.1', require: false if Gem::Version.new(RUBY_VERSION.dup) == Gem::Version.new('2.1.9')
+ gem "puppet-module-posix-default-r#{minor_version}", require: false, platforms: [:ruby]
+ gem "puppet-module-posix-dev-r#{minor_version}", require: false, platforms: [:ruby]
+ gem "puppet-module-win-default-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw]
+ gem "puppet-module-win-dev-r#{minor_version}", require: false, platforms: [:mswin, :mingw, :x64_mingw]
end
+group :test do
+ gem "hiera", require: false
+end
-group :system_tests do
- gem 'winrm', :require => false
- if beaker_version = ENV['BEAKER_VERSION']
- gem 'beaker', *location_for(beaker_version)
- else
- gem 'beaker', '>= 3.9.0', :require => false
- end
- if beaker_rspec_version = ENV['BEAKER_RSPEC_VERSION']
- gem 'beaker-rspec', *location_for(beaker_rspec_version)
- else
- gem 'beaker-rspec', :require => false
- end
- gem 'serverspec', :require => false
- gem 'beaker-puppet_install_helper', :require => false
- gem 'beaker-module_install_helper', :require => false
+puppet_version = ENV['PUPPET_GEM_VERSION']
+puppet_type = gem_type(puppet_version)
+facter_version = ENV['FACTER_GEM_VERSION']
+hiera_version = ENV['HIERA_GEM_VERSION']
+
+def puppet_older_than?(version)
+ puppet_version = ENV['PUPPET_GEM_VERSION']
+ !puppet_version.nil? &&
+ Gem::Version.correct?(puppet_version) &&
+ Gem::Requirement.new("< #{version}").satisfied_by?(Gem::Version.new(puppet_version.dup))
end
-group :release do
- gem 'github_changelog_generator', :require => false, :git => 'https://github.com/skywinder/github-changelog-generator' if RUBY_VERSION >= '2.2.2'
- gem 'puppet-blacksmith', :require => false
- gem 'voxpupuli-release', :require => false, :git => 'https://github.com/voxpupuli/voxpupuli-release-gem'
- gem 'puppet-strings', '~> 1.0', :require => false
+gems = {}
+
+gems['puppet'] = location_for(puppet_version)
+
+# If facter or hiera versions have been specified via the environment
+# variables, use those versions. If not, and if the puppet version is < 3.5.0,
+# use known good versions of both for puppet < 3.5.0.
+if facter_version
+ gems['facter'] = location_for(facter_version)
+elsif puppet_type == :gem && puppet_older_than?('3.5.0')
+ gems['facter'] = ['>= 1.6.11', '<= 1.7.5', require: false]
end
+if hiera_version
+ gems['hiera'] = location_for(ENV['HIERA_GEM_VERSION'])
+elsif puppet_type == :gem && puppet_older_than?('3.5.0')
+ gems['hiera'] = ['>= 1.0.0', '<= 1.3.0', require: false]
+end
+if Gem.win_platform? && (puppet_type != :gem || puppet_older_than?('3.5.0'))
+ # For Puppet gems < 3.5.0 (tested as far back as 3.0.0) on Windows
+ if puppet_type == :gem
+ gems['ffi'] = ['1.9.0', require: false]
+ gems['minitar'] = ['0.5.4', require: false]
+ gems['win32-eventlog'] = ['0.5.3', '<= 0.6.5', require: false]
+ gems['win32-process'] = ['0.6.5', '<= 0.7.5', require: false]
+ gems['win32-security'] = ['~> 0.1.2', '<= 0.2.5', require: false]
+ gems['win32-service'] = ['0.7.2', '<= 0.8.8', require: false]
+ else
+ gems['ffi'] = ['~> 1.9.0', require: false]
+ gems['minitar'] = ['~> 0.5.4', require: false]
+ gems['win32-eventlog'] = ['~> 0.5', '<= 0.6.5', require: false]
+ gems['win32-process'] = ['~> 0.6', '<= 0.7.5', require: false]
+ gems['win32-security'] = ['~> 0.1', '<= 0.2.5', require: false]
+ gems['win32-service'] = ['~> 0.7', '<= 0.8.8', require: false]
+ end
-if facterversion = ENV['FACTER_GEM_VERSION']
- gem 'facter', facterversion.to_s, :require => false, :groups => [:test]
-else
- gem 'facter', :require => false, :groups => [:test]
+ gems['win32-dir'] = ['~> 0.3', '<= 0.4.9', require: false]
+
+ if RUBY_VERSION.start_with?('1.')
+ gems['win32console'] = ['1.3.2', require: false]
+ # sys-admin was removed in Puppet 3.7.0 and doesn't compile under Ruby 2.x
+ gems['sys-admin'] = ['1.5.6', require: false]
+ end
+
+ # Puppet < 3.7.0 requires these.
+ # Puppet >= 3.5.0 gem includes these as requirements.
+ # The following versions are tested to work with 3.0.0 <= puppet < 3.7.0.
+ gems['win32-api'] = ['1.4.8', require: false]
+ gems['win32-taskscheduler'] = ['0.2.2', require: false]
+ gems['windows-api'] = ['0.4.3', require: false]
+ gems['windows-pr'] = ['1.2.3', require: false]
+elsif Gem.win_platform?
+ # If we're using a Puppet gem on Windows which handles its own win32-xxx gem
+ # dependencies (>= 3.5.0), set the maximum versions (see PUP-6445).
+ gems['win32-dir'] = ['<= 0.4.9', require: false]
+ gems['win32-eventlog'] = ['<= 0.6.5', require: false]
+ gems['win32-process'] = ['<= 0.7.5', require: false]
+ gems['win32-security'] = ['<= 0.2.5', require: false]
+ gems['win32-service'] = ['<= 0.8.8', require: false]
end
-ENV['PUPPET_VERSION'].nil? ? puppetversion = '~> 5.0' : puppetversion = ENV['PUPPET_VERSION'].to_s
-gem 'puppet', puppetversion, :require => false, :groups => [:test]
+gems.each do |gem_name, gem_params|
+ gem gem_name, *gem_params
+end
+# Evaluate Gemfile.local and ~/.gemfile if they exist
+extra_gemfiles = [
+ "#{__FILE__}.local",
+ File.join(Dir.home, '.gemfile'),
+]
+
+extra_gemfiles.each do |gemfile|
+ if File.file?(gemfile) && File.readable?(gemfile)
+ eval(File.read(gemfile), binding)
+ end
+end
# vim: syntax=ruby
--- metadata.json 2018-04-09 15:02:47.189491796 -0500
+++ metadata.json.pdknew 2018-04-09 15:06:09.766356000 -0500
@@ -7,10 +7,15 @@
"source": "https://github.com/voxpupuli/puppet-autofs.git",
"project_page": "https://voxpupuli.org/puppet-autofs",
"issues_url": "https://github.com/voxpupuli/puppet-autofs/issues",
- "tags": [
- "autofs",
- "automount",
- "mount"
+ "dependencies": [
+ {
+ "name": "puppetlabs/stdlib",
+ "version_requirement": ">= 4.13.1 < 5.0.0"
+ },
+ {
+ "name": "puppetlabs/concat",
+ "version_requirement": ">= 2.2.1 < 5.0.0"
+ }
],
"operatingsystem_support": [
{
@@ -98,15 +103,13 @@
"version_requirement": ">= 4.10.10 < 6.0.0"
}
],
- "dependencies": [
- {
- "name": "puppetlabs/stdlib",
- "version_requirement": ">= 4.13.1 < 5.0.0"
- },
- {
- "name": "puppetlabs/concat",
- "version_requirement": ">= 2.2.1 < 5.0.0"
- }
- ]
+ "tags": [
+ "autofs",
+ "automount",
+ "mount"
+ ],
+ "pdk-version": "1.4.1",
+ "template-url": "file:///opt/puppetlabs/pdk/share/cache/pdk-templates.git",
+ "template-ref": "1.4.1-0-g52adbbb"
}
--- Rakefile 2018-04-09 15:02:47.188882838 -0500
+++ Rakefile.pdknew 2018-04-09 15:06:09.786218000 -0500
@@ -1,93 +1,3 @@
require 'puppetlabs_spec_helper/rake_tasks'
-
-# load optional tasks for releases
-# only available if gem group releases is installed
-begin
- require 'puppet_blacksmith/rake_tasks'
- require 'voxpupuli/release/rake_tasks'
- require 'puppet-strings/tasks'
-rescue LoadError
-end
-
-PuppetLint.configuration.log_format = '%{path}:%{line}:%{check}:%{KIND}:%{message}'
-PuppetLint.configuration.fail_on_warnings = true
-PuppetLint.configuration.send('relative')
-PuppetLint.configuration.send('disable_140chars')
-PuppetLint.configuration.send('disable_class_inherits_from_params_class')
-PuppetLint.configuration.send('disable_documentation')
-PuppetLint.configuration.send('disable_single_quote_string_with_variables')
-
-exclude_paths = %w(
- pkg/**/*
- vendor/**/*
- .vendor/**/*
- spec/**/*
-)
-PuppetLint.configuration.ignore_paths = exclude_paths
-PuppetSyntax.exclude_paths = exclude_paths
-
-desc 'Auto-correct puppet-lint offenses'
-task 'lint:auto_correct' do
- PuppetLint.configuration.fix = true
- Rake::Task[:lint].invoke
-end
-
-desc 'Run acceptance tests'
-RSpec::Core::RakeTask.new(:acceptance) do |t|
- t.pattern = 'spec/acceptance'
-end
-
-desc 'Run tests metadata_lint, release_checks'
-task test: [
- :metadata_lint,
- :release_checks,
-]
-
-desc "Run main 'test' task and report merged results to coveralls"
-task test_with_coveralls: [:test] do
- if Dir.exist?(File.expand_path('../lib', __FILE__))
- require 'coveralls/rake/task'
- Coveralls::RakeTask.new
- Rake::Task['coveralls:push'].invoke
- else
- puts 'Skipping reporting to coveralls. Module has no lib dir'
- end
-end
-
-desc "Print supported beaker sets"
-task 'beaker_sets', [:directory] do |t, args|
- directory = args[:directory]
-
- metadata = JSON.load(File.read('metadata.json'))
-
- (metadata['operatingsystem_support'] || []).each do |os|
- (os['operatingsystemrelease'] || []).each do |release|
- if directory
- beaker_set = "#{directory}/#{os['operatingsystem'].downcase}-#{release}"
- else
- beaker_set = "#{os['operatingsystem'].downcase}-#{release}-x64"
- end
-
- filename = "spec/acceptance/nodesets/#{beaker_set}.yml"
-
- puts beaker_set if File.exists? filename
- end
- end
-end
-
-begin
- require 'github_changelog_generator/task'
- GitHubChangelogGenerator::RakeTask.new :changelog do |config|
- version = (Blacksmith::Modulefile.new).version
- config.future_release = "v#{version}" if version =~ /^\d+\.\d+.\d+$/
- config.header = "# Changelog\n\nAll notable changes to this project will be documented in this file.\nEach new release typically also includes the latest modulesync defaults.\nThese should not affect the functionality of the module."
- config.exclude_labels = %w{duplicate question invalid wontfix wont-fix modulesync skip-changelog}
- config.user = 'voxpupuli'
- metadata_json = File.join(File.dirname(__FILE__), 'metadata.json')
- metadata = JSON.load(File.read(metadata_json))
- config.project = metadata['name']
- end
-rescue LoadError
-end
-# vim: syntax=ruby
+require 'puppet-syntax/tasks/puppet-syntax'
--- spec/spec_helper.rb 2018-04-09 15:02:47.190085010 -0500
+++ spec/spec_helper.rb.pdknew 2018-04-09 15:06:09.767756000 -0500
@@ -1,32 +1,31 @@
require 'puppetlabs_spec_helper/module_spec_helper'
require 'rspec-puppet-facts'
+
+begin
+ require 'spec_helper_local' if File.file?(File.join(File.dirname(__FILE__), 'spec_helper_local.rb'))
+rescue LoadError => loaderror
+ warn "Could not require spec_helper_local: #{loaderror.message}"
+end
+
include RspecPuppetFacts
-if Dir.exist?(File.expand_path('../../lib', __FILE__))
- require 'coveralls'
- require 'simplecov'
- require 'simplecov-console'
- SimpleCov.formatters = [
- SimpleCov::Formatter::HTMLFormatter,
- SimpleCov::Formatter::Console
- ]
- SimpleCov.start do
- track_files 'lib/**/*.rb'
- add_filter '/spec'
- add_filter '/vendor'
- add_filter '/.vendor'
- end
+default_facts = {
+ puppetversion: Puppet.version,
+ facterversion: Facter.version,
+}
+
+default_facts_path = File.expand_path(File.join(File.dirname(__FILE__), 'default_facts.yml'))
+default_module_facts_path = File.expand_path(File.join(File.dirname(__FILE__), 'default_module_facts.yml'))
+
+if File.exist?(default_facts_path) && File.readable?(default_facts_path)
+ default_facts.merge!(YAML.safe_load(File.read(default_facts_path)))
end
+if File.exist?(default_module_facts_path) && File.readable?(default_module_facts_path)
+ default_facts.merge!(YAML.safe_load(File.read(default_module_facts_path)))
+end
+
RSpec.configure do |c|
- default_facts = {
- puppetversion: Puppet.version,
- facterversion: Facter.version
- }
- default_facts.merge!(YAML.load(File.read(File.expand_path('../default_facts.yml', __FILE__)))) if File.exist?(File.expand_path('../default_facts.yml', __FILE__))
- default_facts.merge!(YAML.load(File.read(File.expand_path('../default_module_facts.yml', __FILE__)))) if File.exist?(File.expand_path('../default_module_facts.yml', __FILE__))
c.default_facts = default_facts
end
-
-# vim: syntax=ruby
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment