[chef] Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Centralized cookbook-library repos vs distributed cookbook repos


Chronological Thread 
  • From: Hedge Hog < >
  • To:
  • Subject: [chef] Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Re: Centralized cookbook-library repos vs distributed cookbook repos
  • Date: Thu, 9 Dec 2010 20:54:06 +1100
  • Domainkey-signature: a=rsa-sha1; c=nofws; d=gmail.com; s=gamma; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :content-type:content-transfer-encoding; b=aoGsyBS4llgYPBU0oDzqWXZUMqGs1GeMXjMWwN/YW0Fu2+ukfWSZNThBySxGBKD0JC 1uCt+3PHDVvVMuleTVgTbVLqC+iGAILSl1M5iLMyUKHZKKhk2g0GEAFXX0/9S2zX9BY1 J/vVb7wDBpsehzd1GAE7Oblgw0/HRgoBe6dZ8=

On Fri, Apr 16, 2010 at 8:35 AM, Hedge Hog 
< >
 wrote:
> On Fri, Apr 16, 2010 at 7:43 AM, Adam Jacob 
> < >
>  wrote:
>> On Wed, Apr 14, 2010 at 7:08 PM, Hedge Hog 
>> < >
>>  wrote:
>>> This approach still preserves different cookbook-libraries as separate 
>>> silo's.
>>> Simply becasue it still ties dependency management to repo organisation.
>>
>> Yes - the places where a given cookbook lives as a unit of
>> collaboration is a separate silo.
>>
>> There is also a dependency management problem, but we have the
>> ground-work already to solve that.
>>
>> More on it in a sec.
>>
>>> OK, this is getting clearer to me :)
>>>
>>> I think we are getting side tracked by the fact that cookbook library
>>> repo organization is being used to proxy for a dependency management
>>> solution.
>>> However, library repos are being justified/defended as easy to
>>> maintain in terms of VCS effort and _not_ dependency management
>>> effort!
>>> In my mind the two activities should be separate but have become 
>>> conflated :(
>>> I don't think VCS used has anything to do with dependency management.
>>
>> I agree.
>>
>>> In reality the real reason for prefering library repos is _not_ that
>>> library repos are easier to _maintain_, rather cookbook dependencies
>>> are easier to _enforce_.
>>> Changing to cookbook repos will raise the same issues in CVS, hg, etc.
>>> - If you are not going to enforce cookbook-library silos, how do you
>>> manage cookbook dependencies?
>>>
>>> The cost of cookbook library repos is giving up distributed cookbook
>>> development and maintenance/admin burdens, having cookbook library
>>> silos develop indepently, etc all outlined in earlier emails
>>> The benefit  of cookbook library repos is trivial dependency magement:
>>> Solve dependencies by getting all cookbooks from this cookbook-library
>>> and no others.
>>>
>>> The proposal to elevate cookbooks to repos is to try and create a low
>>> pain path for cookbook contributions to flow _around_ the community,
>>> rather than just up-and-down different cookbook-library silos.
>>> To do this we'd need a dependency management approach that works for
>>> Chef's users and use cases.
>>
>> I think there is a third way, which is that we already have a
>> publishing platform for cookbooks, and the cookbooks themselves have
>> dependencies.  I've extended the vendor stuff I wrote before, so that
>> it now downloads and vendors the first cookbook, and then reads the
>> metadata and repeats the process recursively for all the dependencies:
>>
>> % ./knife cookbook site vendor wordpress 0.5.0 -d
>>
>> Now grabs wordpress and all it's dependencies, giving you a tree like this:
>>
>> % ls -la cookbooks
>> total 8
>> drwxr-xr-x   8 adam  adam  272 Apr 15 14:32 ./
>> drwxr-xr-x  11 adam  adam  374 Apr 15 14:32 ../
>> -rw-r--r--   1 adam  adam  151 Apr 15 14:32 README
>> drwxr-xr-x  10 adam  adam  340 Mar 10 16:43 apache2/
>> drwxr-xr-x  11 adam  adam  374 Apr 15 14:32 mysql/
>> drwxr-xr-x   7 adam  adam  238 Feb 26 14:35 openssl/
>> drwxr-xr-x   8 adam  adam  272 Apr 15 14:32 php/
>> drwxr-xr-x   8 adam  adam  272 Apr 15 14:32 wordpress/
>>
>> % git branch
>>  chef-vendor-apache2
>>  chef-vendor-mysql
>>  chef-vendor-openssl
>>  chef-vendor-php
>>  chef-vendor-wordpress
>> * master
>>
>> % git tag
>> chef-vendor-apache2-0.10.1
>> chef-vendor-mysql-0.15.0
>> chef-vendor-openssl-0.1.0
>> chef-vendor-php-0.7.0
>> chef-vendor-wordpress-0.5.0
>>
>> If we start publishing cookbooks and specifying dependencies in
>> metadata, and extend the cookbooks site to allow the upstream
>> developers to put the source control end-point for development in,
>> we'll have versioned cookbooks, with dependency management, along with
>> the mechanisms required to live on the bleeding edge.  And it'll be
>> discoverable.
>>
>> Sound good?
>>
>>> So it seems that the debate over cookbook repo approach really has
>>> little (nothing?) to do with the effort involved in managing repos and
>>> everything to do with the effort required by the dependency magaement
>>> solution adopted.
>>> Which really should be discussed in a separte thread:
>>> 'Freeing cookbook dependency management from source repo organization'
>>>
>>> Thoughts?
>>
>> I think we agree.  There are (at least) 3 things here:
>>
>> 1) How do you discover cookbooks you want to use
>> 2) How do you track them over time, and potentially make site-specific
>> changes, and track *those* over time.
>> 3) How do you track and resolve the dependencies one cookbook has on 
>> another
>>
>> I think I've got the 'knife cookbook site vendor' stuff far enough
>> that it does all 3 of these based on the cookbook site information
>> today, and we can focus on adding in the functionality we need to
>> cover the remaining use cases.
>>
>> You?
>>
>
> Sounds good.
> Regular work can be a real PITA - give me 24hrs and I should have an
> example alternative to discuss/evaluate :)

Better late than never,,,

http://hedgehogshiatus.com/carving-chefs-cookbooks

HTH
>
> Regards
>
>> Adam
>>
>> --
>> Opscode, Inc.
>> Adam Jacob, CTO
>> T: (206) 508-7449 E: 
>
>>
>
>
>
> --
> πόλλ' οἶδ ἀλώπηξ, ἀλλ' ἐχῖνος ἓν μέγα
> [The fox knows many things, but the hedgehog knows one big thing.]
>  Archilochus, Greek poet (c. 680 BC – c. 645 BC)
> http://wiki.hedgehogshiatus.com
>



-- 
πόλλ' οἶδ ἀλώπηξ, ἀλλ' ἐχῖνος ἓν μέγα
[The fox knows many things, but the hedgehog knows one big thing.]
  Archilochus, Greek poet (c. 680 BC – c. 645 BC)
http://wiki.hedgehogshiatus.com



Archive powered by MHonArc 2.6.16.

§