While execution of recipes I need to use an external dependency. I see 2 choices to work it out:
- Using
include_recipe
inside of my recipes. In this case user might be caught by surprise because of extra packages installed (or having them installed in a different way than the one he intended). - Declaring it as dependency, but leaving it to user-code to install it. In this case user won't be able to use my cookbook right away and will be forced to include it in
run_list
explicitly.
Any opinions on this? When it comes to other dependency-management systems like Maven, it's okay for dependency to have its own (transitive) dependency, but user can always override its version or exclude it so he has control over all transitive dependencies. Not sure about this in Chef.