A long-lived project that still receives updates
Verify all your dependencies allow the latest versions on Puppet Forge. Based on https://github.com/ekohl/metadata_json_deps
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Runtime

~> 13.0
>= 2.2, < 6.0
 Project Readme

dependency-checker

The dependency-checker tool validates dependencies in Puppet modules against the latest published versions on the Puppet Forge. This means that it will ensure that a module supports the latest version of all the dependencies it declares.

Installation

Install via RubyGems:

$ gem install dependency_checker

Or add it to your Gemfile:

gem 'dependency_checker'

Usage

Run against a single Puppet module metadata.json file to ensure that the module supports the current versions of all the dependencies it declares:

$ dependency-checker /path/to/metadata.json

Run against a whole list of modules to ensure that each module supports the current version of the dependencies it declares. You can use a YAML or JSON file containing an array of modules (namespace-module). The file can be local or remote:

$ dependency-checker managed_modules.yaml
$ dependency-checker https://my.webserver.com/path/to/managed_modules.json

Run against many modules on your filesystem with a path wildcard:

$ dependency-checker modules/*/metadata.json

Run against all modules in an author's Forge namespace, optionally filtering to only supported/approved/partner endorsements:

$ dependency-checker --namespace puppetlabs
$ dependency-checker --namespace puppetlabs --supported
$ dependency-checker --namespace puppet --approved

Run it inside a module or group of modules during a pre-release to determine the effect of version bumps in the metadata.json file(s):

$ dependency-checker -c
$ dependency-checker -c ../*/metadata.json

Or you can supply an override value directly:

$ dependency-checker ../*/metadata.json -o puppetlabs/stdlib,10.0.0

The tool defaults to validating all modules supported by the Puppet CAT team if no module specification arguments are provided.

The following optional parameters are available:

Usage: dependency-checker [options]
    -o, --override module,version    Forge name of module and semantic version to override
    -c, --current                    Extract override version from metadata.json inside current working directory
    -n, --namespace namespace        Check all modules in a given namespace (filter with endorsements).
        --endorsement endorsement    Filter a namespace search by endorsement (supported/approved/partner).
        --es, --supported            Shorthand for `--endorsement supported`
        --ea, --approved             Shorthand for `--endorsement approved`
        --ep, --partner              Shorthand for `--endorsement partner`
    -v, --[no-]verbose               Run verbosely
    -h, --help                       Display help

The -o and -c arguments are exclusive, as are the endorsement filtering options.

Testing with dependency-checker as a Rake task

You can also integrate dependency-checker checks into your tests using a Rake task:

require 'dependency_checker'

desc 'Run dependency-checker'
task :metadata_deps do
  files = FileList['modules/*/metadata.json']
  runner = DependencyChecker::Runner.new
  runner.resolve_from_files(files)
  runner.run
end

License

This codebase is licensed under Apache 2.0. However, the open source dependencies included in this codebase might be subject to other software licenses such as AGPL, GPL2.0, and MIT.