/puppetfile-resolver

Dependency resolver for Puppetfiles as a gem

Primary LanguageRubyApache License 2.0Apache-2.0

⚠⚠⚠ This repository is no longer being maintained ⚠⚠⚠

It's is now forked by Puppet (nee Puppetlabs), and Puppet now owns the Ruby Gem.


CI for Puppetfile Resolver Gem Version

Puppetfile Resolver

The Puppetfile is used by Puppet to manage the collection of modules used by a Puppet master. The Puppetfile is then used by tools like R10K and Code Manager to download and install the required modules.

However, the Puppetfile is designed to have explicit dependencies, that is, all modules and all of the dependencies must be specified in Puppetfile. This is very different to formats like Gemfile (Ruby) or package.json (NodeJS) where dependencies are brought in as needed.

Using explicit dependencies is great in a configuration management system like Puppet, but it puts the burden on updates onto the user.

This library includes all of the code to parse a Puppetfile and then calculate a dependency graph to try and resolve all of the module dependencies and versions. The resolver can also restrict on Puppet version, for example, only Modules which support Puppet 6.

Note This is still in active development. Git history may be re-written until an initial version is released

Documentation