(Please redirect me if this is the wrong list)
We seem to be in a place as a Chef community where the ‘depends’ feature of
cookbook metadata is getting used a little bit too freely.
For example, the ‘java’ cookbook includes a ‘depends’ for the 'windows’
cookbook - this means that I’m forced to download the ‘windows’ cookbook to
all of my *nix machines. Messy at best.
Shouldn’t we be using ‘suggests’? Or better yet, shouldn’t we reserve
dependency for cases where a cookbook really must have another cookbook
available to it to compile (and, shouldn’t we avoid tightly-coupled
dependencies whenever possible because we don’t wan to be brittle)?
This is especially painful for us because we are currently seeing very slow
download rates from hosted Chef (about 60kbps), so downloading addt’l
cookbooks makes things noticeably slower.
(Another great example of dependency hell is installing the 'nagios’
cookbook, which requires ‘apache’, which requires ‘php’, which in turn
requires ‘mysql’ - yet it’s not really true that all of these things are
intrinsically tied together - we are losing the things we’ve learned from
the Unix model and service-oriented architectures when we staple things to
each other this way.)
Okay, so that got a little bit ranty, but that’s because I really like Chef
and I hate to see a slim, sexy, powerful tool get bloated and brittle for
no good reason.