Issue #7316 has been updated by Nick Lewis. Status changed from Accepted to Investigating
While applications are loadable from modules, loading the faces on which they depend is proving much more difficult. The main problem is that we don't allow actions to be redefined, so we can't load a face or action more than once, so we use require. But require is out of our control as far as module path goes. We could require via the autoloader, but that would necessarily use the absolute path, which doesn't do anything to prevent multiple loading in the case where the file IS in the regular load path, and gets required again with its relative path. Unfortunately, because faces are a public API, this is a real concern. Requiring an action would autoload the face, which would autoload the action and we get a conflict. The closest thing to a solution I've got as yet is to add a hook to the modulepath setting to populate the load path with the lib dir of every module in each directory of the modulepath. Unfortunately, that doesn't play well with environments, and would also mean that if a module is added, we wouldn't find it until at least the filetimeout (when we refresh the modulepath). Alternatively, we could have a mechanism to "pluginsync" the contents of module libs into the libdir, which would greatly simplify the situation. ---------------------------------------- Bug #7316: puppet face applications (subcommands) delivered via pluginsync and as modules should work https://projects.puppetlabs.com/issues/7316 Author: Dan Bode Status: Investigating Priority: Urgent Assignee: Nick Lewis Category: Faces Target version: 2.7.x Affected Puppet version: Keywords: face faces subcommand application module plugin pluginsync Branch: If you deliver a new face that consists of: * application * face * action for face via pluginsync, then the application isn't actually found, and worse, it taunts you by showing it to you in the list of available subcommands. -- You have received this notification because you have either subscribed to it, or are involved in it. To change your notification preferences, please click here: http://projects.puppetlabs.com/my/account -- You received this message because you are subscribed to the Google Groups "Puppet Bugs" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/puppet-bugs?hl=en.
