On Tuesday, June 26, 2012 at 2:45 AM, AJ Christensen wrote:
The pure ruby constraint solver could be beneficial toward Chefitself, I'm sure there is no other reason to be tied to libgecode --it has to be packaged by Opscode for Ubuntu, even.. although theomnibus packages make most of those problems minimal--AJOn 26 June 2012 21:23, Jamie Winsor < "> > wrote:You pretty much hit the key difference there - centralized storage.We set out to create a tool which would allow us to develop our cookbooksrapidly and make them first class citizens on a build server. The first taskwas pretty easy since @mitchellh (Vagrant) did all of that work for us.The second goal was a bit tougher; we had to integrate with a build processfor two different types of jobs.One job is a cookbook job and the other is an application. In the case of acookbook build job your CI server listens for changes in version control andthen goes to work. We added the 'metadata' keyword which allows Berkshelf toresolve the current working project's dependencies much like Bundler's'gemspec' function.The other job is an application who has an 'application cookbook'. In thiscase every application contains a Berksfile which contains only one sourceentry pointing to the application's cookbook.We have some additional things coming which will make Berkshelf more of aBundler / RubyGems hybrid, but until then this is the basis of what weneeded to accomplish to unblock our continuous delivery pipeline.We'll be improving portability and adding Windows support in the nextrelease by dropping Gecode. You can expect some big fixes along the way andadditional features to follow after we finish up a pure Ruby constraintsolver in 0.4.0.--Jamie Winsor@resetexistenceOn Tuesday, June 26, 2012 at 2:08 AM, Bryan Berry wrote:Hey Jamie,Awesome work!How does berkshelf compare to librarian-chef?afaict, it uses a different mechanism to store and link to them, this getsaround the issue of when you want to edit a cookbook managed by librarian,you can't really do that w/out using :path and then `librarian-chef install&& librarian-chef update` You've also got groups which looks like a veryneat featureWhat else is different?On Mon, Jun 25, 2012 at 11:42 PM, Jamie Winsor < "> >wrote:DNS fail on my part.You'll want to hit http://berkshelf.com until the CNAME for www is workingproperly.Sorry for the confusion!--Jamie Winsor@resetexistenceOn Monday, June 25, 2012 at 12:39 PM, Jamie Winsor wrote:Chefs,We (Riot Games) have been hard at work these last few months setting up acontinuous delivery process for not only our software, but also for thecookbooks that configure our software. Today we open sourced the first of aline of tools which we will be rolling out to the community.Berkshelf is a way to manage a cookbook or an application's cookbookdependencies. It allows you to treat cookbooks like you treat gems. At Riotwe are using Berkshelf on every internal application. A Berksfile isincluded in each application with a strict version lock to ensure we onlydeploy our build artifacts with the proper accompanying cookbook version.Given an application "league" it is accompanied by a Berksfile containingthe line:cookbook "league", git: " "> :riot/league.git", branch:"~> 1.61.0"This ensures that during each build we always deploy the latest and greatestpatches of the cookbook we deem appropriate for deploying the builtartifact.Berkshelf is also good for setting up a continuous delivery process for yourCookbooks themselves, too. At Riot every cookbook is stored in it's own Gitrepository which contains a Berksfile containing the line:metadataThis marks the current working directory as being a cookbook itself forBerkshelf to take actions upon. These jobs will unit test, lint test,validate syntax, and then upload the cookbook to our Chef Server forconsumption by other applications.We hope that you find Berkshelf as useful as we do.Pull requests welcome!--Jamie Winsor@resetexistence
Archive powered by MHonArc 2.6.16.