diff options
author | Tim Meusel <tim@bastelfreak.de> | 2016-07-11 16:26:37 +0200 |
---|---|---|
committer | Tim Meusel <tim@bastelfreak.de> | 2016-07-11 16:27:05 +0200 |
commit | efe03e6af4e63b1c6a98c22cfdbfee040b99c44b (patch) | |
tree | 268c4d152c46601317461d7f8b6b36fd098859d5 | |
parent | b123117dfe0ef9f8225659a24c31d0bb276b2815 (diff) |
modulesync 0.9.1
-rw-r--r-- | .github/CONTRIBUTING.md | 95 | ||||
-rw-r--r-- | .github/ISSUE_TEMPLATE.md | 23 | ||||
-rw-r--r-- | .github/PULL_REQUEST_TEMPLATE.md | 5 | ||||
-rw-r--r-- | .msync.yml | 1 | ||||
-rw-r--r-- | .rubocop.yml | 480 | ||||
-rw-r--r-- | .travis.yml | 4 | ||||
-rw-r--r-- | Gemfile | 2 | ||||
-rw-r--r-- | spec/spec_helper.rb | 13 |
8 files changed, 593 insertions, 30 deletions
diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 0000000..5b09ea6 --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,95 @@ +This module has grown over time based on a range of contributions from +people using it. If you follow these contributing guidelines your patch +will likely make it into a release a little quicker. + + +## Contributing + +Please note that this project is released with a Contributor Code of Conduct. By participating in this project you agree to abide by its terms. [Contributor Code of Conduct](https://voxpupuli.org/coc/). + +1. Fork the repo. + +1. Create a separate branch for your change. + +1. Run the tests. We only take pull requests with passing tests, and + documentation. + +1. Add a test for your change. Only refactoring and documentation + changes require no new tests. If you are adding functionality + or fixing a bug, please add a test. + +1. Squash your commits down into logical components. Make sure to rebase + against the current master. + +1. Push the branch to your fork and submit a pull request. + +Please be prepared to repeat some of these steps as our contributors review +your code. + +## Dependencies + +The testing and development tools have a bunch of dependencies, +all managed by [bundler](http://bundler.io/) according to the +[Puppet support matrix](http://docs.puppetlabs.com/guides/platforms.html#ruby-versions). + +By default the tests use a baseline version of Puppet. + +If you have Ruby 2.x or want a specific version of Puppet, +you must set an environment variable such as: + + export PUPPET_VERSION="~> 4.2.0" + +Install the dependencies like so... + + bundle install + +## Syntax and style + +The test suite will run [Puppet Lint](http://puppet-lint.com/) and +[Puppet Syntax](https://github.com/gds-operations/puppet-syntax) to +check various syntax and style things. You can run these locally with: + + bundle exec rake lint + bundle exec rake validate + +## Running the unit tests + +The unit test suite covers most of the code, as mentioned above please +add tests if you're adding new functionality. If you've not used +[rspec-puppet](http://rspec-puppet.com/) before then feel free to ask +about how best to test your new feature. + +To run your all the unit tests + + bundle exec rake spec SPEC_OPTS='--format documentation' + +To run a specific spec test set the `SPEC` variable: + + bundle exec rake spec SPEC=spec/foo_spec.rb + +To run the linter, the syntax checker and the unit tests: + + bundle exec rake test + + +## Integration tests + +The unit tests just check the code runs, not that it does exactly what +we want on a real machine. For that we're using +[beaker](https://github.com/puppetlabs/beaker). + +This fires up a new virtual machine (using vagrant) and runs a series of +simple tests against it after applying the module. You can run this +with: + + bundle exec rake acceptance + +This will run the tests on an Ubuntu 12.04 virtual machine. You can also +run the integration tests against Centos 6.5 with. + + BEAKER_set=centos-64-x64 bundle exec rake acceptances + +If you don't want to have to recreate the virtual machine every time you +can use `BEAKER_DESTROY=no` and `BEAKER_PROVISION=no`. On the first run you will +at least need `BEAKER_PROVISION` set to yes (the default). The Vagrantfile +for the created virtual machines will be in `.vagrant/beaker_vagrant_fies`. diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..9ac4a2b --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,23 @@ +<!-- +Thank you for contributing to this project! +- This project has a Contributor Code of Conduct: https://voxpupuli.org/coc/ +- Please check that here is no existing issue or PR that addresses your problem. +- Please fill the following form to enable us to help you. +--> + +### Affected Puppet, Ruby, OS and module versions/distributions + +- Puppet: +- Ruby: +- Distribution: +- Module version: + +### How to reproduce (e.g Puppet code you use) + +### What are you seeing + +### What behaviour did you expect instead + +### Output log + +### Any additional information you'd like to impart diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..79272bf --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,5 @@ +<!-- +Thank you for contributing to this project! +- This project has a Contributor Code of Conduct: https://voxpupuli.org/coc/ +- Please check that here is no existing issue or PR that addresses your problem. +--> diff --git a/.msync.yml b/.msync.yml new file mode 100644 index 0000000..efd68b6 --- /dev/null +++ b/.msync.yml @@ -0,0 +1 @@ +modulesync_config_version: '0.9.1' diff --git a/.rubocop.yml b/.rubocop.yml index 364b022..c834cd2 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -8,22 +8,53 @@ AllCops: - .vendor/**/* - pkg/**/* - spec/fixtures/**/* +Lint/ConditionPosition: + Enabled: true -# Configuration parameters: AllowURI, URISchemes. -Metrics/LineLength: - Max: 328 +Lint/ElseLayout: + Enabled: true -# 'Complexity' is very relative -Metrics/PerceivedComplexity: - Enabled: false +Lint/UnreachableCode: + Enabled: true -# 'Complexity' is very relative -Metrics/CyclomaticComplexity: - Enabled: false +Lint/UselessComparison: + Enabled: true -# 'Complexity' is very relative -Metrics/AbcSize: - Enabled: false +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 + +Lint/AmbiguousOperator: + Enabled: true + +Lint/AssignmentInCondition: + Enabled: true + +Style/SpaceBeforeComment: + Enabled: true + +Style/AndOr: + Enabled: true + +Style/RedundantSelf: + Enabled: true # Method length is not necessarily an indicator of code quality Metrics/MethodLength: @@ -33,42 +64,437 @@ Metrics/MethodLength: Metrics/ModuleLength: Enabled: false +Style/WhileUntilModifier: + Enabled: true + +Lint/AmbiguousRegexpLiteral: + Enabled: true + +Lint/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 + +Style/AccessModifierIndentation: + Enabled: true + +Style/AccessorMethodName: + Enabled: true + +Style/Alias: + Enabled: true + +Style/AlignArray: + Enabled: true + +Style/AlignHash: + Enabled: true + +Style/AlignParameters: + Enabled: true + +Metrics/BlockNesting: + Enabled: true + +Style/AsciiComments: + Enabled: true + +Style/Attr: + Enabled: true + +Style/BracesAroundHashParameters: + Enabled: true + +Style/CaseEquality: + Enabled: true + +Style/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 -# dealbreaker: -Style/TrailingCommaInArguments: +Style/ClassMethods: + Enabled: true + +Style/ClassVars: + Enabled: true + +Style/WhenThen: + Enabled: true + +Style/WordArray: + Enabled: true + +Style/UnneededPercentQ: + Enabled: true + +Style/Tab: + Enabled: true + +Style/SpaceBeforeSemicolon: + Enabled: true + +Style/TrailingBlankLines: + Enabled: true + +Style/SpaceInsideBlockBraces: + Enabled: true + +Style/SpaceInsideBrackets: + Enabled: true + +Style/SpaceInsideHashLiteralBraces: + Enabled: true + +Style/SpaceInsideParens: + Enabled: true + +Style/LeadingCommentSpace: + Enabled: true + +Style/SpaceBeforeFirstArg: + Enabled: true + +Style/SpaceAfterColon: + Enabled: true + +Style/SpaceAfterComma: + Enabled: true + +Style/SpaceAfterMethodName: + Enabled: true + +Style/SpaceAfterNot: + Enabled: true + +Style/SpaceAfterSemicolon: + Enabled: true + +Style/SpaceAroundEqualsInParameterDefault: + Enabled: true + +Style/SpaceAroundOperators: + Enabled: true + +Style/SpaceBeforeBlockBraces: + Enabled: true + +Style/SpaceBeforeComma: + Enabled: true + +Style/CollectionMethods: + Enabled: true + +Style/CommentIndentation: + Enabled: true + +Style/ColonMethodCall: + Enabled: true + +Style/CommentAnnotation: + Enabled: true + +# 'Complexity' is very relative +Metrics/CyclomaticComplexity: Enabled: false -Style/TrailingCommaInLiteral: + +Style/ConstantName: + Enabled: true + +Style/Documentation: Enabled: false -Style/ClosingParenthesisIndentation: + +Style/DefWithParentheses: + Enabled: true + +Style/PreferredHashMethods: + Enabled: true + +Style/DotPosition: + EnforcedStyle: trailing + +Style/DoubleNegation: + Enabled: true + +Style/EachWithObject: + Enabled: true + +Style/EmptyLineBetweenDefs: + Enabled: true + +Style/IndentArray: + Enabled: true + +Style/IndentHash: + Enabled: true + +Style/IndentationConsistency: + Enabled: true + +Style/IndentationWidth: + Enabled: true + +Style/EmptyLines: + Enabled: true + +Style/EmptyLinesAroundAccessModifier: + Enabled: true + +Style/EmptyLiteral: + Enabled: true + +# Configuration parameters: AllowURI, URISchemes. +Metrics/LineLength: Enabled: false -Lint/AmbiguousRegexpLiteral: +Style/MethodCallParentheses: + Enabled: true + +Style/MethodDefParentheses: + Enabled: true + +Style/LineEndConcatenation: + Enabled: true + +Style/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 + +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 Style/RegexpLiteral: + EnforcedStyle: percent_r Enabled: true -Style/WordArray: + +Lint/UnderscorePrefixedVariableName: Enabled: true -# this catches the cases of using `module` for parser functions, types, or -# providers -Style/ClassAndModuleChildren: +Metrics/ParameterLists: Enabled: false -Style/Documentation: - Description: 'Document classes and non-namespace modules.' - Enabled: false +Lint/RequireParentheses: + Enabled: true + +Style/SpaceBeforeFirstArg: + Enabled: true + +Style/ModuleFunction: + Enabled: true + +Lint/Debugger: + Enabled: true + +Style/IfWithSemicolon: + Enabled: true + +Style/Encoding: + Enabled: true -# More comfortable block layouts Style/BlockDelimiters: - Enabled: False + Enabled: true Style/MultilineBlockLayout: + Enabled: true + +# 'Complexity' is very relative +Metrics/AbcSize: + Enabled: False + +# 'Complexity' is very relative +Metrics/PerceivedComplexity: Enabled: False -# Rspec +Lint/UselessAssignment: + Enabled: true + +Style/ClosingParenthesisIndentation: + Enabled: false + +# RSpec # We don't use rspec in this way RSpec/DescribeClass: diff --git a/.travis.yml b/.travis.yml index cc86b12..5eb58f0 100644 --- a/.travis.yml +++ b/.travis.yml @@ -26,6 +26,8 @@ matrix: - rvm: 2.2 env: PUPPET_VERSION="~> 4.0" STRICT_VARIABLES="yes" CHECK=test - rvm: 2.3.1 + env: PUPPET_VERSION="~> 4.0" STRICT_VARIABLES="yes" CHECK=build + - rvm: 2.3.1 env: PUPPET_VERSION="~> 4.0" STRICT_VARIABLES="yes" CHECK=rubocop - rvm: 2.3.1 env: PUPPET_VERSION="~> 4.0" STRICT_VARIABLES="yes" CHECK=test @@ -41,4 +43,4 @@ deploy: # all_branches is required to use tags all_branches: true # Only publish if our main Ruby target builds - rvm: 2.2 + rvm: 2.3.1 @@ -15,7 +15,6 @@ group :test do gem 'rspec-puppet', :require => false, :git => 'https://github.com/rodjek/rspec-puppet.git' gem 'rspec-puppet-facts', :require => false gem 'rspec-puppet-utils', :require => false - gem 'puppet-lint', :require => false, :git => 'https://github.com/rodjek/puppet-lint.git' gem 'puppet-lint-absolute_classname-check', :require => false gem 'puppet-lint-leading_zero-check', :require => false gem 'puppet-lint-trailing_comma-check', :require => false @@ -37,7 +36,6 @@ group :development do end group :system_tests do - gem 'beaker', :require => false if beaker_version = ENV['BEAKER_VERSION'] gem 'beaker', *location_for(beaker_version) end diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 0f53c4e..047b126 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,4 +1,17 @@ require 'puppetlabs_spec_helper/module_spec_helper' require 'rspec-puppet-facts' include RspecPuppetFacts + +RSpec.configure do |c| + c.default_facts = { + concat_basedir: '/tmp', + is_pe: false, + selinux_config_mode: 'disabled', + puppetversion: Puppet.version, + facterversion: Facter.version, + ipaddress: '172.16.254.254', + macaddress: 'AA:AA:AA:AA:AA:AA' + } +end + # vim: syntax=ruby |