Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Berks install throws :gzip is not registered on Faraday::Response #1466

Closed
dpetzel opened this issue Oct 8, 2015 · 33 comments
Closed

Berks install throws :gzip is not registered on Faraday::Response #1466

dpetzel opened this issue Oct 8, 2015 · 33 comments

Comments

@dpetzel
Copy link
Contributor

dpetzel commented Oct 8, 2015

I'm not entirely sure the issue is with Berkshelf or Faraday, but since its my entrypoint I'm starting here. When I attempt to run a berks install I get the Faraday exception below. To the best of my knowledge this started about two days and and nothing on our end has changed, but you know how that goes...

On my initial chef exec bundle install it picked up faraday 0.9.2, which was new so I pinned to 0.9.0 based on the Berks gemspec. I get this same result regardless of which version I use.

chef --version
Chef Development Kit Version: 0.6.0
chef-client version: 11.16.4
berks version: 3.2.1
kitchen version: 1.4.1
An error occurred while reading the Berksfile:

  :gzip is not registered on Faraday::Response
    /home/dave/.chefdk/gem/ruby/2.1.0/gems/faraday-0.9.0/lib/faraday.rb:189:in `lookup_middleware'
    /home/dave/.chefdk/gem/ruby/2.1.0/gems/faraday-0.9.0/lib/faraday/rack_builder.rb:203:in `use_symbol'
    /home/dave/.chefdk/gem/ruby/2.1.0/gems/faraday-0.9.0/lib/faraday/rack_builder.rb:96:in `response'
    /home/dave/.chefdk/gem/ruby/2.1.0/gems/berkshelf-api-client-1.3.0/lib/berkshelf/api_client/connection.rb:37:in `block in initialize'
    /home/dave/.chefdk/gem/ruby/2.1.0/gems/faraday-0.9.0/lib/faraday/rack_builder.rb:66:in `build'
    /home/dave/.chefdk/gem/ruby/2.1.0/gems/faraday-0.9.0/lib/faraday/rack_builder.rb:55:in `initialize'
    /home/dave/.chefdk/gem/ruby/2.1.0/gems/berkshelf-api-client-1.3.0/lib/berkshelf/api_client/connection.rb:35:in `new'
    /home/dave/.chefdk/gem/ruby/2.1.0/gems/berkshelf-api-client-1.3.0/lib/berkshelf/api_client/connection.rb:35:in `initialize'
    /home/dave/.chefdk/gem/ruby/2.1.0/gems/berkshelf-api-client-1.3.0/lib/berkshelf/api_client.rb:15:in `new'
    /home/dave/.chefdk/gem/ruby/2.1.0/gems/berkshelf-api-client-1.3.0/lib/berkshelf/api_client.rb:15:in `new'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.2.4/lib/berkshelf/source.rb:13:in `initialize'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.2.4/lib/berkshelf/berksfile.rb:185:in `new'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.2.4/lib/berkshelf/berksfile.rb:185:in `source'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/cleanroom-1.0.0/lib/cleanroom.rb:130:in `public_send'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/cleanroom-1.0.0/lib/cleanroom.rb:130:in `block (3 levels) in cleanroom'
    /home/dave/mycookbookBerksfile:1:in `evaluate'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/cleanroom-1.0.0/lib/cleanroom.rb:70:in `instance_eval'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/cleanroom-1.0.0/lib/cleanroom.rb:70:in `evaluate'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/cleanroom-1.0.0/lib/cleanroom.rb:56:in `evaluate_file'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/cleanroom-1.0.0/lib/cleanroom.rb:173:in `evaluate_file'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.2.4/lib/berkshelf/berksfile.rb:23:in `from_file'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.2.4/lib/berkshelf/berksfile.rb:12:in `from_options'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.2.4/lib/berkshelf/cli.rb:162:in `update'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.2.4/lib/berkshelf/cli.rb:52:in `dispatch'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.2.4/lib/berkshelf/cli.rb:27:in `execute!'
    /opt/chefdk/embedded/lib/ruby/gems/2.1.0/gems/berkshelf-3.2.4/bin/berks:5:in `<top (required)>'
    /home/dave/.chefdk/gem/ruby/2.1.0/bin/berks:23:in `load'
    /home/dave/.chefdk/gem/ruby/2.1.0/bin/berks:23:in `<main>'
@reset
Copy link
Contributor

reset commented Oct 8, 2015

@dpetzel this is because berks is being called via bundler when you're calling chef exec. If you're trying to call Berkshelf directly then you'll just want to use the berks command that ChefDK puts in your path. You can also get rid of this error by upgrading to the recently released ChefDK 0.9.0.

@reset reset closed this as completed Oct 8, 2015
@dpetzel
Copy link
Contributor Author

dpetzel commented Oct 8, 2015

We have many cookbooks, across many orgs, each of those is potentially using different Berkshelf versions. I appreciate that we can run berks directly, but ideally we can leverage the version the project has pinned to and avoid the "Hey on my machine I run a different version than you".

This has been working for a rather long time as-is. Is there anything on my end that I can pin to preserve the previous working functionality?

I'll give the ChefDK 0.9.0 a spin, but requiring folks upgrade to a package that release only this week feels harsh.

@reset
Copy link
Contributor

reset commented Oct 8, 2015

@dpetzel the real problem is that you are using chef exec to execute Berkshelf - this is not supported. It's the same as using Berkshelf via a Gemfile. I only made the suggestion for you to upgrade so you won't need to switch everything over to using the binary in the ChefDK if you weren't ready to just yet. I know I fixed the bug you reported above which wouldn't manifest in the latest version of the ChefDK using that unsupported usage case.

@dpetzel
Copy link
Contributor Author

dpetzel commented Oct 8, 2015

So I've upgraded to 0.9.0 and still get the same issue. I (along with a large number of folks I believe) were under the impression that chef exec was the preferred way to run things in the context of ChefDK. I think the challenge is we are doing chef exec bundle exec, and picking up Berks via the Gemfile which you've educated me is not supported. That aside, we have a lot of CI jobs and developers that are used to doing it way. Its hard to wrap my head around that a process that worked on Monday, no longer works (for the same unchanged cookbook) today.

I'm not trying to argue, but rather better understand, what is the proper way collaborate on cookbooks that having varying requirements around the version of chefspec, rubocop, foodcritic, and berkshelf. For those other tools we've been pretty ingrained in using Gemfiles to ensure a cookbook is tested against a consistent set of tooling, vs whatever happens to be on the developers workstation. Sorry if these are dumb or annoying questions, and I'm happy to ask them elsewhere if it would be more appropriate.

Thanks

@reset
Copy link
Contributor

reset commented Oct 8, 2015

@dpetzel if you're running chef exec bundle exec and there is a Gemfile with Berkshelf in it, that's your culprit. In the interim to get unblocked quickly you can switch the version of Berkshelf in that Gemfile to use 4.0.x but, again, this is not supported or the recommended approach.

Somebody at Chef is working on a blog post about testing cookbooks using ChefDK. It wasn't brought to my attention until yesterday that this anti-pattern of using Berkshelf from your Gemfile was so widespread throughout the community. It came to me as quite the surprise since it's been two years since we released the ChefDK - this is a sign to me that people weren't educated properly so hopefully this blog post will help.

The answer to your question is that you simply don't put Berkshelf in your Gemfile. You instead you required your developers to have ChefDK on their machines and use the berks command directly. If you have a tool that needs to leverage Berkshelf, regardless of which language it is written in, it should shell out to the berks command. The story for releasing Ruby applications is a very sad one, so this is why the ChefDK even exists (same reason that Vagrant stopped supporting gem installs as well, btw).

In the README of each project you should place a link to the ChefDK installer and the version that you know you support. Just don't use bundler and Gemfiles. Test Kitchen, Berkshelf, and a lot of the tools you already are including in a Gemfile are present inside the ChefDK. You don't need to re-install them with Bundler. If you have an extension to test kitchen, vagrant, or some other tool, that's when you use chef gem install to ensure that is in your environment as well for when you run test-kitchen, berks, or chef exec rspec.

@dpetzel
Copy link
Contributor Author

dpetzel commented Oct 8, 2015

@reset Very much appreciate the explanation. As very pointed example of where this breaks down for us is rubocop. As they introduce new rules, are cookbooks go from passing (no violations) to failing because of new rules. Same story with foodcritic. We've been using Gemfiles to control those versions.

For anyone else following allowing running chef exec berks (not chef exec bundle exec) succeeds without the error.

I really do appreciate the time you've take to discuss this. I look forward to the blog post, but I dread that I need to modify all my CI jobs as I don't have a transitional period

reset referenced this issue in berkshelf/berkshelf-api-client Oct 8, 2015
I found this error while debugging issues with #9. It seems that the
Faraday httpclient has some sort of tuning set to transparently use gzip
in the backaground. After removing this middleware I no longer saw the
error.

Not sure why nobody else saw this. Thoughts @reset?
@ghost
Copy link

ghost commented Oct 8, 2015

I was able to get past this error using the following versions:
berkshelf ~> 4.0
berkshelf-api-client ~> 2.0

@maoueh
Copy link

maoueh commented Oct 9, 2015

@travis-altiscale Simply moving from ~> 3.0 to ~> 4.0 is enough, at least when I test it.

@reset
Copy link
Contributor

reset commented Oct 9, 2015

@maoueh Yes, that's technically correct. @travis-altiscale's advice is a bit overkill. I would read my comments above, though, as installing from gem is an unsupported method for using Berkshelf. You should switch over to using ChefDK in your build pipelines and on your dev machines.

@maoueh
Copy link

maoueh commented Oct 9, 2015

@reset Sure, I read the whole thread before posting, I even started to reply but decided to not do so because my post was becoming a bit too big.

As you sure know, ChefDK is a simple packaging of a Ruby runtime and gems set at predefined versions (and with pre-compiled version for native gems) creating an isolated environment immune to inter-dependencies clashing problems, just like this issue is about from my rough understanding.

Those all-in-one-packages includes all runtime files of the language sadly duplicates a lot of stuff. I keep multi version of Vagrant because I develop plugin that I want to test in more than one version and I'm at around 4 Go in size just for it. In my opinion, the environment isolation problem should be solve by something else than a all-in-on-package, but that's another story.

Like you said previously, it's been almost two years now that ChefDK is out, and still a lot of people are using the Gemfile way, me including. It's probably more that just and educational issue. On my side, I tried ChefDK a while ago but it was harder to get extra tooling installed and working (rubocop, knife-solo and some other) at that time than using the Gemfile. So, I started with it and now, there is good "investment" in this way.That's mostly why I'm still using this method for all my cookbook development needs. It gave me more freedom when I hit bug with tools like ChefSpec.

But I'm an advanced user. I restrict my current installed Ruby to one fully working with all Chef tooling. And I agree that "provisionning" another developer machine for cookbook development is cumbersome and it's where ChefDK really shine. I must admit that there is some resistance to change on my part also :D That's why I'm eager to read the article you are referring to and will probably give ChefDK another try.

I'm sure there is good solutions to all problem I had with ChefDK, it's just a matter of taken time to solve them nicely ... or to wait enough to read a nice article leading the way.

@ghost
Copy link

ghost commented Oct 9, 2015

@reset @maoueh yeah I know I don't need to lock berkshelf-api-client, but since version 1.3.0 broke SSL verifying against the system CA bundle (needed since we use an internal CA for signing certificates and run our own berkshelf api server), I lock things down a little tighter so the pipeline doesn't break because of a surprise new version 😄

We also have no plans of switching to ChefDK because last time I tried it, it stomped all over RVM on my laptop. And on the pipeline side, we also try to put as little configuration on our jenkins slaves as possible so using bundler + Gemfile makes it job configuration instead.

@dpetzel
Copy link
Contributor Author

dpetzel commented Oct 9, 2015

This is presenting itself to be very painful. We are finding a large number of cookbooks which are using varying ChefSpec versions. Some are still using the older version which relies on rspec2, and will require a significant lift to become rpsec3 compatible.

it should shell out to the berks command

It appears ChefSpec relies on Berks as a Gem, and does not shell out as recommended above. So if I remove berks from the Gemfile chef exec bundle exec rspec fails with Message: Could not load or activate Berkshelf (cannot load such file -- berkshelf). If I just run,chef exec rspec` all the specs fail since version of ChefDK I'm using has chefspec 4, but the tests are still in 2.0 format. And of course if I leave Berkshelf in the gem file I get the error that started the thread.

Is there really no way to pin something to previous versions so we can continue with the (now known to be unsupported) pattern thats been working for years? I'm feeling like I've been painted into a corner, while all along I thought I was protecting myself from this sort of thing by using the Gemfile to pin to versions we knew to work.

I've got hundreds of cookbooks to contend with, and upgrading Berks in the Gemfile isn't going to fly, and it appears that simply "Use ChefDK, and not bundler" isn't feasible in the short term.

I'd really appreciate and advice on how I can keep things working as they were, so we can have a chance to regroup and figure out path forward in doing things the "right" way.

Thaks
`

@reset
Copy link
Contributor

reset commented Oct 9, 2015

@dpetzel I recommended to you to bump to Berkshelf 4.x because bundler will resolve it just fine. I released it to help people in your situation while they migrated things over.

@dpetzel
Copy link
Contributor Author

dpetzel commented Oct 9, 2015

@reset understood, but touching many hundreds of Gemfiles spread across dozens of teams is challenging. Additionally 4.x requires Ruby 2.0. Sadly we have developers who have no interest in adopting ChefDK, and given that we still run a large number of Chef 11 clients, there is value in still testing on Ruby 1.9. I'm really not trying to be a pain (despite how it might seem), but "fix forward" is a really painful solution for us, and if we could somehow get back to how things worked at the start of the week (even if we have to update Gemfiles to do so), would be really beneficial for us, vs forcing a mad dash to upgrade to Berks 4

@reset
Copy link
Contributor

reset commented Oct 9, 2015

@dpetzel Your last solution is to distribute a Gemfile.lock which contains the exact versions of the software that you need in each of the repositories

@ghost
Copy link

ghost commented Oct 9, 2015

Or a meta gem that is just a list of specific versions and have all of your cookbooks depend on that gem. This way you only have to change it in one place when you're ready to upgrade.

@dpetzel
Copy link
Contributor Author

dpetzel commented Oct 9, 2015

Thanks guys, can I accomplish the same thing by pinning more strictly in my Gemfile vs distributing the lock?. I dug up a .lock from Sunday, which has this tree:

    berkshelf (3.2.4)
      addressable (~> 2.3.4)
      berkshelf-api-client (~> 1.2)
      buff-config (~> 1.0)
      buff-extensions (~> 1.0)
      buff-shell_out (~> 0.1)
      celluloid (~> 0.16.0)
      celluloid-io (~> 0.16.1)
      cleanroom (~> 1.0)
      faraday (~> 0.9.0)
      minitar (~> 0.5.4)
      octokit (~> 3.0)
      retryable (~> 2.0)
      ridley (~> 4.0)
      solve (~> 1.1)
      thor (~> 0.19)

@ghost
Copy link

ghost commented Oct 12, 2015

@reset: What @dpetzel has said about foodcritic and rubocop really resonates with me. The linting rules are constantly being developed and modified with time. I should not be forced to update every single one of my cookbooks when the first guy on my development team decides to update his workstation. Pinning these gems in a Gemfile allows consistency at the cookbook level, not the workstation level, and is critical to maintain sanity among a diverse development team that's working on a lot of cookbooks.

@reset
Copy link
Contributor

reset commented Oct 12, 2015

@icberg7 I'm not telling you that you need to stop using bundler for those things. You can if you insist. It's only Berkshelf (and other large apps like Vagrant) that you shouldn't be running with bundler.

@yoshiwaan
Copy link

I came across the same problem recently and using Berkshelf 4.X fixed my problem.
The reason I was using bundler instead of the ChefDK is that the developers here have a bunch of thor tasks that use a bundle.
Some of these tasks are for Chef related work and when shelling out to something in the ChefDK invariably there are bundler conflicts (doesn't matter if using chef exec or going straight to the 'binaries' made in /usr/bin by the ChefDK) due to different Gem versions.

As such it's necessary to declare something like:

::Bundler.with_clean_env do
   `chef exec berks install`
end

This just feels less clean than simply stating the desired gem in the Gemfile for the thor tasks and using that.

That being said we're all a little ignorant to bundler here so if there's a better way of calling ChefDK binaries from within a thor task that is called using a bundle (via a binstub) then we're happy to migrate to using the ChefDK binaries.

@reset
Copy link
Contributor

reset commented Oct 20, 2015

@yoshiwaan berkshelf should be called by the berks binary installed by Chef DK and not by chef exec. On an OSX machine Berkshelf will be installed to /opt/chefdk/bin/berks and that would be the command you want to shell out to. The current executing Ruby environment, or a bundler environment, should be completely avoided when calling Berkshelf.

@xiangyao1989
Copy link

I got exactly the same error and it stuck me for hours! I eventually fixed it by changing the versions of faraday from 0.9.2 to 0.9.1 or 0.9.0 and it works!

Here's part of my Gemfile if you're interested. Hopefully it helps~

berkshelf (3.3.0)
      addressable (~> 2.3.4)
      berkshelf-api-client (~> 1.2)
      buff-config (~> 1.0)
      buff-extensions (~> 1.0)
      buff-shell_out (~> 0.1)
      celluloid (~> 0.16.0)
      celluloid-io (~> 0.16.1)
      cleanroom (~> 1.0)
      faraday (~> 0.9.0)
      httpclient (~> 2.6.0)
      minitar (~> 0.5.4)
      octokit (~> 3.0)
      retryable (~> 2.0)
      ridley (~> 4.0)
      solve (~> 1.1)
      thor (~> 0.19)
    berkshelf-api-client (1.3.0)
      faraday (~> 0.9.0)
      httpclient (~> 2.6.0)

@reset
Copy link
Contributor

reset commented Oct 20, 2015

Just one more quick note for anybody who hasn't followed along for this pretty long thread.

Any advice that is being dropped here to modify your Gemfile and continue to use Berkshelf via Bundler is bad advice and should be considered a temporary solution to your problem.

@xiangyao1989
Copy link

The easiest solution is to pin your faraday to be 0.9.1 or 0.9.0 in your Gemfile.

@yoshiwaan
Copy link

@reset I hope I'm not derailing here but I guess it's in aid of moving to the ChefDK from bundler so...

Like I said it's the same result when using /usr/bin/berks as when running chef exec berks because they're not true compiled binaries but rather calling another ruby script which uses ruby from the ChefDK. I then have problems if the current bundle has a gem restriction which doesn't match in the ChefDK ruby, or as far as I can work out.

So is the only option when shelling out to a Chef 'binary,' as it were, to call it with ::Bundle.with_clean_env?

@reset
Copy link
Contributor

reset commented Oct 20, 2015

@yoshiwaan yes, the idea here is to spawn a new OS process without the inherited environment from your current process. There are various ways you can accomplish this with Ruby depending on which library you are using to shell out.

joeyates added a commit to joeyates/chef-postgresql that referenced this issue Oct 24, 2015
The error is:
```
:gzip is not registered on Faraday::Response (Faraday::Error)
```

Upgrading to berkshelf >= 4.x solves this problem.

See also here: berkshelf/berkshelf#1466
@trinitronx
Copy link

I'm somewhat (though not entirely) surprised that the gem install method is being warned against as not supported in favor of ChefDK. Indeed, I've had much better experience in general using the pre-packaged ChefDK rather than via RubyGems. I feel like this seems to be the eventual evolution of software in general. For example: bleeding edge users of build-from-source distros eventually move to prebuilt & packaged distros. Omnibus-packaged versions of software allow for less multifarious combinations of package versions, as many of the nodes in such a multidimensional test-matrix are usually broken in some way. In light of this however, I wonder what the recommended method of testing cookbooks against multiple versions of Chef / Ruby is nowadays?

I ran into some issues like this one (also: #1464) when trying to enable testing of a cookbook on different versions of Ruby and Chef, using Travis-CI. Travis uses RVM and optionally multiple Gemfiles for supporting testing against different Ruby & gem versions. I modeled a .travis.yml after ChefSpec's using CHEF_VERSION and a travis-ci only Gemfile similar to this one which used a case statement to handle different versions of foodcritic, chefspec, chef, etc... based on CHEF_VERSION and RUBY_VERSION. I got things working on a couple different versions of Ruby and Chef (27 out of 64 combinations were successful), but many test jobs in the testing matrix failed not due to the ChefSpec or foodcritic tests themselves, but the initial bundle install failing.

Are there any best-practices or suggestions for cookbook testing with Travis-CI these days?

trinitronx added a commit to LyraPhase/lyraphase_workstation that referenced this issue Oct 26, 2015
jdmurphy pushed a commit to jdmurphy/cerner_splunk that referenced this issue Nov 3, 2015
jdmurphy pushed a commit to jdmurphy/cerner_splunk that referenced this issue Nov 4, 2015
- Update berkshelf version to ~> 4.0 for Ruby > 1.9 to mitigate berkshelf/berkshelf#1466
- When Ruby is 1.9 lock down the following dependencies due to removal of 1.9 support
  - berkshelf
  - ridley
  - faraday
  - varia_model
@Rud5G
Copy link

Rud5G commented Nov 26, 2015

@reset if i understand correct, you suggest more of a testing workflow like in the users-cookbook,
https://github.com/chef-cookbooks/users/blob/6ad680b528750f1ecd4c7ff2684ffe824e3eafeb/.travis.yml
this installs chefdk and ignores the "gemfile"?

@reset
Copy link
Contributor

reset commented Nov 29, 2015

@Rud5G yes, that's the correct approach!

@Rud5G
Copy link

Rud5G commented Nov 29, 2015

@reset Awesome

@matschaffer
Copy link
Contributor

Was starting a new cookbook today and happened to notice that berks init from the latest chefdk (and in master) creates a Gemfile that includes berkshelf: https://github.com/berkshelf/berkshelf/blob/master/generator_files/Gemfile.erb#L3

If the plan is to not support that seems like it would be a good idea to take it out of the generator.

@reset
Copy link
Contributor

reset commented Dec 8, 2015

@matschaffer thanks for the heads up, I've corrected that - #1485

@ARentz07
Copy link

Not to resurrect this issue from the dead, but for anyone else who finds this issue, I was able to work around it by updating bundler. When I bundled it with 1.6.2, I saw this error. After updating to 1.11.2, the error disappeared. I didn't update berkshelf or pin faraday - only updated bundler.

My Gemfile.lock.

GEM
  remote: https://rubygems.org/
  remote: http://repo.release.cerner.corp/internal/rubygems/
  specs:
    addressable (2.3.8)
    berkshelf (3.3.0)
      addressable (~> 2.3.4)
      berkshelf-api-client (~> 1.2)
      buff-config (~> 1.0)
      buff-extensions (~> 1.0)
      buff-shell_out (~> 0.1)
      celluloid (~> 0.16.0)
      celluloid-io (~> 0.16.1)
      cleanroom (~> 1.0)
      faraday (~> 0.9.0)
      httpclient (~> 2.6.0)
      minitar (~> 0.5.4)
      octokit (~> 3.0)
      retryable (~> 2.0)
      ridley (~> 4.0)
      solve (~> 1.1)
      thor (~> 0.19)
    berkshelf-api-client (1.3.1)
      faraday (~> 0.9.1)
      httpclient (~> 2.6.0)
    buff-config (1.0.1)
      buff-extensions (~> 1.0)
      varia_model (~> 0.4)
    buff-extensions (1.0.0)
    buff-ignore (1.1.1)
    buff-ruby_engine (0.1.0)
    buff-shell_out (0.2.0)
      buff-ruby_engine (~> 0.1.0)
    builder (3.2.2)
    celluloid (0.16.0)
      timers (~> 4.0.0)
    celluloid-io (0.16.2)
      celluloid (>= 0.16.0)
      nio4r (>= 1.1.0)
    cleanroom (1.0.0)
    dep-selector-libgecode (1.0.2)
    dep_selector (1.0.3)
      dep-selector-libgecode (~> 1.0)
      ffi (~> 1.9)
    diff-lcs (1.2.5)
    erubis (2.7.0)
    faraday (0.9.2)
      multipart-post (>= 1.2, < 3)
    ffi (1.9.10)
    geminabox (0.6.1)
      builder
      httpclient
      sinatra
    haml (4.0.7)
      tilt
    hashie (2.1.2)
    highline (1.7.8)
    hitimes (1.2.3)
    httpclient (2.6.0.1)
    json (1.8.3)
    kitchen-vagrant (0.19.0)
      test-kitchen (~> 1.4)
    mime-types (2.4.3)
    minitar (0.5.4)
    mixlib-authentication (1.3.0)
      mixlib-log
    mixlib-log (1.6.0)
    mixlib-shellout (2.2.5)
    multipart-post (2.0.0)
    net-scp (1.2.1)
      net-ssh (>= 2.6.5)
    net-ssh (2.9.2)
    nio4r (1.2.0)
    octokit (3.8.0)
      sawyer (~> 0.6.0, >= 0.5.3)
    rack (1.6.4)
    rack-protection (1.5.3)
      rack
    rake (10.4.2)
    rdoc (4.2.1)
      json (~> 1.4)
    redcarpet (3.2.3)
    retryable (2.0.3)
    ridley (4.4.1)
      addressable
      buff-config (~> 1.0)
      buff-extensions (~> 1.0)
      buff-ignore (~> 1.1)
      buff-shell_out (~> 0.1)
      celluloid (~> 0.16.0)
      celluloid-io (~> 0.16.1)
      erubis
      faraday (~> 0.9.0)
      hashie (>= 2.0.2, < 4.0.0)
      httpclient (~> 2.6)
      json (>= 1.7.7)
      mixlib-authentication (>= 1.3.0)
      retryable (~> 2.0)
      semverse (~> 1.1)
      varia_model (~> 0.4.0)
    [proprietary-thing] (1.10.0)
      geminabox (~> 0.6.0)
      haml (>= 3.1, < 5.0.0)
      mime-types (~> 2.4.3)
      rake
      redcarpet (~> 3.2.2)
    [proprietary-thing-2] (1.2.0)
      [proprietary-thing] (~> 1.5)
    rspec (2.99.0)
      rspec-core (~> 2.99.0)
      rspec-expectations (~> 2.99.0)
      rspec-mocks (~> 2.99.0)
    rspec-core (2.99.2)
    rspec-expectations (2.99.2)
      diff-lcs (>= 1.1.3, < 2.0)
    rspec-its (1.0.1)
      rspec-core (>= 2.99.0.beta1)
      rspec-expectations (>= 2.99.0.beta1)
    rspec-mocks (2.99.4)
    safe_yaml (1.0.4)
    sawyer (0.6.0)
      addressable (~> 2.3.5)
      faraday (~> 0.8, < 0.10)
    semverse (1.2.1)
    serverspec (1.16.0)
      highline
      net-ssh
      rspec (~> 2.99)
      rspec-its
      specinfra (~> 1.27)
    sinatra (1.4.6)
      rack (~> 1.4)
      rack-protection (~> 1.4)
      tilt (>= 1.3, < 3)
    solve (1.2.1)
      dep_selector (~> 1.0)
      semverse (~> 1.1)
    specinfra (1.27.5)
    test-kitchen (1.4.2)
      mixlib-shellout (>= 1.2, < 3.0)
      net-scp (~> 1.1)
      net-ssh (~> 2.7, < 2.10)
      safe_yaml (~> 1.0)
      thor (~> 0.18)
    thor (0.19.1)
    tilt (2.0.2)
    timers (4.0.4)
      hitimes
    varia_model (0.4.1)
      buff-extensions (~> 1.0)
      hashie (>= 2.0.2, < 4.0.0)

PLATFORMS
  ruby

DEPENDENCIES
  berkshelf (~> 3.0)
  hashie (~> 2.0)
  kitchen-vagrant (~> 0.15)
  rdoc (~> 4.1)
  [proprietary-thing-2] (~> 1.10)
  [proprietary-thing] (~> 1.2)
  serverspec (~> 1.10)
  test-kitchen (~> 1.2)

BUNDLED WITH
   1.11.2

@berkshelf berkshelf locked and limited conversation to collaborators Jun 16, 2017
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

10 participants