[chef-dev] dependency spaghetti


Chronological Thread 
  • From: Blake Irvin < >
  • To: " Dev" < >
  • Subject: [chef-dev] dependency spaghetti
  • Date: Wed, 2 Oct 2013 16:17:36 -0700

(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.

Discuss!


Blake



Archive powered by MHonArc 2.6.16.

§