From 57fc0c7d1ee907db44f91af123a47a308e6c3073 Mon Sep 17 00:00:00 2001 From: Bobosila Victor Date: Fri, 24 Sep 2021 13:33:21 +0300 Subject: (MODULES-11197) Restrict system gems to match pdk templates --- .sync.yml | 2 ++ 1 file changed, 2 insertions(+) diff --git a/.sync.yml b/.sync.yml index 7acc7c1..8bf327a 100644 --- a/.sync.yml +++ b/.sync.yml @@ -15,11 +15,13 @@ Gemfile: ':system_tests': - gem: 'puppet-module-posix-system-r#{minor_version}' platforms: ruby + version: '~> 1.0' - gem: 'puppet-module-win-system-r#{minor_version}' platforms: - mswin - mingw - x64_mingw + version: '~> 1.0' - gem: beaker version: '~> 3.34' from_env: BEAKER_VERSION -- cgit v1.2.3 From ad6106747761c597cb39b741a322dd608384b2ca Mon Sep 17 00:00:00 2001 From: Bobosila Victor Date: Sat, 25 Sep 2021 12:52:50 +0300 Subject: (MODULES-11197) Move commits rake task to rakelib/commits.rake --- Rakefile | 25 ------------------------- rakelib/commits.rake | 25 +++++++++++++++++++++++++ 2 files changed, 25 insertions(+), 25 deletions(-) create mode 100644 rakelib/commits.rake diff --git a/Rakefile b/Rakefile index 7f91a3f..e1d5f7b 100644 --- a/Rakefile +++ b/Rakefile @@ -84,28 +84,3 @@ EOM end end -desc "verify that commit messages match CONTRIBUTING.md requirements" -task(:commits) do - # This rake task looks at the summary from every commit from this branch not - # in the branch targeted for a PR. - commit_range = 'HEAD^..HEAD' - puts "Checking commits #{commit_range}" - %x{git log --no-merges --pretty=%s #{commit_range}}.each_line do |commit_summary| - # This regex tests for the currently supported commit summary tokens. - # The exception tries to explain it in more full. - if /^\((maint|packaging|doc|docs|modules-\d+)\)|revert/i.match(commit_summary).nil? - raise "\n\n\n\tThis commit summary didn't match CONTRIBUTING.md guidelines:\n" \ - "\n\t\t#{commit_summary}\n" \ - "\tThe commit summary (i.e. the first line of the commit message) should start with one of:\n" \ - "\t\t(MODULES-) # this is most common and should be a ticket at tickets.puppet.com\n" \ - "\t\t(docs)\n" \ - "\t\t(docs)(DOCUMENT-)\n" \ - "\t\t(packaging)\n" - "\t\t(maint)\n" \ - "\n\tThis test for the commit summary is case-insensitive.\n\n\n" - else - puts "#{commit_summary}" - end - puts "...passed" - end -end diff --git a/rakelib/commits.rake b/rakelib/commits.rake new file mode 100644 index 0000000..a900ee2 --- /dev/null +++ b/rakelib/commits.rake @@ -0,0 +1,25 @@ +desc "verify that commit messages match CONTRIBUTING.md requirements" +task(:commits) do + # This rake task looks at the summary from every commit from this branch not + # in the branch targeted for a PR. + commit_range = 'HEAD^..HEAD' + puts "Checking commits #{commit_range}" + %x{git log --no-merges --pretty=%s #{commit_range}}.each_line do |commit_summary| + # This regex tests for the currently supported commit summary tokens. + # The exception tries to explain it in more full. + if /^\((maint|packaging|doc|docs|modules-\d+)\)|revert/i.match(commit_summary).nil? + raise "\n\n\n\tThis commit summary didn't match CONTRIBUTING.md guidelines:\n" \ + "\n\t\t#{commit_summary}\n" \ + "\tThe commit summary (i.e. the first line of the commit message) should start with one of:\n" \ + "\t\t(MODULES-) # this is most common and should be a ticket at tickets.puppet.com\n" \ + "\t\t(docs)\n" \ + "\t\t(docs)(DOCUMENT-)\n" \ + "\t\t(packaging)\n" + "\t\t(maint)\n" \ + "\n\tThis test for the commit summary is case-insensitive.\n\n\n" + else + puts "#{commit_summary}" + end + puts "...passed" + end +end -- cgit v1.2.3 From e78ecf8948988656bcb83aff2587f1641099416d Mon Sep 17 00:00:00 2001 From: Bobosila Victor Date: Sat, 25 Sep 2021 12:55:25 +0300 Subject: (MODULES-11197) Update the pdk template to 2.2.0 --- .devcontainer/Dockerfile | 6 + .devcontainer/devcontainer.json | 23 ++ .github/workflows/auto_release.yml | 84 ++++++++ .github/workflows/release.yml | 47 ++++ .gitignore | 1 + .pdkignore | 5 + .rubocop.yml | 430 +++++++++++++++++++++++++++++++++++-- .sync.yml | 63 +++--- Gemfile | 58 ++--- Rakefile | 18 +- metadata.json | 6 +- spec/spec_helper.rb | 20 +- 12 files changed, 665 insertions(+), 96 deletions(-) create mode 100644 .devcontainer/Dockerfile create mode 100644 .devcontainer/devcontainer.json create mode 100644 .github/workflows/auto_release.yml create mode 100644 .github/workflows/release.yml diff --git a/.devcontainer/Dockerfile b/.devcontainer/Dockerfile new file mode 100644 index 0000000..12ed4ff --- /dev/null +++ b/.devcontainer/Dockerfile @@ -0,0 +1,6 @@ +FROM puppet/pdk:latest + +# [Optional] Uncomment this section to install additional packages. +# RUN apt-get update && export DEBIAN_FRONTEND=noninteractive \ +# && apt-get -y install --no-install-recommends + diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json new file mode 100644 index 0000000..f1a55dc --- /dev/null +++ b/.devcontainer/devcontainer.json @@ -0,0 +1,23 @@ +// For format details, see https://aka.ms/devcontainer.json. For config options, see the README at: +// https://github.com/microsoft/vscode-dev-containers/tree/v0.140.1/containers/puppet +{ + "name": "Puppet Development Kit (Community)", + "dockerFile": "Dockerfile", + + // Set *default* container specific settings.json values on container create. + "settings": { + "terminal.integrated.shell.linux": "/bin/bash" + }, + + // Add the IDs of extensions you want installed when the container is created. + "extensions": [ + "puppet.puppet-vscode", + "rebornix.Ruby" + ] + + // Use 'forwardPorts' to make a list of ports inside the container available locally. + // "forwardPorts": [], + + // Use 'postCreateCommand' to run commands after the container is created. + // "postCreateCommand": "pdk --version", +} diff --git a/.github/workflows/auto_release.yml b/.github/workflows/auto_release.yml new file mode 100644 index 0000000..e028483 --- /dev/null +++ b/.github/workflows/auto_release.yml @@ -0,0 +1,84 @@ +name: "Auto release" + +on: + workflow_dispatch: + +env: + HONEYCOMB_WRITEKEY: 7f3c63a70eecc61d635917de46bea4e6 + HONEYCOMB_DATASET: litmus tests + CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + +jobs: + auto_release: + name: "Automatic release prep" + runs-on: ubuntu-20.04 + + steps: + - name: "Honeycomb: Start recording" + uses: puppetlabs/kvrhdn-gha-buildevents@pdk-templates-v1 + with: + apikey: ${{ env.HONEYCOMB_WRITEKEY }} + dataset: ${{ env.HONEYCOMB_DATASET }} + job-status: ${{ job.status }} + + - name: "Honeycomb: start first step" + run: | + echo STEP_ID="auto-release" >> $GITHUB_ENV + echo STEP_START=$(date +%s) >> $GITHUB_ENV + + - name: "Checkout Source" + if: ${{ github.repository_owner == 'puppetlabs' }} + uses: actions/checkout@v2 + with: + fetch-depth: 0 + persist-credentials: false + + - name: "PDK Release prep" + uses: docker://puppet/iac_release:ci + with: + args: 'release prep --force' + env: + CHANGELOG_GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + + - name: "Get Version" + if: ${{ github.repository_owner == 'puppetlabs' }} + id: gv + run: | + echo "::set-output name=ver::$(jq --raw-output .version metadata.json)" + + - name: "Commit changes" + if: ${{ github.repository_owner == 'puppetlabs' }} + run: | + git config --local user.email "${{ github.repository_owner }}@users.noreply.github.com" + git config --local user.name "GitHub Action" + git add . + git commit -m "Release prep v${{ steps.gv.outputs.ver }}" + + - name: Create Pull Request + id: cpr + uses: puppetlabs/peter-evans-create-pull-request@v3 + if: ${{ github.repository_owner == 'puppetlabs' }} + with: + token: ${{ secrets.GITHUB_TOKEN }} + commit-message: "Release prep v${{ steps.gv.outputs.ver }}" + branch: "release-prep" + delete-branch: true + title: "Release prep v${{ steps.gv.outputs.ver }}" + body: | + Automated release-prep through [pdk-templates](https://github.com/puppetlabs/pdk-templates/blob/main/moduleroot/.github/workflows/auto_release.yml.erb) from commit ${{ github.sha }}. + Please verify before merging: + - [ ] last [nightly](https://github.com/${{ github.repository }}/actions/workflows/nightly.yml) run is green + - [ ] [Changelog](https://github.com/${{ github.repository }}/blob/release-prep/CHANGELOG.md) is readable and has no unlabeled pull requests + - [ ] Ensure the [changelog](https://github.com/${{ github.repository }}/blob/release-prep/CHANGELOG.md) version and [metadata](https://github.com/${{ github.repository }}/blob/release-prep/metadata.json) version match + labels: "maintenance" + + - name: PR outputs + if: ${{ github.repository_owner == 'puppetlabs' }} + run: | + echo "Pull Request Number - ${{ steps.cpr.outputs.pull-request-number }}" + echo "Pull Request URL - ${{ steps.cpr.outputs.pull-request-url }}" + + - name: "Honeycomb: Record finish step" + if: ${{ always() }} + run: | + buildevents step $TRACE_ID $STEP_ID $STEP_START 'Finished auto release workflow' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..1509f6e --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,47 @@ +name: "Publish module" + +on: + workflow_dispatch: + +jobs: + create-github-release: + name: Deploy GitHub Release + runs-on: ubuntu-20.04 + steps: + - name: Checkout code + uses: actions/checkout@v2 + with: + ref: ${{ github.ref }} + clean: true + fetch-depth: 0 + - name: Get Version + id: gv + run: | + echo "::set-output name=ver::$(jq --raw-output .version metadata.json)" + - name: Create Release + uses: actions/create-release@v1 + id: create_release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + with: + tag_name: "v${{ steps.gv.outputs.ver }}" + draft: false + prerelease: false + + deploy-forge: + name: Deploy to Forge + runs-on: ubuntu-20.04 + steps: + - name: Checkout code + uses: actions/checkout@v2 + with: + ref: ${{ github.ref }} + clean: true + - name: "PDK Build" + uses: docker://puppet/pdk:nightly + with: + args: 'build' + - name: "Push to Forge" + uses: docker://puppet/pdk:nightly + with: + args: 'release publish --forge-token ${{ secrets.FORGE_API_KEY }} --force' diff --git a/.gitignore b/.gitignore index 2767022..988dcbb 100644 --- a/.gitignore +++ b/.gitignore @@ -25,3 +25,4 @@ .project .envrc /inventory.yaml +/spec/fixtures/litmus_inventory.yaml diff --git a/.pdkignore b/.pdkignore index e6215cd..c538bea 100644 --- a/.pdkignore +++ b/.pdkignore @@ -25,13 +25,16 @@ .project .envrc /inventory.yaml +/spec/fixtures/litmus_inventory.yaml /appveyor.yml +/.editorconfig /.fixtures.yml /Gemfile /.gitattributes /.gitignore /.gitlab-ci.yml /.pdkignore +/.puppet-lint.rc /Rakefile /rakelib/ /.rspec @@ -40,3 +43,5 @@ /.yardopts /spec/ /.vscode/ +/.sync.yml +/.devcontainer/ diff --git a/.rubocop.yml b/.rubocop.yml index 45f4463..4416e78 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -1,12 +1,12 @@ --- require: +- rubocop-performance - rubocop-rspec -- rubocop-i18n AllCops: DisplayCopNames: true - TargetRubyVersion: '2.1' + TargetRubyVersion: '2.4' Include: - - "./**/*.rb" + - "**/*.rb" Exclude: - bin/* - ".vendor/**/*" @@ -18,17 +18,10 @@ AllCops: - "**/Puppetfile" - "**/Vagrantfile" - "**/Guardfile" -Metrics/LineLength: +Layout/LineLength: Description: People have wide screens, use them. Max: 200 Enabled: false -GetText: - Enabled: false -GetText/DecorateString: - Description: We don't want to decorate test output. - Exclude: - - spec/**/* - Enabled: false RSpec/BeforeAfterAll: Description: Beware of using after(:all) as it may cause state to leak between tests. A necessary evil in acceptance testing. @@ -37,6 +30,9 @@ RSpec/BeforeAfterAll: RSpec/HookArgument: Description: Prefer explicit :each argument, matching existing module's style EnforcedStyle: each +RSpec/DescribeSymbol: + Exclude: + - spec/unit/facter/**/*.rb Style/BlockDelimiters: Description: Prefer braces for chaining. Mostly an aesthetical choice. Better to be consistent then. @@ -69,14 +65,30 @@ Style/TrailingCommaInArguments: Description: Prefer always trailing comma on multiline argument lists. This makes diffs, and re-ordering nicer. EnforcedStyleForMultiline: comma -Style/TrailingCommaInLiteral: +Style/TrailingCommaInArrayLiteral: 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 -Layout/IndentHeredoc: +Style/SignalException: + Enabled: false +Style/DoubleNegation: + Enabled: false +Style/MultipleComparison: + Enabled: false +Style/NumericPredicate: + Enabled: false +Layout/HeredocIndentation: + Enabled: false +Metrics/BlockNesting: + Enabled: false +Naming/AccessorMethodName: + Enabled: false +Naming/PredicateName: + Enabled: false +RSpec/VariableName: Enabled: false RSpec/MessageSpies: EnforcedStyle: receive @@ -86,20 +98,162 @@ Style/Documentation: - spec/**/* Style/WordArray: EnforcedStyle: brackets +Performance/AncestorsInclude: + Enabled: true +Performance/BigDecimalWithNumericArgument: + Enabled: true +Performance/BlockGivenWithExplicitBlock: + Enabled: true +Performance/CaseWhenSplat: + Enabled: true +Performance/ConstantRegexp: + Enabled: true +Performance/MethodObjectAsBlock: + Enabled: true +Performance/RedundantSortBlock: + Enabled: true +Performance/RedundantStringChars: + Enabled: true +Performance/ReverseFirst: + Enabled: true +Performance/SortReverse: + Enabled: true +Performance/Squeeze: + Enabled: true +Performance/StringInclude: + Enabled: true +Performance/Sum: + Enabled: true Style/CollectionMethods: Enabled: true Style/MethodCalledOnDoEndBlock: Enabled: true Style/StringMethods: Enabled: true -GetText/DecorateFunctionMessage: +Bundler/InsecureProtocolSource: Enabled: false -GetText/DecorateStringFormattingUsingInterpolation: +Gemspec/DuplicatedAssignment: Enabled: false -GetText/DecorateStringFormattingUsingPercent: +Gemspec/OrderedDependencies: + Enabled: false +Gemspec/RequiredRubyVersion: + Enabled: false +Gemspec/RubyVersionGlobalsUsage: + Enabled: false +Layout/ArgumentAlignment: + Enabled: false +Layout/BeginEndAlignment: + Enabled: false +Layout/ClosingHeredocIndentation: + Enabled: false +Layout/EmptyComment: + Enabled: false +Layout/EmptyLineAfterGuardClause: + Enabled: false +Layout/EmptyLinesAroundArguments: + Enabled: false +Layout/EmptyLinesAroundAttributeAccessor: Enabled: false Layout/EndOfLine: Enabled: false +Layout/FirstArgumentIndentation: + Enabled: false +Layout/HashAlignment: + Enabled: false +Layout/LeadingEmptyLines: + Enabled: false +Layout/SpaceAroundMethodCallOperator: + Enabled: false +Layout/SpaceInsideArrayLiteralBrackets: + Enabled: false +Layout/SpaceInsideReferenceBrackets: + Enabled: false +Lint/BigDecimalNew: + Enabled: false +Lint/BooleanSymbol: + Enabled: false +Lint/ConstantDefinitionInBlock: + Enabled: false +Lint/DeprecatedOpenSSLConstant: + Enabled: false +Lint/DisjunctiveAssignmentInConstructor: + Enabled: false +Lint/DuplicateElsifCondition: + Enabled: false +Lint/DuplicateRequire: + Enabled: false +Lint/DuplicateRescueException: + Enabled: false +Lint/EmptyConditionalBody: + Enabled: false +Lint/EmptyFile: + Enabled: false +Lint/ErbNewArguments: + Enabled: false +Lint/FloatComparison: + Enabled: false +Lint/HashCompareByIdentity: + Enabled: false +Lint/IdentityComparison: + Enabled: false +Lint/InterpolationCheck: + Enabled: false +Lint/MissingCopEnableDirective: + Enabled: false +Lint/MixedRegexpCaptureTypes: + Enabled: false +Lint/NestedPercentLiteral: + Enabled: false +Lint/NonDeterministicRequireOrder: + Enabled: false +Lint/OrderedMagicComments: + Enabled: false +Lint/OutOfRangeRegexpRef: + Enabled: false +Lint/RaiseException: + Enabled: false +Lint/RedundantCopEnableDirective: + Enabled: false +Lint/RedundantRequireStatement: + Enabled: false +Lint/RedundantSafeNavigation: + Enabled: false +Lint/RedundantWithIndex: + Enabled: false +Lint/RedundantWithObject: + Enabled: false +Lint/RegexpAsCondition: + Enabled: false +Lint/ReturnInVoidContext: + Enabled: false +Lint/SafeNavigationConsistency: + Enabled: false +Lint/SafeNavigationWithEmpty: + Enabled: false +Lint/SelfAssignment: + Enabled: false +Lint/SendWithMixinArgument: + Enabled: false +Lint/ShadowedArgument: + Enabled: false +Lint/StructNewOverride: + Enabled: false +Lint/ToJSON: + Enabled: false +Lint/TopLevelReturnWithArgument: + Enabled: false +Lint/TrailingCommaInAttributeDeclaration: + Enabled: false +Lint/UnreachableLoop: + Enabled: false +Lint/UriEscapeUnescape: + Enabled: false +Lint/UriRegexp: + Enabled: false +Lint/UselessMethodDefinition: + Enabled: false +Lint/UselessTimes: + Enabled: false Metrics/AbcSize: Enabled: false Metrics/BlockLength: @@ -116,19 +270,261 @@ Metrics/ParameterLists: Enabled: false Metrics/PerceivedComplexity: Enabled: false +Migration/DepartmentName: + Enabled: false +Naming/BlockParameterName: + Enabled: false +Naming/HeredocDelimiterCase: + Enabled: false +Naming/HeredocDelimiterNaming: + Enabled: false +Naming/MemoizedInstanceVariableName: + Enabled: false +Naming/MethodParameterName: + Enabled: false +Naming/RescuedExceptionsVariableName: + Enabled: false +Naming/VariableNumber: + Enabled: false +Performance/BindCall: + Enabled: false +Performance/DeletePrefix: + Enabled: false +Performance/DeleteSuffix: + Enabled: false +Performance/InefficientHashSearch: + Enabled: false +Performance/UnfreezeString: + Enabled: false +Performance/UriDefaultParser: + Enabled: false +RSpec/Be: + Enabled: false +RSpec/Capybara/CurrentPathExpectation: + Enabled: false +RSpec/Capybara/FeatureMethods: + Enabled: false +RSpec/Capybara/VisibilityMatcher: + Enabled: false +RSpec/ContextMethod: + Enabled: false +RSpec/ContextWording: + Enabled: false RSpec/DescribeClass: Enabled: false +RSpec/EmptyHook: + Enabled: false +RSpec/EmptyLineAfterExample: + Enabled: false +RSpec/EmptyLineAfterExampleGroup: + Enabled: false +RSpec/EmptyLineAfterHook: + Enabled: false RSpec/ExampleLength: Enabled: false -RSpec/MessageExpectation: +RSpec/ExampleWithoutDescription: + Enabled: false +RSpec/ExpectChange: + Enabled: false +RSpec/ExpectInHook: + Enabled: false +RSpec/FactoryBot/AttributeDefinedStatically: + Enabled: false +RSpec/FactoryBot/CreateList: + Enabled: false +RSpec/FactoryBot/FactoryClassName: + Enabled: false +RSpec/HooksBeforeExamples: + Enabled: false +RSpec/ImplicitBlockExpectation: + Enabled: false +RSpec/ImplicitSubject: + Enabled: false +RSpec/LeakyConstantDeclaration: + Enabled: false +RSpec/LetBeforeExamples: + Enabled: false +RSpec/MissingExampleGroupArgument: Enabled: false RSpec/MultipleExpectations: Enabled: false +RSpec/MultipleMemoizedHelpers: + Enabled: false +RSpec/MultipleSubjects: + Enabled: false RSpec/NestedGroups: Enabled: false +RSpec/PredicateMatcher: + Enabled: false +RSpec/ReceiveCounts: + Enabled: false +RSpec/ReceiveNever: + Enabled: false +RSpec/RepeatedExampleGroupBody: + Enabled: false +RSpec/RepeatedExampleGroupDescription: + Enabled: false +RSpec/RepeatedIncludeExample: + Enabled: false +RSpec/ReturnFromStub: + Enabled: false +RSpec/SharedExamples: + Enabled: false +RSpec/StubbedMock: + Enabled: false +RSpec/UnspecifiedException: + Enabled: false +RSpec/VariableDefinition: + Enabled: false +RSpec/VoidExpect: + Enabled: false +RSpec/Yield: + Enabled: false +Security/Open: + Enabled: false +Style/AccessModifierDeclarations: + Enabled: false +Style/AccessorGrouping: + Enabled: false Style/AsciiComments: Enabled: false +Style/BisectedAttrAccessor: + Enabled: false +Style/CaseLikeIf: + Enabled: false +Style/ClassEqualityComparison: + Enabled: false +Style/ColonMethodDefinition: + Enabled: false +Style/CombinableLoops: + Enabled: false +Style/CommentedKeyword: + Enabled: false +Style/Dir: + Enabled: false +Style/DoubleCopDisableDirective: + Enabled: false +Style/EmptyBlockParameter: + Enabled: false +Style/EmptyLambdaParameter: + Enabled: false +Style/Encoding: + Enabled: false +Style/EvalWithLocation: + Enabled: false +Style/ExpandPathArguments: + Enabled: false +Style/ExplicitBlockArgument: + Enabled: false +Style/ExponentialNotation: + Enabled: false +Style/FloatDivision: + Enabled: false +Style/FrozenStringLiteralComment: + Enabled: false +Style/GlobalStdStream: + Enabled: false +Style/HashAsLastArrayItem: + Enabled: false +Style/HashLikeCase: + Enabled: false +Style/HashTransformKeys: + Enabled: false +Style/HashTransformValues: + Enabled: false Style/IfUnlessModifier: Enabled: false +Style/KeywordParametersOrder: + Enabled: false +Style/MinMax: + Enabled: false +Style/MixinUsage: + Enabled: false +Style/MultilineWhenThen: + Enabled: false +Style/NegatedUnless: + Enabled: false +Style/OptionalBooleanParameter: + Enabled: false +Style/OrAssignment: + Enabled: false +Style/RandomWithOffset: + Enabled: false +Style/RedundantAssignment: + Enabled: false +Style/RedundantCondition: + Enabled: false +Style/RedundantConditional: + Enabled: false +Style/RedundantFetchBlock: + Enabled: false +Style/RedundantFileExtensionInRequire: + Enabled: false +Style/RedundantRegexpCharacterClass: + Enabled: false +Style/RedundantRegexpEscape: + Enabled: false +Style/RedundantSelfAssignment: + Enabled: false +Style/RedundantSort: + Enabled: false +Style/RescueStandardError: + Enabled: false +Style/SingleArgumentDig: + Enabled: false +Style/SlicingWithRange: + Enabled: false +Style/SoleNestedConditional: + Enabled: false +Style/StderrPuts: + Enabled: false +Style/StringConcatenation: + Enabled: false +Style/Strip: + Enabled: false Style/SymbolProc: Enabled: false +Style/TrailingBodyOnClass: + Enabled: false +Style/TrailingBodyOnMethodDefinition: + Enabled: false +Style/TrailingBodyOnModule: + Enabled: false +Style/TrailingCommaInHashLiteral: + Enabled: false +Style/TrailingMethodEndStatement: + Enabled: false +Style/UnpackFirst: + Enabled: false +Lint/DuplicateBranch: + Enabled: false +Lint/DuplicateRegexpCharacterClassElement: + Enabled: false +Lint/EmptyBlock: + Enabled: false +Lint/EmptyClass: + Enabled: false +Lint/NoReturnInBeginEndBlocks: + Enabled: false +Lint/ToEnumArguments: + Enabled: false +Lint/UnexpectedBlockArity: + Enabled: false +Lint/UnmodifiedReduceAccumulator: + Enabled: false +Performance/CollectionLiteralInLoop: + Enabled: false +Style/ArgumentsForwarding: + Enabled: false +Style/CollectionCompact: + Enabled: false +Style/DocumentDynamicEvalDefinition: + Enabled: false +Style/NegatedIfElseCondition: + Enabled: false +Style/NilLambda: + Enabled: false +Style/RedundantArgument: + Enabled: false +Style/SwapValues: + Enabled: false diff --git a/.sync.yml b/.sync.yml index 8bf327a..ee6e834 100644 --- a/.sync.yml +++ b/.sync.yml @@ -1,33 +1,36 @@ .rubocop.yml: default_configs: - Metrics/LineLength: + Style/SignalException: Enabled: false - Layout/IndentHeredoc: + Style/DoubleNegation: + Enabled: false + Style/MultipleComparison: + Enabled: false + Style/NumericPredicate: + Enabled: false + Style/SignalException: + Enabled: false + Layout/HeredocIndentation: + Enabled: false + Layout/LineLength: + Enabled: false + Metrics/BlockNesting: + Enabled: false + Naming/AccessorMethodName: + Enabled: false + Naming/PredicateName: + Enabled: false + RSpec/VariableName: Enabled: false Gemfile: optional: - ':development': - - gem: 'github_changelog_generator' - git: 'https://github.com/skywinder/github-changelog-generator' - ref: '20ee04ba1234e9e83eb2ffb5056e23d641c7a018' - condition: "Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2')" - required: - ':system_tests': - - gem: 'puppet-module-posix-system-r#{minor_version}' - platforms: ruby - version: '~> 1.0' - - gem: 'puppet-module-win-system-r#{minor_version}' - platforms: - - mswin - - mingw - - x64_mingw - version: '~> 1.0' + ":development": - gem: beaker - version: '~> 3.34' + version: '~> 4.30' from_env: BEAKER_VERSION - gem: beaker-abs from_env: BEAKER_ABS_VERSION - version: '~> 0.5' + version: '~> 0.9' - gem: beaker-pe - gem: beaker-hostgenerator from_env: BEAKER_HOSTGENERATOR_VERSION @@ -35,11 +38,19 @@ Gemfile: from_env: BEAKER_RSPEC_VERSION - gem: beaker-puppet from_env: BEAKER_PUPPET_VERSION - version: '~> 0.14' - ':development': - - gem: puppet-strings + version: '~> 1.22' + - gem: github_changelog_generator + - gem: beaker-module_install_helper + - gem: beaker-puppet_install_helper + - gem: nokogiri + +appveyor.yml: + delete: true +.travis.yml: + delete: true +.github/workflows/auto_release.yml: + unmanaged: false +.github/workflows/release.yml: + unmanaged: false .gitlab-ci.yml: delete: true - -Rakefile: - changelog_version_tag_pattern: '%s' diff --git a/Gemfile b/Gemfile index 5c87918..26f0def 100644 --- a/Gemfile +++ b/Gemfile @@ -17,41 +17,27 @@ ruby_version_segments = Gem::Version.new(RUBY_VERSION.dup).segments minor_version = ruby_version_segments[0..1].join('.') group :development do - gem "parallel_tests", '>= 2.14.1', '< 2.14.3', require: false - gem "metadata-json-lint", '>= 2.0.2', '< 3.0.0', require: false - gem "rspec-puppet-facts", '~> 1.10.0', require: false - gem "rspec_junit_formatter", '~> 0.2', require: false - gem "rubocop", '~> 0.49.0', require: false - gem "rubocop-rspec", '~> 1.16.0', require: false - gem "rubocop-i18n", '~> 1.2.0', require: false - gem "puppetlabs_spec_helper", '>= 2.9.0', '< 3.0.0', 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 "json", '= 2.0.4', require: false if Gem::Requirement.create('~> 2.4.2').satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) - gem "json", '= 2.1.0', require: false if Gem::Requirement.create(['>= 2.5.0', '< 2.7.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) - gem "rb-readline", '= 0.5.5', require: false, platforms: [:mswin, :mingw, :x64_mingw] - gem "puppet-module-posix-default-r#{minor_version}", '~> 0.3', require: false, platforms: [:ruby] - gem "puppet-module-win-default-r#{minor_version}", '~> 0.3', require: false, platforms: [:mswin, :mingw, :x64_mingw] - gem "puppet-strings", require: false - gem "github_changelog_generator", require: false, git: 'https://github.com/skywinder/github-changelog-generator', ref: '20ee04ba1234e9e83eb2ffb5056e23d641c7a018' if Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.2.2') -end - -group :system_tests do - gem "puppet-module-posix-system-r#{minor_version}", '~> 0.5', require: false, platforms: [:ruby] - gem "puppet-module-win-system-r#{minor_version}", '~> 0.5', require: false, platforms: [:mswin, :mingw, :x64_mingw] - gem "beaker", *location_for(ENV['BEAKER_VERSION'] || '~> 4') - gem "beaker-abs", *location_for(ENV['BEAKER_ABS_VERSION'] || '~> 0.5') + gem "json", '= 2.0.4', require: false if Gem::Requirement.create('~> 2.4.2').satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) + gem "json", '= 2.1.0', require: false if Gem::Requirement.create(['>= 2.5.0', '< 2.7.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) + gem "json", '= 2.3.0', require: false if Gem::Requirement.create(['>= 2.7.0', '< 2.8.0']).satisfied_by?(Gem::Version.new(RUBY_VERSION.dup)) + gem "puppet-module-posix-default-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby] + gem "puppet-module-posix-dev-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby] + gem "puppet-module-win-default-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw] + gem "puppet-module-win-dev-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw] + gem "beaker", *location_for(ENV['BEAKER_VERSION'] || '~> 4.30') + gem "beaker-abs", *location_for(ENV['BEAKER_ABS_VERSION'] || '~> 0.9') gem "beaker-pe", require: false gem "beaker-hostgenerator" gem "beaker-rspec" - gem "beaker-puppet", *location_for(ENV['BEAKER_PUPPET_VERSION'] || '~> 1.0') + gem "beaker-puppet", *location_for(ENV['BEAKER_PUPPET_VERSION'] || '~> 1.22') + gem "github_changelog_generator", require: false + gem "beaker-module_install_helper", require: false + gem "beaker-puppet_install_helper", require: false + gem "nokogiri", require: false end - -group :release do - gem "puppet-blacksmith", '~> 3.4', require: false - gem "pdk", '~> 2.0', platforms: [:ruby] +group :system_tests do + gem "puppet-module-posix-system-r#{minor_version}", '~> 1.0', require: false, platforms: [:ruby] + gem "puppet-module-win-system-r#{minor_version}", '~> 1.0', require: false, platforms: [:mswin, :mingw, :x64_mingw] end puppet_version = ENV['PUPPET_GEM_VERSION'] @@ -68,16 +54,6 @@ gems['puppet'] = location_for(puppet_version) gems['facter'] = location_for(facter_version) if facter_version gems['hiera'] = location_for(hiera_version) if hiera_version -if Gem.win_platform? && puppet_version =~ %r{^(file:///|git://)} - # 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 - gems.each do |gem_name, gem_params| gem gem_name, *gem_params end diff --git a/Rakefile b/Rakefile index e1d5f7b..2906c15 100644 --- a/Rakefile +++ b/Rakefile @@ -1,3 +1,6 @@ +# frozen_string_literal: true + +require 'bundler' require 'puppet_litmus/rake_tasks' if Bundler.rubygems.find_name('puppet_litmus').any? require 'puppetlabs_spec_helper/rake_tasks' require 'puppet-syntax/tasks/puppet-syntax' @@ -32,7 +35,7 @@ end def changelog_future_release return unless Rake.application.top_level_tasks.include? "changelog" - returnVal = "%s" % JSON.load(File.read('metadata.json'))['version'] + returnVal = "v%s" % JSON.load(File.read('metadata.json'))['version'] raise "unable to find the future_release (version) in metadata.json" if returnVal.nil? puts "GitHubChangelogGenerator future_release:#{returnVal}" returnVal @@ -50,7 +53,7 @@ if Bundler.rubygems.find_name('github_changelog_generator').any? config.header = "# Change log\n\nAll notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org)." config.add_pr_wo_labels = true config.issues = false - config.merge_prefix = "### UNCATEGORIZED PRS; GO LABEL THEM" + config.merge_prefix = "### UNCATEGORIZED PRS; LABEL THEM ON GITHUB" config.configure_sections = { "Changed" => { "prefix" => "### Changed", @@ -58,11 +61,11 @@ if Bundler.rubygems.find_name('github_changelog_generator').any? }, "Added" => { "prefix" => "### Added", - "labels" => ["feature", "enhancement"], + "labels" => ["enhancement", "feature"], }, "Fixed" => { "prefix" => "### Fixed", - "labels" => ["bugfix"], + "labels" => ["bug", "documentation", "bugfix"], }, } end @@ -70,16 +73,15 @@ else desc 'Generate a Changelog from GitHub' task :changelog do raise <= Gem::Version.new('2.2.2')" + version: '~> 1.15' + condition: "Gem::Version.new(RUBY_VERSION.dup) >= Gem::Version.new('2.3.0')" EOM end end diff --git a/metadata.json b/metadata.json index 716b897..d0e5069 100644 --- a/metadata.json +++ b/metadata.json @@ -57,7 +57,7 @@ "version_requirement": ">= 6.0.0 < 8.0.0" } ], - "pdk-version": "1.14.0", - "template-url": "https://github.com/puppetlabs/pdk-templates#1.14.0", - "template-ref": "1.14.0-0-g1bf3a4e" + "pdk-version": "2.2.0", + "template-url": "https://github.com/puppetlabs/pdk-templates#2.2.0", + "template-ref": "tags/2.2.0-0-g2381db6" } diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 29615cd..9b1fa6f 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -1,3 +1,9 @@ +# frozen_string_literal: true + +RSpec.configure do |c| + c.mock_with :rspec +end + require 'puppetlabs_spec_helper/module_spec_helper' require 'rspec-puppet-facts' @@ -31,16 +37,28 @@ default_facts.each do |fact, value| end RSpec.configure do |c| - c.mock_with :rspec c.default_facts = default_facts c.before :each do # set to strictest setting for testing # by default Puppet runs at warning level Puppet.settings[:strict] = :warning + Puppet.settings[:strict_variables] = true end c.filter_run_excluding(bolt: true) unless ENV['GEM_BOLT'] c.after(:suite) do end + + # Filter backtrace noise + backtrace_exclusion_patterns = [ + %r{spec_helper}, + %r{gems}, + ] + + if c.respond_to?(:backtrace_exclusion_patterns) + c.backtrace_exclusion_patterns = backtrace_exclusion_patterns + elsif c.respond_to?(:backtrace_clean_patterns) + c.backtrace_clean_patterns = backtrace_exclusion_patterns + end end # Ensures that a module is defined -- cgit v1.2.3 From 36a46c84de29e127dee95ebd5caa992ac39046b6 Mon Sep 17 00:00:00 2001 From: Bobosila Victor Date: Sat, 25 Sep 2021 13:15:58 +0300 Subject: (MODULES-11197) Rubocop fixes --- .rubocop.yml | 2 +- lib/puppet/type/host.rb | 6 +++--- spec/acceptance/tests/create_spec.rb | 4 ++-- spec/acceptance/tests/modify_spec.rb | 4 ++-- spec/shared_behaviours/all_parsedfile_providers.rb | 2 +- spec/unit/type/host_spec.rb | 8 ++++---- 6 files changed, 13 insertions(+), 13 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index 4416e78..de02624 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -121,7 +121,7 @@ Performance/SortReverse: Performance/Squeeze: Enabled: true Performance/StringInclude: - Enabled: true + Enabled: false Performance/Sum: Enabled: true Style/CollectionMethods: diff --git a/lib/puppet/type/host.rb b/lib/puppet/type/host.rb index 03059b9..0510180 100644 --- a/lib/puppet/type/host.rb +++ b/lib/puppet/type/host.rb @@ -46,8 +46,8 @@ Puppet::Type.newtype(:host) do validate do |value| # This regex already includes newline check. - raise Puppet::Error, _('Host aliases cannot include whitespace') if value =~ %r{\s} - raise Puppet::Error, _('Host aliases cannot be an empty string. Use an empty array to delete all host_aliases ') if value =~ %r{^\s*$} + raise Puppet::Error, _('Host aliases cannot include whitespace') if %r{\s}.match?(value) + raise Puppet::Error, _('Host aliases cannot be an empty string. Use an empty array to delete all host_aliases ') if %r{^\s*$}.match?(value) end end @@ -80,7 +80,7 @@ Puppet::Type.newtype(:host) do validate do |value| value.split('.').each do |hostpart| - if hostpart !~ %r{^([\w]+|[\w][\w\-]+[\w])$} + unless %r{^([\w]+|[\w][\w\-]+[\w])$}.match?(hostpart) raise Puppet::Error, _('Invalid host name') end end diff --git a/spec/acceptance/tests/create_spec.rb b/spec/acceptance/tests/create_spec.rb index 40267fd..f79452d 100644 --- a/spec/acceptance/tests/create_spec.rb +++ b/spec/acceptance/tests/create_spec.rb @@ -13,7 +13,7 @@ RSpec.context 'when creating host files' do on(agent, puppet_resource('host', 'test', 'ensure=present', 'ip=127.0.0.1', "target=#{target}")) on(agent, "cat #{target}") do |result| - fail_test 'record was not present' if result.stdout !~ %r{^127\.0\.0\.1[[:space:]]+test} + fail_test 'record was not present' unless %r{^127\.0\.0\.1[[:space:]]+test}.match?(result.stdout) end end @@ -23,7 +23,7 @@ RSpec.context 'when creating host files' do on(agent, "cat #{target}") do |result| fail_test 'alias was missing' unless - result.stdout =~ %r{^127\.0\.0\.7[[:space:]]+test[[:space:]]alias} + %r{^127\.0\.0\.7[[:space:]]+test[[:space:]]alias}.match?(result.stdout) end end diff --git a/spec/acceptance/tests/modify_spec.rb b/spec/acceptance/tests/modify_spec.rb index 6498ee0..d07bb23 100644 --- a/spec/acceptance/tests/modify_spec.rb +++ b/spec/acceptance/tests/modify_spec.rb @@ -16,7 +16,7 @@ RSpec.context 'when modifying host files' do on(agent, "cat #{target}") do |result| fail_test 'the address was not updated' unless - result.stdout =~ %r{^127\.0\.0\.10[[:space:]]+test[[:space:]]+alias[[:space:]]*$} + %r{^127\.0\.0\.10[[:space:]]+test[[:space:]]+alias[[:space:]]*$}.match?(result.stdout) end end @@ -27,7 +27,7 @@ RSpec.context 'when modifying host files' do on(agent, "cat #{target}") do |result| fail_test 'the alias was not updated' unless - result.stdout =~ %r{^127\.0\.0\.8[[:space:]]+test[[:space:]]+banzai[[:space:]]*$} + %r{^127\.0\.0\.8[[:space:]]+test[[:space:]]+banzai[[:space:]]*$}.match?(result.stdout) end end end diff --git a/spec/shared_behaviours/all_parsedfile_providers.rb b/spec/shared_behaviours/all_parsedfile_providers.rb index 1701fe3..321cd86 100644 --- a/spec/shared_behaviours/all_parsedfile_providers.rb +++ b/spec/shared_behaviours/all_parsedfile_providers.rb @@ -4,7 +4,7 @@ shared_examples_for 'all parsedfile providers' do |provider, *files| end files.flatten.each do |file| - it "should rewrite #{file} reasonably unchanged" do + it "rewrites #{file} reasonably unchanged" do allow(provider).to receive(:default_target).and_return(file) provider.prefetch diff --git a/spec/unit/type/host_spec.rb b/spec/unit/type/host_spec.rb index 54d9b75..3fa5985 100644 --- a/spec/unit/type/host_spec.rb +++ b/spec/unit/type/host_spec.rb @@ -12,13 +12,13 @@ describe Puppet::Type.type(:host) do describe 'when validating attributes' do [:name, :provider].each do |param| - it "should have a #{param} parameter" do + it "has a #{param} parameter" do expect(described_class.attrtype(param)).to eq(:param) end end [:ip, :target, :host_aliases, :comment, :ensure].each do |property| - it "should have a #{property} property" do + it "has a #{property} property" do expect(described_class.attrtype(property)).to eq(:property) end end @@ -256,7 +256,7 @@ describe Puppet::Type.type(:host) do '0:a:b:c:d:e:f::', '::0:a:b:c:d:e:f', # syntactically correct, but bad form (::0:... could be combined) 'a:b:c:d:e:f:0::'].each do |ip| - it "should accept #{ip.inspect} as an IPv6 address" do + it "accepts #{ip.inspect} as an IPv6 address" do expect { described_class.new(name: 'foo', ip: ip) }.not_to raise_error end end @@ -587,7 +587,7 @@ describe Puppet::Type.type(:host) do '1111::3333:4444:5555:6666:7777:8888:', '::3333:4444:5555:6666:7777:8888:', '::2222:3333:4444:5555:6666:7777:8888:'].each do |ip| - it "should reject #{ip.inspect} as an IPv6 address" do + it "rejects #{ip.inspect} as an IPv6 address" do expect { described_class.new(name: 'foo', ip: ip) }.to raise_error(Puppet::ResourceError, %r{Parameter ip failed}) end end -- cgit v1.2.3 From dceffe1436b5ae834a192da323004e44048020b2 Mon Sep 17 00:00:00 2001 From: Bobosila Victor Date: Fri, 1 Oct 2021 14:30:21 +0300 Subject: (MODULES-11197) Allow release prep commits in rake task --- rakelib/commits.rake | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rakelib/commits.rake b/rakelib/commits.rake index a900ee2..5e0578e 100644 --- a/rakelib/commits.rake +++ b/rakelib/commits.rake @@ -7,7 +7,7 @@ task(:commits) do %x{git log --no-merges --pretty=%s #{commit_range}}.each_line do |commit_summary| # This regex tests for the currently supported commit summary tokens. # The exception tries to explain it in more full. - if /^\((maint|packaging|doc|docs|modules-\d+)\)|revert/i.match(commit_summary).nil? + if /^Release prep|\((maint|packaging|doc|docs|modules-\d+)\)|revert/i.match(commit_summary).nil? raise "\n\n\n\tThis commit summary didn't match CONTRIBUTING.md guidelines:\n" \ "\n\t\t#{commit_summary}\n" \ "\tThe commit summary (i.e. the first line of the commit message) should start with one of:\n" \ @@ -16,6 +16,7 @@ task(:commits) do "\t\t(docs)(DOCUMENT-)\n" \ "\t\t(packaging)\n" "\t\t(maint)\n" \ + "\t\tRelease prep v \n" \ "\n\tThis test for the commit summary is case-insensitive.\n\n\n" else puts "#{commit_summary}" -- cgit v1.2.3 From 725d4693895c6ec060b16428a918d4cecb85ae2f Mon Sep 17 00:00:00 2001 From: Gabriel Nagy Date: Fri, 1 Oct 2021 14:43:35 +0300 Subject: (MODULES-8183) REFERENCE.md ToC fixes --- REFERENCE.md | 38 +++++++++++++++++++++++--------------- lib/puppet/type/host.rb | 7 ++++--- 2 files changed, 27 insertions(+), 18 deletions(-) diff --git a/REFERENCE.md b/REFERENCE.md index 613a4df..4f5a401 100644 --- a/REFERENCE.md +++ b/REFERENCE.md @@ -1,44 +1,44 @@ # Reference + ## Table of Contents -**Resource types** +### Resource types -* [`host`](#host): Installs and manages host entries. For most systems, these entries will just be in `/etc/hosts`, but some systems (notably OS X) will have d +* [`host`](#host): Installs and manages host entries. ## Resource types -### host +### `host` -Installs and manages host entries. For most systems, these -entries will just be in `/etc/hosts`, but some systems (notably OS X) -will have different solutions. +For most systems, these entries will just be in `/etc/hosts`, but some +systems (notably OS X) will have different solutions. #### Properties The following properties are available in the `host` type. -##### `ensure` +##### `comment` -Valid values: present, absent +A comment that will be attached to the line with a # character. -The basic property that the resource should be in. +##### `ensure` -Default value: present +Valid values: `present`, `absent` -##### `ip` +The basic property that the resource should be in. -The host's IP address, IPv4 or IPv6. +Default value: `present` ##### `host_aliases` Any aliases the host might have. Multiple values must be specified as an array. -##### `comment` +##### `ip` -A comment that will be attached to the line with a # character. +The host's IP address, IPv4 or IPv6. ##### `target` @@ -49,9 +49,17 @@ those providers that write to disk. On most systems this defaults to `/etc/hosts The following parameters are available in the `host` type. -##### `name` +* [`name`](#name) +* [`provider`](#provider) + +##### `name` namevar The host name. +##### `provider` + +The specific backend to use for this `host` resource. You will seldom need to specify this --- Puppet will usually +discover the appropriate provider for your platform. + diff --git a/lib/puppet/type/host.rb b/lib/puppet/type/host.rb index 0510180..0e7a21c 100644 --- a/lib/puppet/type/host.rb +++ b/lib/puppet/type/host.rb @@ -1,9 +1,10 @@ require 'puppet/property/ordered_list' Puppet::Type.newtype(:host) do - @doc = "Installs and manages host entries. For most systems, these - entries will just be in `/etc/hosts`, but some systems (notably OS X) - will have different solutions." + @doc = "@summary Installs and manages host entries. + + For most systems, these entries will just be in `/etc/hosts`, but some + systems (notably OS X) will have different solutions." ensurable -- cgit v1.2.3 From ed14bbd069d08be4aeb11e3bd723a1d401990ed0 Mon Sep 17 00:00:00 2001 From: Gabriel Nagy Date: Fri, 1 Oct 2021 14:50:02 +0300 Subject: (MODULES-11197) Reenable some cops --- .rubocop.yml | 24 +++++++----------------- .sync.yml | 18 ------------------ lib/puppet/type/host.rb | 4 ++-- 3 files changed, 9 insertions(+), 37 deletions(-) diff --git a/.rubocop.yml b/.rubocop.yml index de02624..3a8c20a 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -72,24 +72,8 @@ Style/TrailingCommaInArrayLiteral: Style/SymbolArray: Description: Using percent style obscures symbolic intent of array's contents. EnforcedStyle: brackets -Style/SignalException: - Enabled: false -Style/DoubleNegation: - Enabled: false -Style/MultipleComparison: - Enabled: false -Style/NumericPredicate: - Enabled: false Layout/HeredocIndentation: Enabled: false -Metrics/BlockNesting: - Enabled: false -Naming/AccessorMethodName: - Enabled: false -Naming/PredicateName: - Enabled: false -RSpec/VariableName: - Enabled: false RSpec/MessageSpies: EnforcedStyle: receive Style/Documentation: @@ -121,7 +105,7 @@ Performance/SortReverse: Performance/Squeeze: Enabled: true Performance/StringInclude: - Enabled: false + Enabled: true Performance/Sum: Enabled: true Style/CollectionMethods: @@ -258,6 +242,8 @@ Metrics/AbcSize: Enabled: false Metrics/BlockLength: Enabled: false +Metrics/BlockNesting: + Enabled: false Metrics/ClassLength: Enabled: false Metrics/CyclomaticComplexity: @@ -272,6 +258,8 @@ Metrics/PerceivedComplexity: Enabled: false Migration/DepartmentName: Enabled: false +Naming/AccessorMethodName: + Enabled: false Naming/BlockParameterName: Enabled: false Naming/HeredocDelimiterCase: @@ -444,6 +432,8 @@ Style/MultilineWhenThen: Enabled: false Style/NegatedUnless: Enabled: false +Style/NumericPredicate: + Enabled: false Style/OptionalBooleanParameter: Enabled: false Style/OrAssignment: diff --git a/.sync.yml b/.sync.yml index ee6e834..7df0056 100644 --- a/.sync.yml +++ b/.sync.yml @@ -1,27 +1,9 @@ .rubocop.yml: default_configs: - Style/SignalException: - Enabled: false - Style/DoubleNegation: - Enabled: false - Style/MultipleComparison: - Enabled: false - Style/NumericPredicate: - Enabled: false - Style/SignalException: - Enabled: false Layout/HeredocIndentation: Enabled: false Layout/LineLength: Enabled: false - Metrics/BlockNesting: - Enabled: false - Naming/AccessorMethodName: - Enabled: false - Naming/PredicateName: - Enabled: false - RSpec/VariableName: - Enabled: false Gemfile: optional: ":development": diff --git a/lib/puppet/type/host.rb b/lib/puppet/type/host.rb index 0e7a21c..7dd7de8 100644 --- a/lib/puppet/type/host.rb +++ b/lib/puppet/type/host.rb @@ -55,7 +55,7 @@ Puppet::Type.newtype(:host) do newproperty(:comment) do desc 'A comment that will be attached to the line with a # character.' validate do |value| - if value =~ %r{\n} || value =~ %r{\r} + if value.include?("\n") || value.include?("\r") raise Puppet::Error, _('Comment cannot include newline') end end @@ -85,7 +85,7 @@ Puppet::Type.newtype(:host) do raise Puppet::Error, _('Invalid host name') end end - if value =~ %r{\n} || value =~ %r{\r} + if value.include?("\n") || value.include?("\r") raise Puppet::Error, _('Hostname cannot include newline') end end -- cgit v1.2.3