From fef5ae6a069303e1c677988d80515b1c74a63b34 Mon Sep 17 00:00:00 2001 From: Hugo Haakseth Date: Tue, 5 Mar 2024 23:44:14 +0000 Subject: [PATCH 1/4] modulesync 7.3.0-8-gd083aee --- .editorconfig | 15 ++ .github/CONTRIBUTING.md | 254 +++++++++++++++++++++++++++++++ .github/ISSUE_TEMPLATE.md | 26 ++++ .github/PULL_REQUEST_TEMPLATE.md | 20 +++ .github/workflows/ci.yml | 23 +++ .github/workflows/release.yml | 22 +++ .gitignore | 28 +++- .msync.yml | 5 + .overcommit.yml | 65 ++++++++ .pmtignore | 38 +++++ .puppet-lint.rc | 3 + .rspec | 5 + .rspec_parallel | 4 + Gemfile | 1 - Rakefile | 2 +- spec/spec_helper.rb | 1 - 16 files changed, 504 insertions(+), 8 deletions(-) create mode 100644 .editorconfig create mode 100644 .github/CONTRIBUTING.md create mode 100644 .github/ISSUE_TEMPLATE.md create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 .github/workflows/ci.yml create mode 100644 .github/workflows/release.yml create mode 100644 .msync.yml create mode 100644 .overcommit.yml create mode 100644 .pmtignore create mode 100644 .puppet-lint.rc create mode 100644 .rspec create mode 100644 .rspec_parallel diff --git a/.editorconfig b/.editorconfig new file mode 100644 index 0000000..ecb10a8 --- /dev/null +++ b/.editorconfig @@ -0,0 +1,15 @@ +# editorconfig.org + +# Managed by modulesync - DO NOT EDIT +# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/ + +root = true + +[*] +charset = utf-8 +end_of_line = lf +indent_size = 2 +tab_width = 2 +indent_style = space +insert_final_newline = true +trim_trailing_whitespace = true diff --git a/.github/CONTRIBUTING.md b/.github/CONTRIBUTING.md new file mode 100644 index 0000000..6aaa603 --- /dev/null +++ b/.github/CONTRIBUTING.md @@ -0,0 +1,254 @@ +# Contribution guidelines + +## Table of contents + +* [Contributing](#contributing) +* [Writing proper commits - short version](#writing-proper-commits-short-version) +* [Writing proper commits - long version](#writing-proper-commits-long-version) +* [Dependencies](#dependencies) + * [Note for OS X users](#note-for-os-x-users) +* [The test matrix](#the-test-matrix) +* [Syntax and style](#syntax-and-style) +* [Running the unit tests](#running-the-unit-tests) +* [Unit tests in docker](#unit-tests-in-docker) +* [Integration tests](#integration-tests) + +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 more quickly. + +## 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/). + +* Fork the repo. +* Create a separate branch for your change. +* We only take pull requests with passing tests, and documentation. [GitHub Actions](https://docs.github.com/en/actions) run the tests for us. You can also execute them locally. This is explained [in a later section](#the-test-matrix). +* Checkout [our docs](https://voxpupuli.org/docs/reviewing_pr/) we use to review a module and the [official styleguide](https://puppet.com/docs/puppet/6.0/style_guide.html). They provide some guidance for new code that might help you before you submit a pull request. +* 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. +* Squash your commits down into logical components. Make sure to rebase against our current master. +* 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. + +Also consider sending in your profile code that calls this component module as an acceptance test or provide it via an issue. This helps reviewers a lot to test your use case and prevents future regressions! + +## Writing proper commits - short version + +* Make commits of logical units. +* Check for unnecessary whitespace with "git diff --check" before committing. +* Commit using Unix line endings (check the settings around "crlf" in git-config(1)). +* Do not check in commented out code or unneeded files. +* The first line of the commit message should be a short description (50 characters is the soft limit, excluding ticket number(s)), and should skip the full stop. +* Associate the issue in the message. The first line should include the issue number in the form "(#XXXX) Rest of message". +* The body should provide a meaningful commit message, which: + *uses the imperative, present tense: `change`, not `changed` or `changes`. + * includes motivation for the change, and contrasts its implementation with the previous behavior. + * Make sure that you have tests for the bug you are fixing, or feature you are adding. + * Make sure the test suites passes after your commit: + * When introducing a new feature, make sure it is properly documented in the README.md + +## Writing proper commits - long version + + 1. Make separate commits for logically separate changes. + + Please break your commits down into logically consistent units + which include new or changed tests relevant to the rest of the + change. The goal of doing this is to make the diff easier to + read for whoever is reviewing your code. In general, the easier + your diff is to read, the more likely someone will be happy to + review it and get it into the code base. + + If you are going to refactor a piece of code, please do so as a + separate commit from your feature or bug fix changes. + + We also really appreciate changes that include tests to make + sure the bug is not re-introduced, and that the feature is not + accidentally broken. + + Describe the technical detail of the change(s). If your + description starts to get too long, that is a good sign that you + probably need to split up your commit into more finely grained + pieces. + + Commits which plainly describe the things which help + reviewers check the patch and future developers understand the + code are much more likely to be merged in with a minimum of + bike-shedding or requested changes. Ideally, the commit message + would include information, and be in a form suitable for + inclusion in the release notes for the version of Puppet that + includes them. + + Please also check that you are not introducing any trailing + whitespace or other "whitespace errors". You can do this by + running "git diff --check" on your changes before you commit. + + 2. Sending your patches + + To submit your changes via a GitHub pull request, we _highly_ + recommend that you have them on a topic branch, instead of + directly on `master`. + It makes things much easier to keep track of, especially if + you decide to work on another thing before your first change + is merged in. + + GitHub has some pretty good + [general documentation](http://help.github.com/) on using + their site. They also have documentation on + [creating pull requests](http://help.github.com/send-pull-requests/). + + In general, after pushing your topic branch up to your + repository on GitHub, you can switch to the branch in the + GitHub UI and click "Pull Request" towards the top of the page + in order to open a pull request. + + + 3. Update the related GitHub issue. + + If there is a GitHub issue associated with the change you + submitted, then you should update the ticket to include the + location of your branch, along with any other commentary you + may wish to make. + +## 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: + +```sh +export PUPPET_GEM_VERSION="~> 6.1.0" +``` + +You can install all needed gems for spec tests into the modules directory by +running: + +```sh +bundle install --path .vendor/ --without development system_tests release --jobs "$(nproc)" +``` + +If you also want to run acceptance tests: + +```sh +bundle install --path .vendor/ --with system_tests --without development release --jobs "$(nproc)" +``` + +Our all in one solution if you don't know if you need to install or update gems: + +```sh +bundle install --path .vendor/ --with system_tests --without development release --jobs "$(nproc)"; bundle update; bundle clean +``` + +As an alternative to the `--jobs "$(nproc)` parameter, you can set an +environment variable: + +```sh +BUNDLE_JOBS="$(nproc)" +``` + +### Note for OS X users + +`nproc` isn't a valid command under OS x. As an alternative, you can do: + +```sh +--jobs "$(sysctl -n hw.ncpu)" +``` + +## The test matrix + +### 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: + +```sh +bundle exec rake lint +bundle exec rake validate +``` + +It will also run some [Rubocop](http://batsov.com/rubocop/) tests +against it. You can run those locally ahead of time with: + +```sh +bundle exec rake rubocop +``` + +### 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 the linter, the syntax checker and the unit tests: + +```sh +bundle exec rake test +``` + +To run your all the unit tests + +```sh +bundle exec rake spec +``` + +To run a specific spec test set the `SPEC` variable: + +```sh +bundle exec rake spec SPEC=spec/foo_spec.rb +``` + +#### Unit tests in docker + +Some people don't want to run the dependencies locally or don't want to install +ruby. We ship a Dockerfile that enables you to run all unit tests and linting. +You only need to run: + +```sh +docker build . +``` + +Please ensure that a docker daemon is running and that your user has the +permission to talk to it. You can specify a remote docker host by setting the +`DOCKER_HOST` environment variable. it will copy the content of the module into +the docker image. So it will not work if a Gemfile.lock exists. + +### 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: + +```sh +BEAKER_PUPPET_COLLECTION=puppet7 BEAKER_setfile=debian11-64 bundle exec rake beaker +``` + +You can replace the string `debian11` with any common operating system. +The following strings are known to work: + +* ubuntu2004 +* ubuntu2204 +* debian11 +* centos7 +* centos8 +* centos9 +* almalinux8 +* almalinux9 +* fedora36 + +For more information and tips & tricks, see [voxpupuli-acceptance's documentation](https://github.com/voxpupuli/voxpupuli-acceptance#running-tests). + +The source of this file is in our [modulesync_config](https://github.com/voxpupuli/modulesync_config/blob/master/moduleroot/.github/CONTRIBUTING.md.erb) +repository. diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md new file mode 100644 index 0000000..593e7aa --- /dev/null +++ b/.github/ISSUE_TEMPLATE.md @@ -0,0 +1,26 @@ + + +## 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..342807b --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,20 @@ + +#### Pull Request (PR) description + + +#### This Pull Request (PR) fixes the following issues + diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..7216724 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,23 @@ +--- +# Managed by modulesync - DO NOT EDIT +# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/ + +name: CI + +on: + pull_request: {} + push: + branches: + - main + - master + +concurrency: + group: ${{ github.ref_name }} + cancel-in-progress: true + +jobs: + puppet: + name: Puppet + uses: voxpupuli/gha-puppet/.github/workflows/beaker.yml@v2 + with: + pidfile_workaround: 'false' diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..55324aa --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,22 @@ +--- +# Managed by modulesync - DO NOT EDIT +# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/ + +name: Release + +on: + push: + tags: + - '*' + +jobs: + release: + name: Release + uses: voxpupuli/gha-puppet/.github/workflows/release.yml@v2 + with: + allowed_owner: 'voxpupuli' + secrets: + # Configure secrets here: + # https://docs.github.com/en/actions/security-guides/encrypted-secrets + username: ${{ secrets.PUPPET_FORGE_USERNAME }} + api_key: ${{ secrets.PUPPET_FORGE_API_KEY }} diff --git a/.gitignore b/.gitignore index ee626e7..84fd904 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,23 @@ -.bundle/config -spec/fixtures -log/ -.yardoc/ -Gemfile.lock +# Managed by modulesync - DO NOT EDIT +# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/ + +/pkg/ +/Gemfile.lock +/Gemfile.local +/vendor/ +/.vendor/ +/spec/fixtures/manifests/ +/spec/fixtures/modules/ +/.vagrant/ +/.bundle/ +/.ruby-version +/coverage/ +/log/ +/.idea/ +/.dependencies/ +/.librarian/ +/Puppetfile.lock +*.iml +.*.sw? +/.yardoc/ +/Guardfile diff --git a/.msync.yml b/.msync.yml new file mode 100644 index 0000000..f46ee02 --- /dev/null +++ b/.msync.yml @@ -0,0 +1,5 @@ +--- +# Managed by modulesync - DO NOT EDIT +# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/ + +modulesync_config_version: '7.3.0' diff --git a/.overcommit.yml b/.overcommit.yml new file mode 100644 index 0000000..d367ada --- /dev/null +++ b/.overcommit.yml @@ -0,0 +1,65 @@ +# Managed by modulesync - DO NOT EDIT +# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/ +# +# Hooks are only enabled if you take action. +# +# To enable the hooks run: +# +# ``` +# bundle exec overcommit --install +# # ensure .overcommit.yml does not harm to you and then +# bundle exec overcommit --sign +# ``` +# +# (it will manage the .git/hooks directory): +# +# Examples howto skip a test for a commit or push: +# +# ``` +# SKIP=RuboCop git commit +# SKIP=PuppetLint git commit +# SKIP=RakeTask git push +# ``` +# +# Don't invoke overcommit at all: +# +# ``` +# OVERCOMMIT_DISABLE=1 git commit +# ``` +# +# Read more about overcommit: https://github.com/brigade/overcommit +# +# To manage this config yourself in your module add +# +# ``` +# .overcommit.yml: +# unmanaged: true +# ``` +# +# to your modules .sync.yml config +--- +PreCommit: + RuboCop: + enabled: true + description: 'Runs rubocop on modified files only' + command: ['bundle', 'exec', 'rubocop'] + PuppetLint: + enabled: true + description: 'Runs puppet-lint on modified files only' + command: ['bundle', 'exec', 'puppet-lint'] + YamlSyntax: + enabled: true + JsonSyntax: + enabled: true + TrailingWhitespace: + enabled: true + +PrePush: + RakeTarget: + enabled: true + description: 'Run rake targets' + targets: + - 'validate' + - 'test' + - 'rubocop' + command: ['bundle', 'exec', 'rake'] diff --git a/.pmtignore b/.pmtignore new file mode 100644 index 0000000..10b9830 --- /dev/null +++ b/.pmtignore @@ -0,0 +1,38 @@ +# Managed by modulesync - DO NOT EDIT +# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/ + +/docs/ +/pkg/ +/Gemfile +/Gemfile.lock +/Gemfile.local +/vendor/ +/.vendor/ +/spec/ +/Rakefile +/.vagrant/ +/.bundle/ +/.ruby-version +/coverage/ +/log/ +/.idea/ +/.dependencies/ +/.github/ +/.librarian/ +/Puppetfile.lock +*.iml +/.editorconfig +/.fixtures.yml +/.gitignore +/.msync.yml +/.overcommit.yml +/.pmtignore +/.rspec +/.rspec_parallel +/.rubocop.yml +/.sync.yml +.*.sw? +/.yardoc/ +/.yardopts +/Dockerfile +/HISTORY.md diff --git a/.puppet-lint.rc b/.puppet-lint.rc new file mode 100644 index 0000000..dd8272c --- /dev/null +++ b/.puppet-lint.rc @@ -0,0 +1,3 @@ +--fail-on-warnings +--no-parameter_documentation-check +--no-parameter_types-check diff --git a/.rspec b/.rspec new file mode 100644 index 0000000..f634583 --- /dev/null +++ b/.rspec @@ -0,0 +1,5 @@ +# Managed by modulesync - DO NOT EDIT +# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/ + +--format documentation +--color diff --git a/.rspec_parallel b/.rspec_parallel new file mode 100644 index 0000000..a9a84f8 --- /dev/null +++ b/.rspec_parallel @@ -0,0 +1,4 @@ +# Managed by modulesync - DO NOT EDIT +# https://voxpupuli.org/docs/updating-files-managed-with-modulesync/ + +--format progress diff --git a/Gemfile b/Gemfile index c03b752..a4a3b20 100644 --- a/Gemfile +++ b/Gemfile @@ -8,7 +8,6 @@ group :test do gem 'coveralls', :require => false gem 'simplecov-console', :require => false gem 'puppet_metadata', '~> 3.5', :require => false - gem 'puppet-lint-param-docs', :require => false end group :development do diff --git a/Rakefile b/Rakefile index 7109e7f..0f76854 100644 --- a/Rakefile +++ b/Rakefile @@ -27,7 +27,7 @@ rescue LoadError # voxpupuli-release not present else GCGConfig.user = 'voxpupuli' - GCGConfig.project = 'puppet-jira' + GCGConfig.project = 'puppet-cpanm' end desc "Run main 'test' task and report merged results to coveralls" diff --git a/spec/spec_helper.rb b/spec/spec_helper.rb index 1cc84c9..9efb4ae 100644 --- a/spec/spec_helper.rb +++ b/spec/spec_helper.rb @@ -17,5 +17,4 @@ add_custom_fact name.to_sym, value end end - Dir['./spec/support/spec/**/*.rb'].sort.each { |f| require f } From 9b4bbde6d69273297652c08b9f9fc0e6248c8563 Mon Sep 17 00:00:00 2001 From: Hugo Haakseth Date: Wed, 6 Mar 2024 07:47:54 +0100 Subject: [PATCH 2/4] rubocop autocorrect --- lib/puppet/provider/cpanm/default.rb | 93 +++++++++++++--------------- lib/puppet/type/cpanm.rb | 45 +++++++------- 2 files changed, 63 insertions(+), 75 deletions(-) diff --git a/lib/puppet/provider/cpanm/default.rb b/lib/puppet/provider/cpanm/default.rb index 9e0427b..b3b9b17 100644 --- a/lib/puppet/provider/cpanm/default.rb +++ b/lib/puppet/provider/cpanm/default.rb @@ -1,18 +1,20 @@ +# frozen_string_literal: true + +require 'English' Puppet::Type.type(:cpanm).provide(:default) do desc 'Manage CPAN modules with cpanm' - commands :cpanm => 'cpanm' - commands :perl => 'perl' - commands :perldoc => 'perldoc' + commands cpanm: 'cpanm' + commands perl: 'perl' + commands perldoc: 'perldoc' # Override the `commands`-generated cpanm method to avoid resetting locale to 'C' # Avoids triggering an old Encode bug in MakeMakeFiles for some modules def cpanm(*args) result = `cpanm #{args.join ' '}` - if $? != 0 - raise Puppet::ExecutionFailure, result - end - return result + raise Puppet::ExecutionFailure, result if $CHILD_STATUS != 0 + + result end def latest? @@ -21,42 +23,36 @@ def latest? name = name.split('@')[0] installed = `perl -e 'require Module::Metadata; $meta = Module::Metadata->new_from_module("#{name}"); if ($meta) {print $meta->version} else {exit 1}'` rescue Puppet::ExecutionFailure - installed='' + installed = '' end options = [] if @resource[:mirror] - options << "--from" + options << '--from' options << @resource[:mirror] end options << '--info' options << @resource[:name] - cpan=cpanm(options).split("\n")[-1].match(/([0-9]+\.?[0-9]*).tar.gz/) + cpan = cpanm(options).split("\n")[-1].match(%r{([0-9]+\.?[0-9]*).tar.gz}) if cpan latest = cpan[1] Puppet.debug("Installed: #{installed}, CPAN: #{latest}") - if latest > installed - return false - end + return false if latest > installed end - return true + true end def create options = [] if @resource[:mirror] - options << "--from" + options << '--from' options << @resource[:mirror] end - if @resource[:force] == :true || @resource[:force] == true - options << "-f" - end + options << '-f' if @resource[:force] == :true || @resource[:force] == true - if @resource[:test] == :false || @resource[:test] == false - options << "-n" - end + options << '-n' if @resource[:test] == :false || @resource[:test] == false options << @resource[:name] @@ -65,52 +61,47 @@ def create # alias update create def destroy - begin - cpanm '-U', '-f', @resource[:name] - rescue Puppet::ExecutionFailure - #error = Puppet::Error.new("Failed to remove CPAN package: #{e}") - #error.set_backtrace(e.backtrace) - #raise error - end + cpanm '-U', '-f', @resource[:name] + rescue Puppet::ExecutionFailure + # error = Puppet::Error.new("Failed to remove CPAN package: #{e}") + # error.set_backtrace(e.backtrace) + # raise error end def exists? - begin - name = @resource[:name] - name, version = name.split('@') - installed = `perl -e 'require Module::Metadata; $meta = Module::Metadata->new_from_module("#{name}"); if ($meta) {print $meta->version} else {exit 1}'` - if $? != 0 - raise Puppet::ExecutionFailure, installed - end - if not version.nil? and not version.empty? - if installed.eql? version - Puppet.debug("Debugging message - versions of #{name} are identical: installed:#{installed} vs requested:#{version}") - true - else - Puppet.debug("Debugging message - versions of #{name} are different: installed:#{installed} vs requested:#{version}") - false - end - else + name = @resource[:name] + name, version = name.split('@') + installed = `perl -e 'require Module::Metadata; $meta = Module::Metadata->new_from_module("#{name}"); if ($meta) {print $meta->version} else {exit 1}'` + raise Puppet::ExecutionFailure, installed if $CHILD_STATUS != 0 + + if !version.nil? && !version.empty? + if installed.eql? version + Puppet.debug("Debugging message - versions of #{name} are identical: installed:#{installed} vs requested:#{version}") true + else + Puppet.debug("Debugging message - versions of #{name} are different: installed:#{installed} vs requested:#{version}") + false end - rescue Puppet::ExecutionFailure - false + else + true end + rescue Puppet::ExecutionFailure + false end def self.instances modules = {} name = nil perldoc('-tT', 'perllocal').split("\n").each do |r| - if r.include?('"Module"') then + if r.include?('"Module"') name = r.split[-1] - modules[name] = new(:name => name) + modules[name] = new(name: name) end - if r.include?('VERSION: ') and name + if r.include?('VERSION: ') && name r.split[-1].delete('"') - #modules[name].version = version + # modules[name].version = version end end - modules.map do |k,v| v end + modules.map { |_k, v| v } end end diff --git a/lib/puppet/type/cpanm.rb b/lib/puppet/type/cpanm.rb index facf0b3..a780b03 100644 --- a/lib/puppet/type/cpanm.rb +++ b/lib/puppet/type/cpanm.rb @@ -1,19 +1,17 @@ +# frozen_string_literal: true + Puppet::Type.newtype(:cpanm) do - @doc = "Manage CPAN modules with cpanminus" + @doc = 'Manage CPAN modules with cpanminus' ensurable do attr_accessor :latest defaultto :installed newvalue(:absent) do - if provider.exists? - provider.destroy - end + provider.destroy if provider.exists? end newvalue(:present) do - unless provider.exists? - provider.create - end + provider.create unless provider.exists? end aliasvalue(:installed, :present) @@ -26,19 +24,18 @@ def insync?(is) @should.each do |should| - case should - when :present - return true if is == :present - when :latest - return false if is == :absent - return true if provider.latest? - when :absent - return true if is == :absent - end + case should + when :present + return true if is == :present + when :latest + return false if is == :absent + return true if provider.latest? + when :absent + return true if is == :absent + end end false end - end # Make sure cpanm installation happens first @@ -46,21 +43,21 @@ def insync?(is) 'cpanm' end - newparam(:name, :namevar => true) do - desc "The CPAN module to manage" + newparam(:name, namevar: true) do + desc 'The CPAN module to manage' end - newparam(:force, :boolean => true) do - desc "Force installation" + newparam(:force, boolean: true) do + desc 'Force installation' defaultto :false end - newparam(:test, :boolean => true) do - desc "Run CPAN module tests" + newparam(:test, boolean: true) do + desc 'Run CPAN module tests' defaultto :false end newparam(:mirror) do - desc "URL of the CPAN mirror to use" + desc 'URL of the CPAN mirror to use' end end From d96f3b6fd23b2426f5a866cfa41a67b4fda56595 Mon Sep 17 00:00:00 2001 From: Hugo Haakseth Date: Wed, 6 Mar 2024 08:06:49 +0100 Subject: [PATCH 3/4] metadata to voxpupuli --- metadata.json | 37 ++++++++++++++++++++++--------------- 1 file changed, 22 insertions(+), 15 deletions(-) diff --git a/metadata.json b/metadata.json index dd4d2d1..2b06e1e 100644 --- a/metadata.json +++ b/metadata.json @@ -1,34 +1,42 @@ { - "name": "jamesmcdonald-cpanm", + "name": "puppet-cpanm", "version": "0.9.17", - "author": "James McDonald ", + "author": "Vox Pupuli", "summary": "Manage perl modules with cpanminus", "license": "Apache-2.0", - "source": "https://github.com/jamesmcdonald/puppet-cpanm.git", - "project_page": "https://github.com/jamesmcdonald/puppet-cpanm", - "issues_url": "https://github.com/jamesmcdonald/puppet-cpanm/issues", + "source": "https://github.com/voxpupuli/puppet-cpanm.git", + "project_page": "https://github.com/voxpupuli/puppet-cpanm.git", + "issues_url": "https://github.com/voxpupuli/puppet-cpanm/issues", + "tags": ["cpanm", "cpan", "perl"], + "dependencies": [], + "requirements": [ + { + "name": "puppet", + "version_requirement": ">= 7.0.0 < 9.0.0" + } + ], "operatingsystem_support": [ { "operatingsystem": "RedHat", "operatingsystemrelease": [ - "7.0", - "8.0", - "9.0" + "7", + "8", + "9" ] }, { "operatingsystem": "CentOS", "operatingsystemrelease": [ - "7.0", - "8.0", - "9.0" + "7", + "8", + "9" ] }, { "operatingsystem": "Debian", "operatingsystemrelease": [ - "11.0", - "12.0" + "11", + "12" ] }, { @@ -39,6 +47,5 @@ "22.04" ] } - ], - "dependencies": [] + ] } From 4666f74b27dc3c12acd15c4fdbbd3bffbd376154 Mon Sep 17 00:00:00 2001 From: Hugo Haakseth Date: Wed, 6 Mar 2024 09:01:35 +0100 Subject: [PATCH 4/4] fix broken unit test --- spec/classes/init_spec.rb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/spec/classes/init_spec.rb b/spec/classes/init_spec.rb index fb92300..cf08e44 100644 --- a/spec/classes/init_spec.rb +++ b/spec/classes/init_spec.rb @@ -15,7 +15,7 @@ it { is_expected.to contain_package('gcc') } it { is_expected.to contain_package('make') } - if ['RedHat'].include?(facts[:os][:family]) && ['7'].include?(facts[:os]['release']['major']) + if ['RedHat'].include?(facts[:os]['family']) && ['7'].include?(facts[:os]['release']['major']) it { is_expected.to contain_package('perl-core') } else it { is_expected.not_to contain_package('perl-core') }