berkshelf/berkshelf — pull request #1146 by gaffneyc (2014-04-21 20:28:59+00:00)
Title: Berkshelf 2.0.15 won't install with Vagrant 1.5.3

This may be an issue with vagrant-berkshelf instead but my digging makes we think we can address this by bumping Ridlay on the 2.0 branch.

We're currently using Berkshelf 2.0 and blocked on upgrading to 3.0 on a couple issues. When trying to install vagrant-berkshelf 1.3.7 (the last version with support for Berkshelf 2.0) it errors with dependency issues on celluloid. Tracking down the issue, Berkshelf depends on Ridley 1.5.3 which depends on celluloid `~> 0.14.0` whereas Vagrant depends on the Listen gem which require `>= 0.15.2`. Starting with Ridley 1.6.0 the version constraint was changed to `~> 1.5`.

I've attempted to update the dependency on the 2-0-stable branch to Ridley 1.6 and 1.7 but both fail with the following error:

```
@chef_server
Scenario: JSON output when running the upload command # features/json_formatter.feature:58
Given a Berksfile with path location sources to fixtures: # features/step_definitions/berksfile_steps.rb:1
| example_cookbook | example_cookbook-0.5.0 |
And the Chef server does not have the cookbooks: # features/step_definitions/chef_server_steps.rb:3
| example_cookbook | 0.5.0 |
When I successfully run `berks upload --format json` # aruba-0.5.4/lib/aruba/cucumber.rb:95
Then the output should contain JSON: # features/step_definitions/json_steps.rb:22
"""
{
"cookbooks": [
{
"name": "example_cookbook",
"version": "0.5.0",
"location": "../../spec/fixtures/cookbooks/example_cookbook-0.5.0",
"uploaded_to": "http://localhost:4000/"
}
],
"errors": [

],
"messages": [

]
}
"""
757: unexpected token at 'Terminating task: type=:finalizer, meta={:method_name=>:__shutdown__}, status=:callwait
Terminating task: type=:finalizer, meta={:method_name=>:__shutdown__}, status=:callwait
{
"cookbooks": [
{
"version": "0.5.0",
"location": "../../spec/fixtures/cookbooks/example_cookbook-0.5.0",
"uploaded_to": "http://localhost:4000/",
"name": "example_cookbook"
}
],
"errors": [

],
"messages": [

]
}Terminating task: type=:finalizer, meta={:method_name=>:__shutdown__}, status=:callwait
' (JSON::ParserError)
./features/step_definitions/json_steps.rb:24:in `/^the output should contain JSON:$/'
features/json_formatter.feature:64:in `Then the output should contain JSON:'
```

I realize 2.0 is on it's way out with the release of 3.0 but we're in a position where upgrading isn't looking to be quick and we're unable to do development with Vagrant.