I’ve been playing around with Chef in conjunction with Vagrant and it’s become very obvious the lack of dependency management.
Chef cookbooks has a metadata.rb which has a dependency directive to allow users to see what the cookbook relies on. Also the recipes themselves allow for includes from other cookbooks to check for dependencies but these are primitive text only. They do not specify where to get the dependencies and rely on each cookbook to have a unique name.
Like any other community driven project it’s becoming very evident the quality of the cookbooks vary widely. I’ve seen modules declaring they support Debian based OS yet require yum package manager.
Chef is relatively new but I think this is one area where it needs to improve upon.