Git Product home page Git Product logo

solve's Introduction

Berkshelf

Gem Version Matrix Testing

Manage Chef Infra cookbooks and cookbook dependencies

Warning

Berkshelf is effectively deprecated. There is no ongoing maintenance and triage of issues. No active work is being done on bugfixes. The only work being done is to maintain it so that it continues to ship and run in its existing state.

Existing users should strongly consider migrating to Policyfiles and new users should avoid using Berkshelf.

Installation

Berkshelf is now included as part of the Chef Workstation. This is fastest, easiest, and the recommended installation method for getting up and running with Berkshelf.

note: You may need to uninstall the Berkshelf gem especially if you are using a Ruby version manager you may need to uninstall all Berkshelf gems from each Ruby installation.

From Rubygems

If you are a developer or you prefer to install from Rubygems, we've got you covered.

Add Berkshelf to your repository's Gemfile:

gem 'berkshelf'

Or run it as a standalone:

$ gem install berkshelf

Usage

See docs.chef.io for up-to-date usage instructions.

CLI Usage

Berkshelf is intended to be used as a CLI tool. It is not intended to be used as a library. Other ruby code should shell out to the command line tool to use it.

Supported Platforms

Berkshelf is tested and supported on Ruby 2.4 and later.

Configuration

Berkshelf will search in specific locations for a configuration file. In order:

$PWD/.berkshelf/config.json
~/.berkshelf/config.json

You are encouraged to keep project-specific configuration in the $PWD/.berkshelf directory. A default configuration file is generated for you, but you can update the values to suit your needs.

Shell Completion

Plugins

Please see Plugins page for more information.

Getting Help

  • If you have an issue: report it on the issue tracker
  • If you have a question: visit the #chef or #berkshelf channel on irc.freenode.net

Authors

Thank you to all of our Contributors, testers, and users.

If you'd like to contribute, please see our contribution guidelines first.

solve's People

Contributors

375gnu avatar andrewgarson avatar coderanger avatar danielsdeleo avatar ivey avatar jisaacks avatar josacar avatar lamont-granquist avatar martinb3 avatar nilsding avatar reset avatar rymai avatar sethvargo avatar szmyd avatar tas50 avatar thibaudgg avatar thommay avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

solve's Issues

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.1.10.0)

    chefstyle was resolved to 1.7.5, which depends on
      rubocop (= 1.12.1) was resolved to 1.12.1, which depends on
        Ruby (>= 2.4.0)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Switch to gecode

To my understanding, the reason gecode isn't used is to better support windows. I have been able to compile gecode relatively easily using the mingw toolchain that comes with the DevKit embedded inside a chef-client omnibus package. Gecode versions 3.7.3 and latest both seem to compile fine. In addition, I was able to resolve linker errors when building the dep_selector gem and successfully compile the ruby extension (see: markan/dep-selector#5 ).

Therefore, it should be possible to use the same code in berks as is used by the chef-server (version 11.1 of the server switches back to the dep_selector solver), which should result in better deployment stability and a performance improvement when solving.

The obvious downside is that C extensions in ruby can be a PITA. At Chef (the company) we're willing to provide omnibus builds with gecode precompiled, which will ease the pain for anyone using that installation method. We can also investigate creating a gecode-library gem, which could be built as a binary gem for some platforms (linux might be very difficult, with the range of libc versions in use, but Windows and possibly Mac OS X should be more straightforward).

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.1.10.0)

    chefstyle was resolved to 2.0.1, which depends on
      rubocop (= 1.13.0) was resolved to 1.13.0, which depends on
        Ruby (>= 2.5.0)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.1.10.0)

    chefstyle was resolved to 2.0.6, which depends on
      rubocop (= 1.18.3) was resolved to 1.18.3, which depends on
        Ruby (>= 2.5.0)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.1.10.0)

    chefstyle was resolved to 2.0.5, which depends on
      rubocop (= 1.17.0) was resolved to 1.17.0, which depends on
        Ruby (>= 2.5.0)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Molinillo 0.6.0 breaks ruby solver

The update to Molinillo 0.6.0 appears to have broken the ruby solver.

https://github.com/CocoaPods/Molinillo/blob/master/CHANGELOG.md#breaking

Locking down Molinillo to 0.5.7 allows berks to resolve successfully.

Example error with Molinillo 0.6.0:

/Users/ah042823/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/solve-3.1.0/lib/solve/ruby_solver.rb:80:in `block in resolve': undefined method `name' for nil:NilClass (NoMethodError)
	from /Users/ah042823/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/solve-3.1.0/lib/solve/ruby_solver.rb:79:in `each'
	from /Users/ah042823/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/solve-3.1.0/lib/solve/ruby_solver.rb:79:in `inject'
	from /Users/ah042823/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/solve-3.1.0/lib/solve/ruby_solver.rb:79:in `resolve'
	from /Users/ah042823/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/solve-3.1.0/lib/solve.rb:64:in `it!'
	from /Users/ah042823/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/berkshelf-6.2.1/lib/berkshelf/resolver.rb:78:in `resolve'
	from /Users/ah042823/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/berkshelf-6.2.1/lib/berkshelf/installer.rb:181:in `install_from_universe'
	from /Users/ah042823/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/berkshelf-6.2.1/lib/berkshelf/installer.rb:43:in `run'
	from /Users/ah042823/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/berkshelf-6.2.1/lib/berkshelf/berksfile.rb:426:in `install'
	from /Users/ah042823/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/berkshelf-6.2.1/lib/berkshelf/cli.rb:140:in `install'
	from /Users/ah042823/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
	from /Users/ah042823/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
	from /Users/ah042823/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
	from /Users/ah042823/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/berkshelf-6.2.1/lib/berkshelf/cli.rb:49:in `dispatch'
	from /Users/ah042823/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
	from /Users/ah042823/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/berkshelf-6.2.1/lib/berkshelf/cli.rb:25:in `execute!'
	from /Users/ah042823/.rbenv/versions/2.3.1/lib/ruby/gems/2.3.0/gems/berkshelf-6.2.1/bin/berks:5:in `<top (required)>'
	from /Users/ah042823/.rbenv/versions/2.3.1/bin/berks:23:in `load'
	from /Users/ah042823/.rbenv/versions/2.3.1/bin/berks:23:in `<main>'

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.1.10.0)

    chefstyle was resolved to 2.0.4, which depends on
      rubocop (= 1.15.0) was resolved to 1.15.0, which depends on
        Ruby (>= 2.5.0)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

= x.y.z is not recognized as a valid version

To reproduce:

Solve::Version.new('= 1.2.3')
# => Solve::Errors::InvalidVersionFormat: '= 1.2.3' did not contain a valid version string: 'x.y.z' or 'x.y'.

I feel like the hard-lock, while the same as 1.2.3 should be permitted. Thoughts?

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.1.10.0)

    chefstyle was resolved to 2.0.7, which depends on
      rubocop (= 1.18.4) was resolved to 1.18.4, which depends on
        Ruby (>= 2.5.0)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Solve crashes when dependency calculation takes more than 1 second with ruby solver

Solve 2 crashes when resolution takes more than 1 second with ruby solver. Molinillo calls ui to update UI every 1 second.

This is the stacktrace:

/home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/gems/molinillo-0.2.3/lib/molinillo/resolution.rb:293:in `indicate_progress': undefined method `indicate_progress' for #<Solve:
:RubySolver:0x007f28b91fa408> (NoMethodError)
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/gems/molinillo-0.2.3/lib/molinillo/resolution.rb:63:in `resolve'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/gems/molinillo-0.2.3/lib/molinillo/resolver.rb:40:in `resolve'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/gems/solve-2.0.1/lib/solve/ruby_solver.rb:177:in `resolve_with_error_wrapping'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/gems/solve-2.0.1/lib/solve/ruby_solver.rb:72:in `resolve'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/gems/solve-2.0.1/lib/solve.rb:64:in `it!'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/bundler/gems/berkshelf-c7bd4b19cc11/lib/berkshelf/resolver.rb:76:in `resolve'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/bundler/gems/berkshelf-c7bd4b19cc11/lib/berkshelf/installer.rb:175:in `install_from_universe'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/bundler/gems/berkshelf-c7bd4b19cc11/lib/berkshelf/installer.rb:39:in `run'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/bundler/gems/berkshelf-c7bd4b19cc11/lib/berkshelf/berksfile.rb:374:in `install'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/bundler/gems/berkshelf-c7bd4b19cc11/lib/berkshelf/berksfile.rb:399:in `update'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/bundler/gems/berkshelf-c7bd4b19cc11/lib/berkshelf/cli.rb:163:in `update'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/bundler/gems/berkshelf-c7bd4b19cc11/lib/berkshelf/cli.rb:52:in `dispatch'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/bundler/gems/berkshelf-c7bd4b19cc11/lib/berkshelf/cli.rb:27:in `execute!'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/bundler/gems/berkshelf-c7bd4b19cc11/bin/berks:5:in `<top (required)>'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/bin/berks:23:in `load'
        from /home/vagrant/code/platform/infra/vendor/bundle/ruby/2.2.0/bin/berks:23:in `<main>'

Circular dependency detection

We need to add circular dependency detection. Currently we'll just get a SystemStackError exception if a circular dependency is found.

NoMethodError: undefined method `name' for nil:NilClass

i am trying to do berks update <cookbook_name> and it is bombing out on ruby solver

bundler: failed to load command: berks (/Users/username/chef/.bundle/ruby/2.3.0/bin/berks)
NoMethodError: undefined method `name' for nil:NilClass
  /Users/username/chef/.bundle/ruby/2.3.0/gems/solve-3.1.0/lib/solve/ruby_solver.rb:82:in `block in resolve'
  /Users/username/chef/.bundle/ruby/2.3.0/gems/solve-3.1.0/lib/solve/ruby_solver.rb:79:in `each'
  /Users/username/chef/.bundle/ruby/2.3.0/gems/solve-3.1.0/lib/solve/ruby_solver.rb:79:in `inject'
  /Users/username/chef/.bundle/ruby/2.3.0/gems/solve-3.1.0/lib/solve/ruby_solver.rb:79:in `resolve'
  /Users/username/chef/.bundle/ruby/2.3.0/gems/solve-3.1.0/lib/solve.rb:64:in `it!'
  /Users/username/chef/.bundle/ruby/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/resolver.rb:78:in `resolve'
  /Users/username/chef/.bundle/ruby/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/installer.rb:175:in `install_from_universe'
  /Users/username/chef/.bundle/ruby/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/installer.rb:39:in `run'
  /Users/username/chef/.bundle/ruby/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/berksfile.rb:422:in `install'
  /Users/username/chef/.bundle/ruby/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/berksfile.rb:447:in `update'
  /Users/username/chef/.bundle/ruby/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/cli.rb:163:in `update'
  /Users/username/chef/.bundle/ruby/2.3.0/gems/thor-0.19.4/lib/thor/command.rb:27:in `run'
  /Users/username/chef/.bundle/ruby/2.3.0/gems/thor-0.19.4/lib/thor/invocation.rb:126:in `invoke_command'
  /Users/username/chef/.bundle/ruby/2.3.0/gems/thor-0.19.4/lib/thor.rb:369:in `dispatch'
  /Users/username/chef/.bundle/ruby/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/cli.rb:52:in `dispatch'
  /Users/username/chef/.bundle/ruby/2.3.0/gems/thor-0.19.4/lib/thor/base.rb:444:in `start'
  /Users/username/chef/.bundle/ruby/2.3.0/gems/berkshelf-5.2.0/lib/berkshelf/cli.rb:27:in `execute!'
  /Users/username/chef/.bundle/ruby/2.3.0/gems/berkshelf-5.2.0/bin/berks:5:in `<top (required)>'
  /Users/username/chef/.bundle/ruby/2.3.0/bin/berks:23:in `load'
  /Users/username/chef/.bundle/ruby/2.3.0/bin/berks:23:in `<top (required)>'

Bombs out on the 2nd line since artifact is nil

      unsorted_solution = solution.inject({}) do |stringified_soln, artifact|
        stringified_soln[artifact.name] = artifact.version.to_s
        stringified_soln
      end

This appears to fix the issue

-stringified_soln[artifact.name] = artifact.version.to_s
+stringified_soln[artifact.name] = artifact.version.to_s unless artifact.nil?

Doing it for another cookbook works, just not the one i am trying to update

Berkshelf install --except option not working

I'm using berkshelf version 3.2.4. I have created a group as follows in my Berkshelf file.

group :mfs do
cookbook 'git'
end

Then I issue the following command to install my dependencies.
berks install --except mfs

This command is supposed to download every other cookbook except git. But it downloads git as well.

Solver returns NoSolutionError with a constraint that does not exist

Hi all, I'm having a Berkshelf issue that so far has been traced into the solver. This is with Berkshelf 4.3.5 but with Solve bumped to 3.0.1 and molinillo at 0.5.1.

This is a rather complex graph but the problem is simple. nginx-2.2.0 introduces a requirement for build-essential (~> 1.4). Another required package, homebrew-1.10.0, does not have any dependencies but the resolution fails with build-essential (>= 2.1.2) required by homebrew-1.10.0. I have ascertained, by prying into the artifacts of the graph just before Solve.it! is called, that the artifact with name homebrew and version 1.10.0 does not have any dependencies. Homebrew does introduce a dependency to build-essential in a later version.

Any suggestions on how to investigate this further?

berks throws in celluloid

Hi,
New user to berks... Can't find my error via google...

I have a working knife client but I'm trying to shift my paradigm to use berkshelf 3.1.1/chef-11.6 . While I 'berks install' works, I cannot 'berks upload' to my chef server while I can knife upload a cookbook without a problem. I get a big stack trace which I've included. berks is definitely talking to my chef-server as I see it do gets/puts to /sandbox. I'd really like to use berkshelf. Am I using too new a version? I'm at my wits end, and hope you can help!
-Chris

root #  cat ~/.berkshelf/config.json
{
  "ssl": {
    "verify": false
  }
root # cd ~/chef-dev/suned_nagios_server
root # berks
Resolving cookbook dependencies...
Fetching 'suned_nagios_server' from source at .
Using apache2 (1.10.4)
Using apt (2.3.10)
Using bluepill (2.3.1)
Using build-essential (2.0.0)
Using chef_handler (1.1.6)
Using iis (2.1.2)
Using iptables (0.13.2)
Using logrotate (1.5.0)
Using mysql (5.2.2)
Using nagios (5.3.4)
Using nginx (1.8.0)
Using nginx_simplecgi (0.1.2)
Using ohai (2.0.0)
Using pacman (1.1.1)
Using perl (1.2.2)
Using php (1.4.6)
Using rsyslog (1.12.2)
Using runit (1.5.10)
Using suned_nagios_server (0.1.0) from source at .
Using windows (1.30.2)
Using xml (1.2.4)
Using yum (3.2.0)
Using yum-epel (0.3.6)

# berks upload 
/opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/tasks/task_fiber.rb:34:in `terminate': task was terminated (Celluloid::Task::TerminatedError)
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/actor.rb:350:in `each'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/actor.rb:350:in `cleanup'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/actor.rb:334:in `shutdown'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/actor.rb:326:in `handle_crash'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/actor.rb:161:in `rescue in run'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/actor.rb:147:in `run'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/actor.rb:129:in `block in start'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/thread_handle.rb:13:in `block in initialize'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/actor_system.rb:32:in `block in get_thread'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/internal_pool.rb:99:in `call'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/internal_pool.rb:99:in `block in create'
        from (celluloid):0:in `remote procedure call'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/future.rb:104:in `value'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/future.rb:68:in `value'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/ridley-3.1.0/lib/ridley/resources/sandbox_resource.rb:71:in `map'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/ridley-3.1.0/lib/ridley/resources/sandbox_resource.rb:71:in `upload'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/calls.rb:26:in `public_send'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/calls.rb:26:in `dispatch'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/calls.rb:63:in `dispatch'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/cell.rb:60:in `block in invoke'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/cell.rb:71:in `block in task'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/actor.rb:362:in `block in task'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/tasks.rb:55:in `block in initialize'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/tasks/task_fiber.rb:15:in `block in create'
        from (celluloid):0:in `remote procedure call'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/calls.rb:92:in `value'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/ridley-3.1.0/lib/ridley/chef_objects/sandbox_object.rb:46:in `upload'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/ridley-3.1.0/lib/ridley/resources/cookbook_resource.rb:226:in `upload'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/calls.rb:26:in `public_send'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/calls.rb:26:in `dispatch'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/calls.rb:63:in `dispatch'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/cell.rb:60:in `block in invoke'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/cell.rb:71:in `block in task'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/actor.rb:362:in `block in task'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/tasks.rb:55:in `block in initialize'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/tasks/task_thread.rb:21:in `block in create'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/thread_handle.rb:13:in `block in initialize'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/actor_system.rb:32:in `block in get_thread'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/internal_pool.rb:99:in `call'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/internal_pool.rb:99:in `block in create'
        from (celluloid):0:in `remote procedure call'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/calls.rb:92:in `value'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/celluloid-0.16.0.pre/lib/celluloid/proxies/sync_proxy.rb:33:in `method_missing'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/berkshelf-3.1.1/lib/berkshelf/uploader.rb:54:in `block (2 levels) in upload'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/berkshelf-3.1.1/lib/berkshelf/uploader.rb:50:in `each'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/berkshelf-3.1.1/lib/berkshelf/uploader.rb:50:in `block in upload'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/ridley-3.1.0/lib/ridley/client.rb:36:in `open'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/ridley-3.1.0/lib/ridley.rb:51:in `open'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/berkshelf-3.1.1/lib/berkshelf.rb:156:in `ridley_connection'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/berkshelf-3.1.1/lib/berkshelf/uploader.rb:49:in `upload'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/berkshelf-3.1.1/lib/berkshelf/uploader.rb:36:in `run'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/berkshelf-3.1.1/lib/berkshelf/berksfile.rb:542:in `upload'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/berkshelf-3.1.1/lib/berkshelf/cli.rb:208:in `upload'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/thor-0.19.1/lib/thor/command.rb:27:in `run'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/thor-0.19.1/lib/thor/invocation.rb:126:in `invoke_command'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/thor-0.19.1/lib/thor.rb:359:in `dispatch'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/berkshelf-3.1.1/lib/berkshelf/cli.rb:52:in `dispatch'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/thor-0.19.1/lib/thor/base.rb:440:in `start'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/berkshelf-3.1.1/lib/berkshelf/cli.rb:27:in `execute!'
        from /opt/chef/embedded/lib/ruby/gems/1.9.1/gems/berkshelf-3.1.1/bin/berks:5:in `<top (required)>'
        from /opt/chef/embedded/bin/berks:23:in `load'
        from /opt/chef/embedded/bin/berks:23:in `<main>'

Bug in Berkshelf, or Solve? Seems to be solve...

I'm not sure how to report this bug. It appears to be coming from solve, even though I encounter it with Berkshelf (v3.0.0.beta2). Here's the scenario.

I am working with a large number of cookbooks in an existing chef-repo. Most of them are private, and for number of reasons are not in separate repositories nor released on the community site. I want to use the :path directive for each cookbook for my Berksfile:

cookbook "opscode-foo", :path => "./cookbooks/opscode-foo"

We have over 200 cookbooks in the directory. I shortcut this with the following in my Berksfile:

Dir.glob(File.join(File.dirname(__FILE__), "cookbooks", "*")).each do |cb|
  if ::File.directory?(cb)
    cookbook File.basename(cb), :path => cb
  end
end

When I run berks install, it gets to building universe and then hits an infinite loop. As near as I can tell, through judicious use of puts in the solve library, it hits this code path:

if variable.value.nil?
  reset_possible_values_for(variable)
end

And variable.value is nil for every cookbook. I put the following line above the if statement:

puts variable.inspect

I see this output:

#<Solve::Solver::VariableRow:0x007f824c97b000 @artifact="opscode-base", @value=nil, @sources=[:root]>

I'm not sure where else to debug this, or how to get more appropriate information. It appears that this is a solve bug, not a berkshelf bug, so I am reporting it here. However, perhaps this is a berkshelf bug, since it should know about its world because I have all these cookbooks locally (and said so, in the Berksfile).

Solve Wrong Number Of Arguments

I am using vagrant-berkshelf and when it tries to grab the cookbook index I get a wrong number of arguments error:

Fetching cookbook index from https://api.berkshelf.com...
/Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/ui.rb:196:in `say': wrong number of arguments (1 for 2) (ArgumentError)
    from /Users/Daniel/.vagrant.d/gems/gems/solve-0.8.2/lib/solve/tracers/human_readable.rb:16:in `start'
    from /Users/Daniel/.vagrant.d/gems/gems/solve-0.8.2/lib/solve/solver.rb:97:in `resolve'
    from /Users/Daniel/.vagrant.d/gems/gems/solve-0.8.2/lib/solve.rb:39:in `it!'
    from /Users/Daniel/.vagrant.d/gems/gems/berkshelf-3.0.0.beta8/lib/berkshelf/cookbook_store.rb:146:in `satisfy'
    from /Users/Daniel/.vagrant.d/gems/gems/berkshelf-3.0.0.beta8/lib/berkshelf/dependency.rb:135:in `cached_cookbook'
    from /Users/Daniel/.vagrant.d/gems/gems/berkshelf-3.0.0.beta8/lib/berkshelf/installer.rb:149:in `block in install_from_universe'
    from /Users/Daniel/.vagrant.d/gems/gems/berkshelf-3.0.0.beta8/lib/berkshelf/installer.rb:148:in `each'
    from /Users/Daniel/.vagrant.d/gems/gems/berkshelf-3.0.0.beta8/lib/berkshelf/installer.rb:148:in `install_from_universe'
    from /Users/Daniel/.vagrant.d/gems/gems/berkshelf-3.0.0.beta8/lib/berkshelf/installer.rb:39:in `run'
    from /Users/Daniel/.vagrant.d/gems/gems/berkshelf-3.0.0.beta8/lib/berkshelf/berksfile.rb:373:in `install'
    from /Users/Daniel/.vagrant.d/gems/gems/berkshelf-3.0.0.beta8/lib/berkshelf/berksfile.rb:597:in `vendor'
    from /Users/Daniel/.vagrant.d/gems/gems/vagrant-berkshelf-2.0.0.rc2/lib/berkshelf/vagrant/action/install.rb:48:in `install'
    from /Users/Daniel/.vagrant.d/gems/gems/vagrant-berkshelf-2.0.0.rc2/lib/berkshelf/vagrant/action/install.rb:33:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/builtin/provision.rb:76:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/plugins/providers/virtualbox/action/clear_forwarded_ports.rb:15:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/plugins/providers/virtualbox/action/set_name.rb:19:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/plugins/providers/virtualbox/action/clean_machine_folder.rb:17:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/plugins/providers/virtualbox/action/check_accessible.rb:18:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/builder.rb:116:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/runner.rb:69:in `block in run'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/util/busy.rb:19:in `busy'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/runner.rb:69:in `run'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/builtin/call.rb:51:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/builder.rb:116:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/runner.rb:69:in `block in run'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/util/busy.rb:19:in `busy'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/runner.rb:69:in `run'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/builtin/call.rb:51:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/builder.rb:116:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/runner.rb:69:in `block in run'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/util/busy.rb:19:in `busy'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/runner.rb:69:in `run'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/builtin/call.rb:51:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/builtin/box_check_outdated.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/plugins/providers/virtualbox/action/check_virtualbox.rb:17:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/builtin/call.rb:57:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/plugins/providers/virtualbox/action/check_virtualbox.rb:17:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/builtin/config_validate.rb:25:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Users/Daniel/.vagrant.d/gems/gems/vagrant-berkshelf-2.0.0.rc2/lib/berkshelf/vagrant/action/configure_chef.rb:23:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Users/Daniel/.vagrant.d/gems/gems/vagrant-berkshelf-2.0.0.rc2/lib/berkshelf/vagrant/action/load_shelf.rb:28:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Users/Daniel/.vagrant.d/gems/gems/vagrant-berkshelf-2.0.0.rc2/lib/berkshelf/vagrant/action/set_ui.rb:12:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/builtin/env_set.rb:19:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:95:in `block in finalize_action'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/builder.rb:116:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/runner.rb:69:in `block in run'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/util/busy.rb:19:in `busy'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/runner.rb:69:in `run'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/builtin/call.rb:51:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/plugins/providers/virtualbox/action/check_virtualbox.rb:17:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/warden.rb:34:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/builder.rb:116:in `call'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/runner.rb:69:in `block in run'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/util/busy.rb:19:in `busy'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/action/runner.rb:69:in `run'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/machine.rb:157:in `action'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/plugins/commands/reload/command.rb:37:in `block in execute'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/plugin/v2/command.rb:200:in `block in with_target_vms'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/plugin/v2/command.rb:194:in `each'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/plugin/v2/command.rb:194:in `with_target_vms'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/plugins/commands/reload/command.rb:36:in `execute'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/cli.rb:42:in `execute'
    from /Applications/Vagrant/embedded/gems/gems/vagrant-1.5.1/lib/vagrant/environment.rb:248:in `cli'
    from /Applications/Vagrant/bin/../embedded/gems/gems/vagrant-1.5.1/bin/vagrant:158:in `<main>'

Is there a quick patch I can use?

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.1.10.0)

    chefstyle was resolved to 1.7.4, which depends on
      rubocop (= 1.12.0) was resolved to 1.12.0, which depends on
        Ruby (>= 2.4.0)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Dependabot can't resolve your Ruby dependency files

Dependabot can't resolve your Ruby dependency files.

As a result, Dependabot couldn't update your dependencies.

The error Dependabot encountered was:

Bundler::VersionConflict with message: Bundler found conflicting requirements for the Ruby version:
  In Gemfile:
    Ruby (~> 2.1.10.0)

    chefstyle was resolved to 2.0.3, which depends on
      rubocop (= 1.14.0) was resolved to 1.14.0, which depends on
        Ruby (>= 2.5.0)

If you think the above is an error on Dependabot's side please don't hesitate to get in touch - we'll do whatever we can to fix it.

View the update logs.

Solve or Berkshelf issue

Problem is being reproduced in solve-2.0.3 only.

$ git clone https://github.com/acondrat/solveissue
$ cd solveissue
$ bundle
$ bundle exec berks
Resolving cookbook dependencies...
Fetching 'solveissue' from source at .
Fetching cookbook index from https://supermarket.chef.io...
/home/acondrat/.rvm/gems/ruby-2.1.8/gems/solve-2.0.3/lib/solve/ruby_solver.rb:144:in block in sort_dependencies': undefined methodpayload' for nil:NilClass (NoMethodError)
from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/solve-2.0.3/lib/solve/ruby_solver.rb:141:in each' from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/solve-2.0.3/lib/solve/ruby_solver.rb:141:insort_by'
from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/solve-2.0.3/lib/solve/ruby_solver.rb:141:in sort_dependencies' from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/molinillo-0.4.4/lib/molinillo/resolution.rb:131:inblock (2 levels) in class:Resolution'
from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/molinillo-0.4.4/lib/molinillo/resolution.rb:431:in push_state_for_requirements' from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/molinillo-0.4.4/lib/molinillo/resolution.rb:423:inrequire_nested_dependencies_for'
from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/molinillo-0.4.4/lib/molinillo/resolution.rb:411:in activate_spec' from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/molinillo-0.4.4/lib/molinillo/resolution.rb:353:inattempt_to_swap_possibility'
from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/molinillo-0.4.4/lib/molinillo/resolution.rb:333:in attempt_to_activate_existing_spec' from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/molinillo-0.4.4/lib/molinillo/resolution.rb:318:inattempt_to_activate'
from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/molinillo-0.4.4/lib/molinillo/resolution.rb:147:in process_topmost_state' from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/molinillo-0.4.4/lib/molinillo/resolution.rb:72:inresolve'
from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/molinillo-0.4.4/lib/molinillo/resolver.rb:42:in resolve' from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/solve-2.0.3/lib/solve/ruby_solver.rb:195:inresolve_with_error_wrapping'
from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/solve-2.0.3/lib/solve/ruby_solver.rb:75:in resolve' from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/solve-2.0.3/lib/solve.rb:64:init!'
from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/berkshelf-4.3.1/lib/berkshelf/resolver.rb:78:in resolve' from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/berkshelf-4.3.1/lib/berkshelf/installer.rb:175:ininstall_from_universe'
from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/berkshelf-4.3.1/lib/berkshelf/installer.rb:39:in run' from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/berkshelf-4.3.1/lib/berkshelf/berksfile.rb:421:ininstall'
from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/berkshelf-4.3.1/lib/berkshelf/cli.rb:143:in install' from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/thor-0.19.1/lib/thor/command.rb:27:inrun'
from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/thor-0.19.1/lib/thor/invocation.rb:126:in invoke_command' from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/thor-0.19.1/lib/thor.rb:359:indispatch'
from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/berkshelf-4.3.1/lib/berkshelf/cli.rb:52:in dispatch' from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/thor-0.19.1/lib/thor/base.rb:440:instart'
from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/berkshelf-4.3.1/lib/berkshelf/cli.rb:27:in execute!' from /home/acondrat/.rvm/gems/ruby-2.1.8/gems/berkshelf-4.3.1/bin/berks:5:in<top (required)>'
from /home/acondrat/.rvm/gems/ruby-2.1.8/bin/berks:23:in load' from /home/acondrat/.rvm/gems/ruby-2.1.8/bin/berks:23:in

'
from /home/acondrat/.rvm/gems/ruby-2.1.8/bin/ruby_executable_hooks:15:in eval' from /home/acondrat/.rvm/gems/ruby-2.1.8/bin/ruby_executable_hooks:15:in'

Works fine with solve-2.0.2.

It would be swell if there was a sorted version of the Solve.it! method

From my use it appears that Solve.it!(graph, cookbooklist) returns a list of cookbooks that if they were all uploaded, the dependencies would be covered. There does not appear to be any ordering though, so if they were uploaded in that order you can get failed dependency matches. I guess you could upload with --include-dependencies, but then you'd call upload multiple times with the same cookbooks potentially. Please let me know if I've overlooked something.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.