rubygems / bundler

Manage your Ruby application's gem dependencies
https://bundler.io
MIT License
4.88k stars 1.99k forks source link

bundler attempts to install gems which conflict with an explicit ruby version requirement #6471

Closed lamont-granquist closed 6 years ago

lamont-granquist commented 6 years ago

Simple example:

% cat Gemfile
source "https://rubygems.org"
ruby "2.3.7"
gem "berkshelf"
% bundle install
Fetching gem metadata from https://rubygems.org/.............
Fetching gem metadata from https://rubygems.org/..
Resolving dependencies...
Using public_suffix 3.0.2
Using addressable 2.5.2
Using buff-extensions 2.0.0
Using hashie 3.5.7
Using varia_model 0.6.0
Using buff-config 2.0.0
Using bundler 1.16.1
Using fuzzyurl 0.9.0
Using tomlrb 1.2.6
Using mixlib-config 2.2.6
Using mixlib-shellout 2.3.2
Using chef-config 14.0.190
Using libyajl2 1.2.0
Using ffi-yajl 2.3.1
Using mixlib-log 2.0.3
Using rack 2.0.4
Using uuidtools 2.1.5
Fetching chef-zero 14.0.1
Installing chef-zero 14.0.1
Gem::RuntimeRequirementNotMetError: chef-zero requires Ruby version >= 2.4.3. The current ruby version is 2.3.0.
An error occurred while installing chef-zero (14.0.1), and Bundler cannot continue.
Make sure that `gem install chef-zero -v '14.0.1'` succeeds before bundling.

In Gemfile:
  berkshelf was resolved to 6.3.1, which depends on
    chef was resolved to 14.0.190, which depends on
      chef-zero
% bundle --version
Bundler version 1.16.1

chef-14.0.190 is pinned >= 2.4.0 here:

https://github.com/chef/chef/blob/97c1dd6f1cac6d97e85d05039cad8b28596141ba/chef.gemspec#L16

so chef-14 shouldn't been in the solution set. But it only pins chef-zero to >= 13.0 here:

https://github.com/chef/chef/blob/97c1dd6f1cac6d97e85d05039cad8b28596141ba/chef.gemspec#L35

That itself should have allowed chef-zero 13.x versions which supported 2.3.x to install, but it selected the latest chef-zero-14.x which has been bumped to >= 2.4.0

lamont-granquist commented 6 years ago

In case it matters, I'm really on ruby-2.3.7 and don't have those gems installed for any versions (and couldn't install the versions that its picking up, so it must be getting those from the index):

8:42 coredump ~/test % gem uninstall chef
Gem 'chef' is not installed
git: rvm:ruby-2.3.7
8:43 coredump ~/test % gem uninstall ohai
Gem 'ohai' is not installed
git: rvm:ruby-2.3.7
8:43 coredump ~/test % gem uninstall chef-zero
Gem 'chef-zero' is not installed
git: rvm:ruby-2.3.7
8:43 coredump ~/test %
lamont-granquist commented 6 years ago

Also note that rubygems doesn't get this right either:

ERROR:  Error installing berkshelf:
    There are no versions of ohai (~> 14.0) compatible with your Ruby & RubyGems. Maybe try installing an older version of the gem you're looking for?
    ohai requires Ruby version >= 2.4. The current ruby version is 2.3.0.

The ohai pin there is because its selecting chef-14, which itself doesn't install on 2.3.x and then picking up the 14.x pin on ohai which blows up. The released version of berkshelf allows chef >= 13.6.52, which is accurate, there's an API we need in exactly that version and don't care if we're on 13 or 14.

This Gemfile solves fine with the manual pin:

source "https://rubygems.org"
ruby "2.3.7"
gem "berkshelf"
gem "chef", "~> 13"
lamont-granquist commented 6 years ago

So.....

I made a release of berkshelf 6.3.2 which pins to chef < 14 which is effectively the same as the that last Gemfile i posted with the manual pin. Now bundler/rubygems picks that version and its all happy.

The repro case now requires an explict pin onto 6.3.1:

% cat Gemfile
source "https://rubygems.org"
ruby "2.3.7"
gem "berkshelf", "= 6.3.1"
segiddins commented 6 years ago

This is happening for me since I'm getting a 429 and Bundler is having to fall back to the gem dependency endpoint

HTTP 429 Too Many Requests https://index.rubygems.org/info/buff-ruby_engine
Bundler::HTTPError: Net::HTTPTooManyRequests: <html>
<head><title>429 Too Many Requests</title></head>
<body bgcolor="white">
<center><h1>429 Too Many Requests</h1></center>
<hr><center>nginx</center>
</body>
</html>

/Users/segiddins/.gem/ruby/2.3.7/gems/bundler-1.16.1/lib/bundler/fetcher/downloader.rb:37:in `fetch'
  /Users/segiddins/.gem/ruby/2.3.7/gems/bundler-1.16.1/lib/bundler/fetcher/compact_index.rb:117:in `call'
  /Users/segiddins/.gem/ruby/2.3.7/gems/bundler-1.16.1/lib/bundler/compact_index_client/updater.rb:51:in `block in update'
  /Users/segiddins/.rubies/2.3.7/lib/ruby/2.3.0/tmpdir.rb:89:in `mktmpdir'
  /Users/segiddins/.gem/ruby/2.3.7/gems/bundler-1.16.1/lib/bundler/compact_index_client/updater.rb:31:in `update'
  /Users/segiddins/.gem/ruby/2.3.7/gems/bundler-1.16.1/lib/bundler/compact_index_client.rb:82:in `update'
  /Users/segiddins/.gem/ruby/2.3.7/gems/bundler-1.16.1/lib/bundler/compact_index_client.rb:98:in `update_info'
  /Users/segiddins/.gem/ruby/2.3.7/gems/bundler-1.16.1/lib/bundler/compact_index_client.rb:55:in `block in dependencies'
  /Users/segiddins/.gem/ruby/2.3.7/gems/bundler-1.16.1/lib/bundler/fetcher/compact_index.rb:88:in `block (3 levels) in compact_index_client'
  /Users/segiddins/.gem/ruby/2.3.7/gems/bundler-1.16.1/lib/bundler/worker.rb:64:in `apply_func'
  /Users/segiddins/.gem/ruby/2.3.7/gems/bundler-1.16.1/lib/bundler/worker.rb:59:in `block in process_queue'
  /Users/segiddins/.gem/ruby/2.3.7/gems/bundler-1.16.1/lib/bundler/worker.rb:56:in `loop'
  /Users/segiddins/.gem/ruby/2.3.7/gems/bundler-1.16.1/lib/bundler/worker.rb:56:in `process_queue'
  /Users/segiddins/.gem/ruby/2.3.7/gems/bundler-1.16.1/lib/bundler/worker.rb:90:in `block (2 levels) in create_threads'
lamont-granquist commented 6 years ago

here's my current verbose output if it help someone:

% bundle install --verbose
Running `bundle install --verbose` with bundler 1.16.1
Found changes from the lockfile, re-resolving dependencies because bundler is unlocking ruby
HTTP GET https://index.rubygems.org/versions
HTTP 206 Partial Content https://index.rubygems.org/versions
Fetching gem metadata from https://rubygems.org/
Looking up gems ["berkshelf"]
HTTP GET https://index.rubygems.org/info/berkshelf
HTTP 206 Partial Content https://index.rubygems.org/info/berkshelf
Looking up gems ["chef", "dep_selector", "minitar", "thor", "solve", "activesupport", "multi_json", "ridley", "vagrant", "activemodel", "chozo", "hashie", "yajl-ruby", "net-ssh-gateway", "moneta", "faraday", "json", "mixlib-config", "mixlib-shellout", "retryable", "celluloid", "addressable", "test-kitchen", "buff-shell_out", "rbzip2", "buff-config", "buff-extensions", "berkshelf-api-client", "octokit", "celluloid-io", "cleanroom", "httpclient", "mixlib-archive", "concurrent-ruby"]
HTTP GET https://index.rubygems.org/info/chef
HTTP 206 Partial Content https://index.rubygems.org/info/chef
Looking up gems ["ffi", "dep-selector-libgecode", "builder", "i18n", "memcache-client", "tzinfo", "minitest", "thread_safe", "method_source", "bcrypt-ruby", "tomlrb", "faraday_middleware", "multi_xml", "rash", "netrc", "sawyer", "semverse", "molinillo", "rack", "multipart-post", "git-style-binaries", "net-scp", "net-ssh", "tarruby", "virtualbox", "archive-tar-minitar", "json_pure", "mario", "erubis", "childprocess", "log4r", "buff-ruby_engine", "varia_model", "nio4r", "bundler", "dotenv", "nenv", "rspec-logsplit", "timers", "mixlib-authentication", "mixlib-log", "net-http-persistent", "winrm", "buff-ignore", "chef-config", "win32-api", "win32-process", "windows-api", "windows-pr", "wmi-lite", "functional-ruby", "ref", "foodcritic", "hashr", "highline", "librarian", "mixlib-cli", "fog", "pry", "safe_yaml", "rubyzip", "mixlib-install", "winrm-elevated", "winrm-fs", "echoe", "launchy", "rake", "rspec", "public_suffix", "facter", "celluloid-essentials", "celluloid-extras", "celluloid-fsm", "celluloid-pool", "celluloid-supervision", "extlib", "ohai", "ruby-openid", "stomp", "amqp", "bunny", "ruby-hmac", "rest-client", "uuidtools", "net-ssh-multi", "treetop", "rdp-ruby-wmi", "systemu", "win32-dir", "win32-event", "win32-mutex", "win32-service", "chef-zero", "diff-lcs", "puma", "win32-mmap", "mime-types", "ffi-yajl", "plist", "win32-eventlog", "rspec-core", "rspec-expectations", "rspec_junit_formatter", "rspec-mocks", "serverspec", "specinfra", "syslog-logger", "proxifier", "net-sftp", "iniparse", "iso8601"]
Looking up gems ["bcrypt", "hoe", "ZenTest", "RubyInline", "atomic", "uri_template", "oauth2", "roauth", "bones", "ruby_parser", "camping", "fcgi", "mongrel", "test-spec", "thin", "shoulda", "trollop", "needle", "jruby-pageant", "bcrypt_pbkdf", "rbnacl", "rbnacl-libsodium", "nokogiri", "spruz", "minitar-cli", "abstract", "dotenv-deployment", "hitimes", "handsoap", "rubyntlm", "uuid", "gssapi", "savon", "logging", "gyoku", "nori", "ruby-progressbar", "connection_pool", "test-unit", "fuzzyurl", "xml-simple", "gherkin", "gist", "pry-doc", "rak", "rufus-lru", "cucumber-core", "termios", "coderay", "win32console", "yard", "slop", "spoon", "artifactory", "mixlib-versioning", "excon", "formatador", "named-parameters", "google-api-client", "unicode", "fog-brightbox", "fog-core", "fog-json", "ipaddress", "fog-softlayer", "fog-radosgw", "fog-sakuracloud", "fog-profitbricks", "fog-terremark", "fog-vmfusion", "fog-voxel", "fog-xml", "opennebula", "fog-atmos", "fog-ecloud", "fog-storm_on_demand", "fog-aws", "fog-serverlove", "fog-riakcs", "fog-local", "fog-powerdns", "fog-google", "fog-dynect", "fog-xenserver", "fog-aliyun", "fog-vsphere", "fog-cloudatcost", "fog-openstack", "fog-rackspace", "fog-digitalocean", "fog-dnsimple", "fog-internet-archive", "fog-joyent", "fog-ovirt", "psych", "rubyforge", "rcov", "gemcutter", "allison", "rdoc", "CFPropertyList", "sys-admin", "win32-security", "cucumber", "spicycode-rcov", "syntax", "configuration", "coveralls", "rubocop", "celluloid-gems", "ruby-yadis", "eventmachine", "amq-client", "amq-protocol", "english", "facets", "polyglot", "net-dhcp", "http-cookie", "http-accept", "win32-ipc", "ffi-win32-extensions", "mime-types-data", "ptools", "libyajl2", "rspec-support", "net-telnet", "sfl", "rspec-its"]
HTTP GET https://index.rubygems.org/info/psych
HTTP 416 Range Not Satisfiable https://index.rubygems.org/info/psych
Bundler::HTTPError: Net::HTTPRequestedRangeNotSatisfiable
/Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/fetcher/downloader.rb:37:in `fetch'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/fetcher/compact_index.rb:117:in `call'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/compact_index_client/updater.rb:51:in `block in update'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/2.3.0/tmpdir.rb:89:in `mktmpdir'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/compact_index_client/updater.rb:31:in `update'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/compact_index_client.rb:82:in `update'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/compact_index_client.rb:98:in `update_info'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/compact_index_client.rb:55:in `block in dependencies'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/fetcher/compact_index.rb:88:in `block (3 levels) in compact_index_client'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/worker.rb:64:in `apply_func'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/worker.rb:59:in `block in process_queue'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/worker.rb:56:in `loop'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/worker.rb:56:in `process_queue'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/worker.rb:90:in `block (2 levels) in create_threads'
Query List: ["berkshelf"]
Query Gemcutter Dependency Endpoint API: berkshelf
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=berkshelf
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=berkshelf
Query List: ["chef", "concurrent-ruby", "mixlib-archive", "octokit", "thor", "solve", "ridley", "retryable", "minitar", "httpclient", "faraday", "cleanroom", "mixlib-shellout", "buff-extensions", "buff-config", "buff-shell_out", "berkshelf-api-client", "addressable", "activesupport", "chozo", "hashie", "rbzip2", "celluloid", "celluloid-io", "yajl-ruby", "multi_json", "vagrant", "moneta", "net-ssh-gateway", "mixlib-config", "json", "activemodel", "test-kitchen", "dep_selector"]
Query Gemcutter Dependency Endpoint API: chef,concurrent-ruby,mixlib-archive,octokit,thor,solve,ridley,retryable,minitar,httpclient,faraday,cleanroom,mixlib-shellout,buff-extensions,buff-config,buff-shell_out,berkshelf-api-client,addressable,activesupport,chozo,hashie,rbzip2,celluloid,celluloid-io,yajl-ruby,multi_json,vagrant,moneta,net-ssh-gateway,mixlib-config,json,activemodel,test-kitchen,dep_selector
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=activemodel%2Cactivesupport%2Caddressable%2Cberkshelf-api-client%2Cbuff-config%2Cbuff-extensions%2Cbuff-shell_out%2Ccelluloid%2Ccelluloid-io%2Cchef%2Cchozo%2Ccleanroom%2Cconcurrent-ruby%2Cdep_selector%2Cfaraday%2Chashie%2Chttpclient%2Cjson%2Cminitar%2Cmixlib-archive%2Cmixlib-config%2Cmixlib-shellout%2Cmoneta%2Cmulti_json%2Cnet-ssh-gateway%2Coctokit%2Crbzip2%2Cretryable%2Cridley%2Csolve%2Ctest-kitchen%2Cthor%2Cvagrant%2Cyajl-ruby
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=activemodel%2Cactivesupport%2Caddressable%2Cberkshelf-api-client%2Cbuff-config%2Cbuff-extensions%2Cbuff-shell_out%2Ccelluloid%2Ccelluloid-io%2Cchef%2Cchozo%2Ccleanroom%2Cconcurrent-ruby%2Cdep_selector%2Cfaraday%2Chashie%2Chttpclient%2Cjson%2Cminitar%2Cmixlib-archive%2Cmixlib-config%2Cmixlib-shellout%2Cmoneta%2Cmulti_json%2Cnet-ssh-gateway%2Coctokit%2Crbzip2%2Cretryable%2Cridley%2Csolve%2Ctest-kitchen%2Cthor%2Cvagrant%2Cyajl-ruby
Query List: ["builder", "i18n", "bcrypt-ruby", "minitest", "tzinfo", "thread_safe", "method_source", "memcache-client", "rake", "rspec", "launchy", "public_suffix", "varia_model", "buff-ruby_engine", "timers", "celluloid-extras", "celluloid-fsm", "celluloid-pool", "celluloid-supervision", "celluloid-essentials", "rspec-logsplit", "dotenv", "nenv", "bundler", "facter", "nio4r", "win32-eventlog", "wmi-lite", "win32-mmap", "win32-service", "win32-process", "win32-mutex", "win32-event", "win32-dir", "win32-api", "windows-pr", "windows-api", "ffi", "specinfra", "serverspec", "rspec_junit_formatter", "rspec-mocks", "rspec-expectations", "rspec-core", "plist", "pry", "chef-zero", "diff-lcs", "erubis", "highline", "net-ssh-multi", "net-ssh", "ffi-yajl", "ohai", "mixlib-authentication", "mixlib-log", "mixlib-cli", "proxifier", "uuidtools", "syslog-logger", "iso8601", "iniparse", "net-sftp", "chef-config", "rest-client", "bunny", "treetop", "mime-types", "puma", "extlib", "rdp-ruby-wmi", "ruby-openid", "stomp", "systemu", "amqp", "ruby-hmac", "ref", "functional-ruby", "dep-selector-libgecode", "multipart-post", "rack", "tomlrb", "echoe", "sawyer", "faraday_middleware", "multi_xml", "netrc", "rash", "semverse", "buff-ignore", "net-http-persistent", "winrm", "molinillo", "mixlib-install", "safe_yaml", "net-scp", "foodcritic", "hashr", "librarian", "rubyzip", "winrm-fs", "winrm-elevated", "fog", "archive-tar-minitar", "virtualbox", "mario", "childprocess", "log4r", "git-style-binaries", "tarruby", "json_pure"]
Query Gemcutter Dependency Endpoint API: builder,i18n,bcrypt-ruby,minitest,tzinfo,thread_safe,method_source,memcache-client,rake,rspec,launchy,public_suffix,varia_model,buff-ruby_engine,timers,celluloid-extras,celluloid-fsm,celluloid-pool,celluloid-supervision,celluloid-essentials,rspec-logsplit,dotenv,nenv,bundler,facter,nio4r,win32-eventlog,wmi-lite,win32-mmap,win32-service,win32-process,win32-mutex,win32-event,win32-dir,win32-api,windows-pr,windows-api,ffi,specinfra,serverspec,rspec_junit_formatter,rspec-mocks,rspec-expectations,rspec-core,plist,pry,chef-zero,diff-lcs,erubis,highline,net-ssh-multi,net-ssh,ffi-yajl,ohai,mixlib-authentication,mixlib-log,mixlib-cli,proxifier,uuidtools,syslog-logger,iso8601,iniparse,net-sftp,chef-config,rest-client,bunny,treetop,mime-types,puma,extlib,rdp-ruby-wmi,ruby-openid,stomp,systemu,amqp,ruby-hmac,ref,functional-ruby,dep-selector-libgecode,multipart-post,rack,tomlrb,echoe,sawyer,faraday_middleware,multi_xml,netrc,rash,semverse,buff-ignore,net-http-persistent,winrm,molinillo,mixlib-install,safe_yaml,net-scp,foodcritic,hashr,librarian,rubyzip,winrm-fs,winrm-elevated,fog,archive-tar-minitar,virtualbox,mario,childprocess,log4r,git-style-binaries,tarruby,json_pure
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=bcrypt-ruby%2Cbuff-ruby_engine%2Cbuilder%2Cbundler%2Ccelluloid-essentials%2Ccelluloid-extras%2Ccelluloid-fsm%2Ccelluloid-pool%2Ccelluloid-supervision%2Cchef-zero%2Cdiff-lcs%2Cdotenv%2Cerubis%2Cfacter%2Cffi%2Chighline%2Ci18n%2Claunchy%2Cmemcache-client%2Cmethod_source%2Cminitest%2Cnenv%2Cnio4r%2Cplist%2Cpry%2Cpublic_suffix%2Crake%2Crspec%2Crspec-core%2Crspec-expectations%2Crspec-logsplit%2Crspec-mocks%2Crspec_junit_formatter%2Cserverspec%2Cspecinfra%2Cthread_safe%2Ctimers%2Ctzinfo%2Cvaria_model%2Cwin32-api%2Cwin32-dir%2Cwin32-event%2Cwin32-eventlog%2Cwin32-mmap%2Cwin32-mutex%2Cwin32-process%2Cwin32-service%2Cwindows-api%2Cwindows-pr%2Cwmi-lite
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=bcrypt-ruby%2Cbuff-ruby_engine%2Cbuilder%2Cbundler%2Ccelluloid-essentials%2Ccelluloid-extras%2Ccelluloid-fsm%2Ccelluloid-pool%2Ccelluloid-supervision%2Cchef-zero%2Cdiff-lcs%2Cdotenv%2Cerubis%2Cfacter%2Cffi%2Chighline%2Ci18n%2Claunchy%2Cmemcache-client%2Cmethod_source%2Cminitest%2Cnenv%2Cnio4r%2Cplist%2Cpry%2Cpublic_suffix%2Crake%2Crspec%2Crspec-core%2Crspec-expectations%2Crspec-logsplit%2Crspec-mocks%2Crspec_junit_formatter%2Cserverspec%2Cspecinfra%2Cthread_safe%2Ctimers%2Ctzinfo%2Cvaria_model%2Cwin32-api%2Cwin32-dir%2Cwin32-event%2Cwin32-eventlog%2Cwin32-mmap%2Cwin32-mutex%2Cwin32-process%2Cwin32-service%2Cwindows-api%2Cwindows-pr%2Cwmi-lite
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=amqp%2Cbuff-ignore%2Cbunny%2Cchef-config%2Cdep-selector-libgecode%2Cechoe%2Cextlib%2Cfaraday_middleware%2Cffi-yajl%2Cfoodcritic%2Cfunctional-ruby%2Chashr%2Ciniparse%2Ciso8601%2Clibrarian%2Cmime-types%2Cmixlib-authentication%2Cmixlib-cli%2Cmixlib-install%2Cmixlib-log%2Cmolinillo%2Cmulti_xml%2Cmultipart-post%2Cnet-http-persistent%2Cnet-scp%2Cnet-sftp%2Cnet-ssh%2Cnet-ssh-multi%2Cnetrc%2Cohai%2Cproxifier%2Cpuma%2Crack%2Crash%2Crdp-ruby-wmi%2Cref%2Crest-client%2Cruby-hmac%2Cruby-openid%2Crubyzip%2Csafe_yaml%2Csawyer%2Csemverse%2Cstomp%2Csyslog-logger%2Csystemu%2Ctomlrb%2Ctreetop%2Cuuidtools%2Cwinrm
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=amqp%2Cbuff-ignore%2Cbunny%2Cchef-config%2Cdep-selector-libgecode%2Cechoe%2Cextlib%2Cfaraday_middleware%2Cffi-yajl%2Cfoodcritic%2Cfunctional-ruby%2Chashr%2Ciniparse%2Ciso8601%2Clibrarian%2Cmime-types%2Cmixlib-authentication%2Cmixlib-cli%2Cmixlib-install%2Cmixlib-log%2Cmolinillo%2Cmulti_xml%2Cmultipart-post%2Cnet-http-persistent%2Cnet-scp%2Cnet-sftp%2Cnet-ssh%2Cnet-ssh-multi%2Cnetrc%2Cohai%2Cproxifier%2Cpuma%2Crack%2Crash%2Crdp-ruby-wmi%2Cref%2Crest-client%2Cruby-hmac%2Cruby-openid%2Crubyzip%2Csafe_yaml%2Csawyer%2Csemverse%2Cstomp%2Csyslog-logger%2Csystemu%2Ctomlrb%2Ctreetop%2Cuuidtools%2Cwinrm
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=archive-tar-minitar%2Cchildprocess%2Cfog%2Cgit-style-binaries%2Cjson_pure%2Clog4r%2Cmario%2Ctarruby%2Cvirtualbox%2Cwinrm-elevated%2Cwinrm-fs
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=archive-tar-minitar%2Cchildprocess%2Cfog%2Cgit-style-binaries%2Cjson_pure%2Clog4r%2Cmario%2Ctarruby%2Cvirtualbox%2Cwinrm-elevated%2Cwinrm-fs
Query List: ["bcrypt", "celluloid-gems", "coveralls", "rubocop", "thin", "dotenv-deployment", "abstract", "CFPropertyList", "win32-security", "win32console", "sys-admin", "bones", "termios", "spoon", "configuration", "hoe", "ZenTest", "RubyInline", "ruby_parser", "slop", "coderay", "yard", "cucumber", "spicycode-rcov", "syntax", "rspec-support", "rspec-its", "sfl", "net-telnet", "atomic", "hitimes", "test-unit", "win32-ipc", "ptools", "ffi-win32-extensions", "amq-protocol", "eventmachine", "amq-client", "fuzzyurl", "rubyforge", "allison", "rdoc", "gemcutter", "rcov", "english", "oauth2", "roauth", "libyajl2", "rufus-lru", "nokogiri", "cucumber-core", "gherkin", "gist", "rak", "pry-doc", "xml-simple", "mime-types-data", "mixlib-versioning", "artifactory", "connection_pool", "needle", "bcrypt_pbkdf", "rbnacl", "rbnacl-libsodium", "jruby-pageant", "ipaddress", "net-dhcp", "test-spec", "camping", "fcgi", "mongrel", "http-cookie", "http-accept", "ruby-yadis", "psych", "uri_template", "polyglot", "facets", "gyoku", "nori", "logging", "rubyntlm", "gssapi", "savon", "uuid", "handsoap", "ruby-progressbar", "minitar-cli", "fog-xenserver", "fog-vsphere", "fog-voxel", "fog-vmfusion", "fog-terremark", "fog-storm_on_demand", "fog-softlayer", "fog-serverlove", "fog-sakuracloud", "fog-riakcs", "fog-radosgw", "fog-rackspace", "fog-profitbricks", "fog-powerdns", "fog-ovirt", "fog-openstack", "fog-local", "fog-joyent", "fog-internet-archive", "fog-google", "fog-ecloud", "fog-dynect", "fog-dnsimple", "fog-digitalocean", "fog-cloudatcost", "fog-brightbox", "fog-aws", "fog-atmos", "fog-aliyun", "fog-xml", "fog-json", "fog-core", "excon", "formatador", "unicode", "google-api-client", "named-parameters", "opennebula", "trollop", "shoulda", "spruz"]
Query Gemcutter Dependency Endpoint API: bcrypt,celluloid-gems,coveralls,rubocop,thin,dotenv-deployment,abstract,CFPropertyList,win32-security,win32console,sys-admin,bones,termios,spoon,configuration,hoe,ZenTest,RubyInline,ruby_parser,slop,coderay,yard,cucumber,spicycode-rcov,syntax,rspec-support,rspec-its,sfl,net-telnet,atomic,hitimes,test-unit,win32-ipc,ptools,ffi-win32-extensions,amq-protocol,eventmachine,amq-client,fuzzyurl,rubyforge,allison,rdoc,gemcutter,rcov,english,oauth2,roauth,libyajl2,rufus-lru,nokogiri,cucumber-core,gherkin,gist,rak,pry-doc,xml-simple,mime-types-data,mixlib-versioning,artifactory,connection_pool,needle,bcrypt_pbkdf,rbnacl,rbnacl-libsodium,jruby-pageant,ipaddress,net-dhcp,test-spec,camping,fcgi,mongrel,http-cookie,http-accept,ruby-yadis,psych,uri_template,polyglot,facets,gyoku,nori,logging,rubyntlm,gssapi,savon,uuid,handsoap,ruby-progressbar,minitar-cli,fog-xenserver,fog-vsphere,fog-voxel,fog-vmfusion,fog-terremark,fog-storm_on_demand,fog-softlayer,fog-serverlove,fog-sakuracloud,fog-riakcs,fog-radosgw,fog-rackspace,fog-profitbricks,fog-powerdns,fog-ovirt,fog-openstack,fog-local,fog-joyent,fog-internet-archive,fog-google,fog-ecloud,fog-dynect,fog-dnsimple,fog-digitalocean,fog-cloudatcost,fog-brightbox,fog-aws,fog-atmos,fog-aliyun,fog-xml,fog-json,fog-core,excon,formatador,unicode,google-api-client,named-parameters,opennebula,trollop,shoulda,spruz
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=CFPropertyList%2CRubyInline%2CZenTest%2Cabstract%2Callison%2Camq-client%2Camq-protocol%2Catomic%2Cbcrypt%2Cbones%2Ccelluloid-gems%2Ccoderay%2Cconfiguration%2Ccoveralls%2Ccucumber%2Cdotenv-deployment%2Cenglish%2Ceventmachine%2Cffi-win32-extensions%2Cfuzzyurl%2Cgemcutter%2Chitimes%2Choe%2Clibyajl2%2Cnet-telnet%2Cnokogiri%2Coauth2%2Cptools%2Crcov%2Crdoc%2Croauth%2Crspec-its%2Crspec-support%2Crubocop%2Cruby_parser%2Crubyforge%2Crufus-lru%2Csfl%2Cslop%2Cspicycode-rcov%2Cspoon%2Csyntax%2Csys-admin%2Ctermios%2Ctest-unit%2Cthin%2Cwin32-ipc%2Cwin32-security%2Cwin32console%2Cyard
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=CFPropertyList%2CRubyInline%2CZenTest%2Cabstract%2Callison%2Camq-client%2Camq-protocol%2Catomic%2Cbcrypt%2Cbones%2Ccelluloid-gems%2Ccoderay%2Cconfiguration%2Ccoveralls%2Ccucumber%2Cdotenv-deployment%2Cenglish%2Ceventmachine%2Cffi-win32-extensions%2Cfuzzyurl%2Cgemcutter%2Chitimes%2Choe%2Clibyajl2%2Cnet-telnet%2Cnokogiri%2Coauth2%2Cptools%2Crcov%2Crdoc%2Croauth%2Crspec-its%2Crspec-support%2Crubocop%2Cruby_parser%2Crubyforge%2Crufus-lru%2Csfl%2Cslop%2Cspicycode-rcov%2Cspoon%2Csyntax%2Csys-admin%2Ctermios%2Ctest-unit%2Cthin%2Cwin32-ipc%2Cwin32-security%2Cwin32console%2Cyard
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=artifactory%2Cbcrypt_pbkdf%2Ccamping%2Cconnection_pool%2Ccucumber-core%2Cfacets%2Cfcgi%2Cfog-rackspace%2Cfog-radosgw%2Cfog-riakcs%2Cfog-sakuracloud%2Cfog-serverlove%2Cfog-softlayer%2Cfog-storm_on_demand%2Cfog-terremark%2Cfog-vmfusion%2Cfog-voxel%2Cfog-vsphere%2Cfog-xenserver%2Cgherkin%2Cgist%2Cgssapi%2Cgyoku%2Chandsoap%2Chttp-accept%2Chttp-cookie%2Cipaddress%2Cjruby-pageant%2Clogging%2Cmime-types-data%2Cminitar-cli%2Cmixlib-versioning%2Cmongrel%2Cneedle%2Cnet-dhcp%2Cnori%2Cpolyglot%2Cpry-doc%2Cpsych%2Crak%2Crbnacl%2Crbnacl-libsodium%2Cruby-progressbar%2Cruby-yadis%2Crubyntlm%2Csavon%2Ctest-spec%2Curi_template%2Cuuid%2Cxml-simple
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=artifactory%2Cbcrypt_pbkdf%2Ccamping%2Cconnection_pool%2Ccucumber-core%2Cfacets%2Cfcgi%2Cfog-rackspace%2Cfog-radosgw%2Cfog-riakcs%2Cfog-sakuracloud%2Cfog-serverlove%2Cfog-softlayer%2Cfog-storm_on_demand%2Cfog-terremark%2Cfog-vmfusion%2Cfog-voxel%2Cfog-vsphere%2Cfog-xenserver%2Cgherkin%2Cgist%2Cgssapi%2Cgyoku%2Chandsoap%2Chttp-accept%2Chttp-cookie%2Cipaddress%2Cjruby-pageant%2Clogging%2Cmime-types-data%2Cminitar-cli%2Cmixlib-versioning%2Cmongrel%2Cneedle%2Cnet-dhcp%2Cnori%2Cpolyglot%2Cpry-doc%2Cpsych%2Crak%2Crbnacl%2Crbnacl-libsodium%2Cruby-progressbar%2Cruby-yadis%2Crubyntlm%2Csavon%2Ctest-spec%2Curi_template%2Cuuid%2Cxml-simple
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=excon%2Cfog-aliyun%2Cfog-atmos%2Cfog-aws%2Cfog-brightbox%2Cfog-cloudatcost%2Cfog-core%2Cfog-digitalocean%2Cfog-dnsimple%2Cfog-dynect%2Cfog-ecloud%2Cfog-google%2Cfog-internet-archive%2Cfog-joyent%2Cfog-json%2Cfog-local%2Cfog-openstack%2Cfog-ovirt%2Cfog-powerdns%2Cfog-profitbricks%2Cfog-xml%2Cformatador%2Cgoogle-api-client%2Cnamed-parameters%2Copennebula%2Cshoulda%2Cspruz%2Ctrollop%2Cunicode
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=excon%2Cfog-aliyun%2Cfog-atmos%2Cfog-aws%2Cfog-brightbox%2Cfog-cloudatcost%2Cfog-core%2Cfog-digitalocean%2Cfog-dnsimple%2Cfog-dynect%2Cfog-ecloud%2Cfog-google%2Cfog-internet-archive%2Cfog-joyent%2Cfog-json%2Cfog-local%2Cfog-openstack%2Cfog-ovirt%2Cfog-powerdns%2Cfog-profitbricks%2Cfog-xml%2Cformatador%2Cgoogle-api-client%2Cnamed-parameters%2Copennebula%2Cshoulda%2Cspruz%2Ctrollop%2Cunicode
Query List: ["libxml-ruby", "loquacious", "little-plugger", "bones-git", "bones-extras", "term-ansicolor", "simplecov", "colorize", "tins", "cucumber-expressions", "cucumber-wire", "multi_test", "event-bus", "gherkin3", "language", "rake-compiler", "mkrf", "weakling", "mini_portile2", "mini_portile", "pkg-config", "racc", "rexical", "tenderlove-frex", "jwt", "httpauth", "faraday-middleware", "win32-file", "unicode-display_width", "rainbow", "powerpack", "parser", "parallel", "astrolabe", "backports", "sexp_processor", "ParseTree", "power_assert", "daemons", "eventmachine-le", "http_parser.rb", "preforker", "mab", "markaby", "metaid", "activerecord", "cucumber-tag_expressions", "pry-debugger", "fission", "rbvmomi", "domain_name", "sqlite3", "flexmock", "lockfile", "powerbar", "gem_plugin", "cgi_multipart_eof_fix", "fastthread", "pcap", "jar-dependencies", "akami", "wasabi", "httpi", "crack", "hpricot", "apricoteatsgorilla", "rubiii-apricoteatsgorilla", "mocha", "macaddr", "inflecto", "xmlrpc", "rbovirt", "ovirt-engine-sdk", "googleauth", "retriable", "representable", "memoist", "hurley", "autoparse", "signet", "httpadapter", "sinatra", "liquid", "virtus", "shoulda-context", "shoulda-matchers", "curses"]
Query Gemcutter Dependency Endpoint API: libxml-ruby,loquacious,little-plugger,bones-git,bones-extras,term-ansicolor,simplecov,colorize,tins,cucumber-expressions,cucumber-wire,multi_test,event-bus,gherkin3,language,rake-compiler,mkrf,weakling,mini_portile2,mini_portile,pkg-config,racc,rexical,tenderlove-frex,jwt,httpauth,faraday-middleware,win32-file,unicode-display_width,rainbow,powerpack,parser,parallel,astrolabe,backports,sexp_processor,ParseTree,power_assert,daemons,eventmachine-le,http_parser.rb,preforker,mab,markaby,metaid,activerecord,cucumber-tag_expressions,pry-debugger,fission,rbvmomi,domain_name,sqlite3,flexmock,lockfile,powerbar,gem_plugin,cgi_multipart_eof_fix,fastthread,pcap,jar-dependencies,akami,wasabi,httpi,crack,hpricot,apricoteatsgorilla,rubiii-apricoteatsgorilla,mocha,macaddr,inflecto,xmlrpc,rbovirt,ovirt-engine-sdk,googleauth,retriable,representable,memoist,hurley,autoparse,signet,httpadapter,sinatra,liquid,virtus,shoulda-context,shoulda-matchers,curses
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=ParseTree%2Cactiverecord%2Castrolabe%2Cbackports%2Cbones-extras%2Cbones-git%2Ccolorize%2Ccucumber-expressions%2Ccucumber-tag_expressions%2Ccucumber-wire%2Cdaemons%2Cevent-bus%2Ceventmachine-le%2Cfaraday-middleware%2Cfission%2Cgherkin3%2Chttp_parser.rb%2Chttpauth%2Cjwt%2Clanguage%2Clibxml-ruby%2Clittle-plugger%2Cloquacious%2Cmab%2Cmarkaby%2Cmetaid%2Cmini_portile%2Cmini_portile2%2Cmkrf%2Cmulti_test%2Cparallel%2Cparser%2Cpkg-config%2Cpower_assert%2Cpowerpack%2Cpreforker%2Cpry-debugger%2Cracc%2Crainbow%2Crake-compiler%2Crbvmomi%2Crexical%2Csexp_processor%2Csimplecov%2Ctenderlove-frex%2Cterm-ansicolor%2Ctins%2Cunicode-display_width%2Cweakling%2Cwin32-file
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=ParseTree%2Cactiverecord%2Castrolabe%2Cbackports%2Cbones-extras%2Cbones-git%2Ccolorize%2Ccucumber-expressions%2Ccucumber-tag_expressions%2Ccucumber-wire%2Cdaemons%2Cevent-bus%2Ceventmachine-le%2Cfaraday-middleware%2Cfission%2Cgherkin3%2Chttp_parser.rb%2Chttpauth%2Cjwt%2Clanguage%2Clibxml-ruby%2Clittle-plugger%2Cloquacious%2Cmab%2Cmarkaby%2Cmetaid%2Cmini_portile%2Cmini_portile2%2Cmkrf%2Cmulti_test%2Cparallel%2Cparser%2Cpkg-config%2Cpower_assert%2Cpowerpack%2Cpreforker%2Cpry-debugger%2Cracc%2Crainbow%2Crake-compiler%2Crbvmomi%2Crexical%2Csexp_processor%2Csimplecov%2Ctenderlove-frex%2Cterm-ansicolor%2Ctins%2Cunicode-display_width%2Cweakling%2Cwin32-file
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=akami%2Capricoteatsgorilla%2Cautoparse%2Ccgi_multipart_eof_fix%2Ccrack%2Ccurses%2Cdomain_name%2Cfastthread%2Cflexmock%2Cgem_plugin%2Cgoogleauth%2Chpricot%2Chttpadapter%2Chttpi%2Churley%2Cinflecto%2Cjar-dependencies%2Cliquid%2Clockfile%2Cmacaddr%2Cmemoist%2Cmocha%2Covirt-engine-sdk%2Cpcap%2Cpowerbar%2Crbovirt%2Crepresentable%2Cretriable%2Crubiii-apricoteatsgorilla%2Cshoulda-context%2Cshoulda-matchers%2Csignet%2Csinatra%2Csqlite3%2Cvirtus%2Cwasabi%2Cxmlrpc
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=akami%2Capricoteatsgorilla%2Cautoparse%2Ccgi_multipart_eof_fix%2Ccrack%2Ccurses%2Cdomain_name%2Cfastthread%2Cflexmock%2Cgem_plugin%2Cgoogleauth%2Chpricot%2Chttpadapter%2Chttpi%2Churley%2Cinflecto%2Cjar-dependencies%2Cliquid%2Clockfile%2Cmacaddr%2Cmemoist%2Cmocha%2Covirt-engine-sdk%2Cpcap%2Cpowerbar%2Crbovirt%2Crepresentable%2Cretriable%2Crubiii-apricoteatsgorilla%2Cshoulda-context%2Cshoulda-matchers%2Csignet%2Csinatra%2Csqlite3%2Cvirtus%2Cwasabi%2Cxmlrpc
Query List: ["SexpProcessor", "arel", "activerecord-deprecated_finders", "bones-rcov", "bones-rubyforge", "bones-rspec", "bones-zentest", "git", "ast", "pattern-match", "debugger", "cdb-full", "tokyocabinet", "docile", "simplecov-html", "win32-file-stat", "unf", "os", "socksify", "pyu-ntlm-http", "ntlm-http", "ruby-maven", "metaclass", "curb", "ansi", "uber", "declarative", "hooks", "declarative-option", "bourne", "tilt", "rack-protection", "mustermann", "shotgun", "rack-test", "descendants_tracker", "axiom-types", "coercible", "equalizer"]
Query Gemcutter Dependency Endpoint API: SexpProcessor,arel,activerecord-deprecated_finders,bones-rcov,bones-rubyforge,bones-rspec,bones-zentest,git,ast,pattern-match,debugger,cdb-full,tokyocabinet,docile,simplecov-html,win32-file-stat,unf,os,socksify,pyu-ntlm-http,ntlm-http,ruby-maven,metaclass,curb,ansi,uber,declarative,hooks,declarative-option,bourne,tilt,rack-protection,mustermann,shotgun,rack-test,descendants_tracker,axiom-types,coercible,equalizer
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=SexpProcessor%2Cactiverecord-deprecated_finders%2Cansi%2Carel%2Cast%2Caxiom-types%2Cbones-rcov%2Cbones-rspec%2Cbones-rubyforge%2Cbones-zentest%2Cbourne%2Ccdb-full%2Ccoercible%2Ccurb%2Cdebugger%2Cdeclarative%2Cdeclarative-option%2Cdescendants_tracker%2Cdocile%2Cequalizer%2Cgit%2Chooks%2Cmetaclass%2Cmustermann%2Cntlm-http%2Cos%2Cpattern-match%2Cpyu-ntlm-http%2Crack-protection%2Crack-test%2Cruby-maven%2Cshotgun%2Csimplecov-html%2Csocksify%2Ctilt%2Ctokyocabinet%2Cuber%2Cunf%2Cwin32-file-stat
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=SexpProcessor%2Cactiverecord-deprecated_finders%2Cansi%2Carel%2Cast%2Caxiom-types%2Cbones-rcov%2Cbones-rspec%2Cbones-rubyforge%2Cbones-zentest%2Cbourne%2Ccdb-full%2Ccoercible%2Ccurb%2Cdebugger%2Cdeclarative%2Cdeclarative-option%2Cdescendants_tracker%2Cdocile%2Cequalizer%2Cgit%2Chooks%2Cmetaclass%2Cmustermann%2Cntlm-http%2Cos%2Cpattern-match%2Cpyu-ntlm-http%2Crack-protection%2Crack-test%2Cruby-maven%2Cshotgun%2Csimplecov-html%2Csocksify%2Ctilt%2Ctokyocabinet%2Cuber%2Cunf%2Cwin32-file-stat
Query List: ["ice_nine", "columnize", "debugger-ruby_core_source", "debugger-linecache", "ruby_core_source", "adamantium", "tool", "escape_utils", "ruby-maven-libs", "maven-tools", "unf_ext"]
Query Gemcutter Dependency Endpoint API: ice_nine,columnize,debugger-ruby_core_source,debugger-linecache,ruby_core_source,adamantium,tool,escape_utils,ruby-maven-libs,maven-tools,unf_ext
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=adamantium%2Ccolumnize%2Cdebugger-linecache%2Cdebugger-ruby_core_source%2Cescape_utils%2Cice_nine%2Cmaven-tools%2Cruby-maven-libs%2Cruby_core_source%2Ctool%2Cunf_ext
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=adamantium%2Ccolumnize%2Cdebugger-linecache%2Cdebugger-ruby_core_source%2Cescape_utils%2Cice_nine%2Cmaven-tools%2Cruby-maven-libs%2Cruby_core_source%2Ctool%2Cunf_ext
Query List: ["memoizable"]
Query Gemcutter Dependency Endpoint API: memoizable
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=memoizable
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=memoizable
Query List: []
Double checking for ["bundler"] in rubygems repository https://rubygems.org/ or installed locally
Fetching gem metadata from https://rubygems.org/
HTTP GET https://index.rubygems.org/api/v1/dependencies
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies
Query List: ["bundler"]
Query Gemcutter Dependency Endpoint API: bundler
HTTP GET https://index.rubygems.org/api/v1/dependencies?gems=bundler
HTTP 200 OK https://index.rubygems.org/api/v1/dependencies?gems=bundler
Query List: []
Resolving dependencies...
Using public_suffix 3.0.2
0:  public_suffix (3.0.2) from /Users/lamont/.rvm/gems/ruby-2.3.7/specifications/public_suffix-3.0.2.gemspec
Using addressable 2.5.2
0:  addressable (2.5.2) from /Users/lamont/.rvm/gems/ruby-2.3.7/specifications/addressable-2.5.2.gemspec
Using buff-extensions 2.0.0
0:  buff-extensions (2.0.0) from /Users/lamont/.rvm/gems/ruby-2.3.7/specifications/buff-extensions-2.0.0.gemspec
Using hashie 3.5.7
0:  hashie (3.5.7) from /Users/lamont/.rvm/gems/ruby-2.3.7/specifications/hashie-3.5.7.gemspec
Using varia_model 0.6.0
0:  varia_model (0.6.0) from /Users/lamont/.rvm/gems/ruby-2.3.7/specifications/varia_model-0.6.0.gemspec
Using buff-config 2.0.0
0:  buff-config (2.0.0) from /Users/lamont/.rvm/gems/ruby-2.3.7/specifications/buff-config-2.0.0.gemspec
Using bundler 1.16.1
0:  bundler (1.16.1) from /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/gems/2.3.0/specifications/default/bundler-1.16.1.gemspec
Using fuzzyurl 0.9.0
0:  fuzzyurl (0.9.0) from /Users/lamont/.rvm/gems/ruby-2.3.7/specifications/fuzzyurl-0.9.0.gemspec
Using tomlrb 1.2.6
0:  tomlrb (1.2.6) from /Users/lamont/.rvm/gems/ruby-2.3.7/specifications/tomlrb-1.2.6.gemspec
Using mixlib-config 2.2.6
0:  mixlib-config (2.2.6) from /Users/lamont/.rvm/gems/ruby-2.3.7/specifications/mixlib-config-2.2.6.gemspec
Using mixlib-shellout 2.3.2
0:  mixlib-shellout (2.3.2) from /Users/lamont/.rvm/gems/ruby-2.3.7/specifications/mixlib-shellout-2.3.2.gemspec
Using chef-config 14.0.190
0:  chef-config (14.0.190) from /Users/lamont/.rvm/gems/ruby-2.3.7/specifications/chef-config-14.0.190.gemspec
Using libyajl2 1.2.0
0:  libyajl2 (1.2.0) from /Users/lamont/.rvm/gems/ruby-2.3.7/specifications/libyajl2-1.2.0.gemspec
Using ffi-yajl 2.3.1
0:  ffi-yajl (2.3.1) from /Users/lamont/.rvm/gems/ruby-2.3.7/specifications/ffi-yajl-2.3.1.gemspec
Using mixlib-log 2.0.3
0:  mixlib-log (2.0.3) from /Users/lamont/.rvm/gems/ruby-2.3.7/specifications/mixlib-log-2.0.3.gemspec
Using rack 2.0.4
0:  rack (2.0.4) from /Users/lamont/.rvm/gems/ruby-2.3.7/specifications/rack-2.0.4.gemspec
Using uuidtools 2.1.5
0:  uuidtools (2.1.5) from /Users/lamont/.rvm/gems/ruby-2.3.7/specifications/uuidtools-2.1.5.gemspec
Fetching chef-zero 14.0.1
Installing chef-zero 14.0.1
Gem::RuntimeRequirementNotMetError: chef-zero requires Ruby version >= 2.4.3. The current ruby version is 2.3.0.
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/rubygems/installer.rb:619:in `ensure_required_ruby_version_met'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/rubygems/installer.rb:851:in `pre_install_checks'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/rubygems_gem_installer.rb:18:in `pre_install_checks'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/rubygems/installer.rb:281:in `install'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/source/rubygems.rb:153:in `block in install'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/rubygems_integration.rb:217:in `preserve_paths'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/source/rubygems.rb:142:in `install'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/installer/gem_installer.rb:56:in `install'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/installer/gem_installer.rb:16:in `install_from_spec'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/installer/parallel_installer.rb:162:in `do_install'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/installer/parallel_installer.rb:147:in `install_serially'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/installer/parallel_installer.rb:102:in `call'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/installer/parallel_installer.rb:78:in `call'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/installer.rb:258:in `install_in_parallel'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/installer.rb:194:in `install'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/installer.rb:91:in `block in run'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/process_lock.rb:12:in `block in lock'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/process_lock.rb:9:in `open'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/process_lock.rb:9:in `lock'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/installer.rb:72:in `run'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/installer.rb:25:in `install'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/cli/install.rb:65:in `run'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/cli.rb:224:in `block in install'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/settings.rb:136:in `temporary'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/cli.rb:223:in `install'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/vendor/thor/lib/thor/command.rb:27:in `run'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/vendor/thor/lib/thor/invocation.rb:126:in `invoke_command'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/vendor/thor/lib/thor.rb:387:in `dispatch'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/cli.rb:27:in `dispatch'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/vendor/thor/lib/thor/base.rb:466:in `start'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/cli.rb:18:in `start'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/gems/2.3.0/gems/bundler-1.16.1/exe/bundle:30:in `block in <top (required)>'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/site_ruby/2.3.0/bundler/friendly_errors.rb:122:in `with_friendly_errors'
  /Users/lamont/.rvm/rubies/ruby-2.3.7/lib/ruby/gems/2.3.0/gems/bundler-1.16.1/exe/bundle:22:in `<top (required)>'
  /Users/lamont/.rvm/gems/ruby-2.3.7/bin/bundle:23:in `load'
  /Users/lamont/.rvm/gems/ruby-2.3.7/bin/bundle:23:in `<main>'
  /Users/lamont/.rvm/gems/ruby-2.3.7/bin/ruby_executable_hooks:15:in `eval'
  /Users/lamont/.rvm/gems/ruby-2.3.7/bin/ruby_executable_hooks:15:in `<main>'

An error occurred while installing chef-zero (14.0.1), and Bundler cannot continue.
Make sure that `gem install chef-zero -v '14.0.1'` succeeds before bundling.

In Gemfile:
  berkshelf was resolved to 6.3.1, which depends on
    chef was resolved to 14.0.190, which depends on
      chef-zero
lamont-granquist commented 6 years ago

The psych 416 may be the root cause?

lamont-granquist commented 6 years ago

I'm not familiar with the endpoints, but it kind of looks like the info/chef endpoint pulls down a list of all gems that chef has ever depended on? I don't think we currently have any dep on psych because I can't grep it in our Gemfile.lock, and I see a pile of fog deps there which must date back to 2010-ish ancient times when those got first split out into knife gems and then we migrated most of those off of fog...

lamont-granquist commented 6 years ago

Don't see psych as a current dep of berkshelf either in its Gemfile/Gemfile.lock/gemspec

segiddins commented 6 years ago

kind of looks like the info/chef endpoint pulls down a list of all gems that chef has ever depended on

that's correct

The psych 416 may be the root cause?

yes, anything that causes bundler to need to fallback to the old dependency API would cause this

colby-swandale commented 6 years ago

@segiddins is there any actions for this issue?

segiddins commented 6 years ago

Not really :(

lamont-granquist commented 6 years ago

Would it be possible to have the latest gemspec for a gem identify a floor below which versions are deprecated (or some other word which means "too old to consider in clever dependency solutions") and the info/chef endpoint would prune out all the information from those versions? Then if it fails to find a solution it could fall back to the old dependency API...

Alternatively I supposed we could yank all the chef versions before chef 11.0.0 or something, but that makes my eyelid twitch a bit thinking of nuking history like that. Someone out there is also likely happily using chef 0.10.x from 2011 and we'd break them hard...

segiddins commented 6 years ago

Would it be possible to have the latest gemspec for a gem identify a floor below which versions are deprecated (or some other word which means "too old to consider in clever dependency solutions")

Possible? Maybe. Probable? I doubt this would ever get implemented, sorry.

In theory, there shouldn't be any issues since bundler caches all of the info files locally, RubyGems.org shouldn't be failing on these requests

colby-swandale commented 6 years ago

This seems answered.

deivid-rodriguez commented 6 years ago

Hi! I come here after reading https://github.com/rspec/rspec/issues/25. Unfortunately the "conclusion" of that thread (as I understand it) is that it's risky for gems to drop support for older rubies, because bundler will continue to try to install the latest version and ignore the required_ruby_version specification in the gemspec.

This is certainly not true in the great majority of the cases, but it is in this particular case, and I think we could do better. I tried reproducing the issue, and while I couldn't reproduce the 416 error, the installation failed for me due to the Net::HTTPTooManyRequests @segiddins mentioned.

I think we could fix that case by falling back to sequentially fetching dependencies from the compact index when this happens instead of doing it in parallel. I tried a proof of concept of this approach and it fixed the issue just fine. Thoughts on this?