You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The puppet gem is depended upon by a number of tools / gems, both publicly published and internal to organizations.
With the new landscape consisting of multiple Puppet implementations, there needs to be a way for gems requiring access to the Puppet API to depend on a single gem which can provide the required functionality regardless of which Puppet-compatible implementation is used.
I propose creation of a new gem (for example's sake, let's say "puppet_picker"). puppet_picker would be a fairly simple shim gem that would either auto-select a Puppet-compatible implementation found or allow the use to specify which one to use (if there are multiple installed at once to choose from). Tools would then need to switch their dependencies from puppet to puppet_picker.
The manual selection could be done via a configuration file (e.g. /etc/puppet_picker.conf) with syntax like:
---
implementation: '<puppet implementation>'
or via an environment variable such as PUPPET_PICKER=<puppet implementation>
Then, when require 'puppet_picker' is invoked it might look something like:
where the klass.activate_implementation might contain code to assign the implementation's Ruby module/class namespace constants to the Puppet namespace constants.
This is all as of yet untested and unimplemented, but might be one way of solving the "Puppet gem problem".
The text was updated successfully, but these errors were encountered:
The
puppet
gem is depended upon by a number of tools / gems, both publicly published and internal to organizations.With the new landscape consisting of multiple Puppet implementations, there needs to be a way for gems requiring access to the Puppet API to depend on a single gem which can provide the required functionality regardless of which Puppet-compatible implementation is used.
I propose creation of a new gem (for example's sake, let's say "puppet_picker").
puppet_picker
would be a fairly simple shim gem that would either auto-select a Puppet-compatible implementation found or allow the use to specify which one to use (if there are multiple installed at once to choose from). Tools would then need to switch their dependencies frompuppet
topuppet_picker
.The manual selection could be done via a configuration file (e.g. /etc/puppet_picker.conf) with syntax like:
or via an environment variable such as
PUPPET_PICKER=<puppet implementation>
Then, when
require 'puppet_picker'
is invoked it might look something like:where the
klass.activate_implementation
might contain code to assign the implementation's Ruby module/class namespace constants to thePuppet
namespace constants.This is all as of yet untested and unimplemented, but might be one way of solving the "Puppet gem problem".
The text was updated successfully, but these errors were encountered: