Stefan, The answer is that dashes are preferred, but we recognized that this has been ambiguous for a long time, so the code permits both "/" and "-".
This bug (unresolved dependencies if they are specified with a "-") was addressed in PUP-3121 as you mentioned, but the fix version for that ticket is Puppet 4.0, so Puppet 3.8 does not have the fix. Unfortunately, because of that bug, dependencies with a "-" are always expressed as missing in Puppet 3.6-3.8. Hope that clears up the situation. Anderson On Monday, January 4, 2016 at 2:22:37 PM UTC-8, Stefan Lasiewski wrote: > > I'm wondering the same thing. We are seeing errors when running `puppet > module` commands that query for dependencies. > > I'm using the `derdanne-nfs` example below, but this error happens with > at least 3 other community modules, including `thewired-bitbucket` and > `puppet-mysql_java_connector`. > I was unable to install certain new Puppet modules until I worked around > this issue. > > Puppet is complaining about missing dependencies, which is confusing > because the dependencies are already there: > > $ puppet --version > > 3.8.4 > $ puppet module list >/dev/null > Warning: Missing dependency 'puppetlabs-concat': > 'derdanne-nfs' (v0.0.7) requires 'puppetlabs-concat' (>= 1.1.2) > Warning: Missing dependency 'puppetlabs-stdlib': > 'derdanne-nfs' (v0.0.7) requires 'puppetlabs-stdlib' (>= 4.5.0) > $ > > But the Puppetlabs Concat and Stdlib modules already exist and are at the > proper version: > > $ puppet module list |grep puppetlabs > ??? puppetlabs-concat (v1.2.3) > ??? puppetlabs-inifile (v1.4.2) > ??? puppetlabs-pe_gem (v0.1.2) > ??? puppetlabs-stdlib (v4.9.0) > $ > > > > Inside of nfs/metadata.json , I see that the dependencies are named like > 'author-module', like this: > > > "dependencies": [ > {"name":"puppetlabs-stdlib","version_requirement":">= 4.5.0"}, > {"name":"puppetlabs-concat","version_requirement":">= 1.1.2"} > ] > > > If I modify the strings 'puppetlabs-stdlib' and 'puppetlabs-concact' and > replace dashes with slashes: > > > "dependencies": [ > {"name":"puppetlabs/stdlib","version_requirement":">= 4.5.0"}, > {"name":"puppetlabs/concat","version_requirement":">= 1.1.2"} > ] > > > The command doesn't throw any errors: > > > $ puppet module list >/dev/null > $ > > > Should metadata.json be specifying module names using hyphens or slashes? > I see that the following docs recommend using dashes, not slashes: > > > > - > > https://docs.puppetlabs.com/puppet/latest/reference/modules_publishing.html#another-note-on-module-names > > > But again, I've seen a few bugfixes which did the opposite, and resolved > the error by switching from dashes to slashes. Here's one such bug: > > > > - https://tickets.puppetlabs.com/browse/PUP-3121 > > > If dashes are correct, then why is `puppet module` complaining about the > derdanne-nfs module and other community modules? I'm a little curious why > this problem isn't more widely reported. > > > Thanks for the help, > > > -= Stefan > -- You received this message because you are subscribed to the Google Groups "Puppet Users" group. To unsubscribe from this group and stop receiving emails from it, send an email to puppet-users+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/puppet-users/0449e494-7eb2-4ee9-b60f-235c35211efe%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.