Bundler 1.10.1 breaks Warbler #3691

Closed
sanelson2000 opened this Issue May 30, 2015 · 7 comments

Projects

None yet

5 participants

@sanelson2000

Note: This was originally tested on Windows, but also fails on Linux.

Cross posted to Warbler repository.
jruby/warbler#326

JRuby 1.7.20 installed

C:\TeamCity\buildAgent\work\51193650a9909371>jruby -v
jruby 1.7.20 (1.9.3p551) 2015-05-04 3086e6a on Java HotSpot(TM) Client VM 1.7.0_79-b15 +jit [Windows Server 2012-x86]

Bundler 1.10.1 installed

C:\TeamCity\buildAgent\work\51193650a9909371>gem list bundler
io/console not supported; tty will not be manipulated

*** LOCAL GEMS ***

bundler (1.10.1)

Warbler 1.4.7 added to the bundle (also tested with Warbler 1.4.0)

C:\TeamCity\buildAgent\work\51193650a9909371>bundle show warbler
io/console not supported; tty will not be manipulated
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/warbler-1.4.7

bundle exec warble fails:

C:\TeamCity\buildAgent\work\51193650a9909371>bundle exec warble --trace
io/console not supported; tty will not be manipulated
io/console not supported; tty will not be manipulated
** Invoke default (first_time)
** Invoke war (first_time)
** Execute war
** Invoke war:compiled (first_time)
** Execute war:compiled
warble aborted!
ArgumentError: dependency name must be a String, was #<Bundler::StubSpecification:0x9b0bf @spec_fetcher=nil, @name="rake", @stub=#<Gem::StubSpecification:0xd628c1 @extensions=[], @spec=#<Gem::Specification:0x1a06 rake-10.3.2>, @platform="ruby", @extensions_dir=nil, @base_dir=nil, @gem_dir=nil, @loaded_from="C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/specifications/rake-10.3.2.gemspec", @version=#<Gem::Version "10.3.2">, @extension_dir=nil, @name="rake", @full_gem_path=nil, @gems_dir=nil, @data=#<Gem::StubSpecification::StubLine:0xdacdf @parts=["rake", "10.3.2", "ruby", "lib"]>>, @source=#<Bundler::Source::Rubygems:0x13f4e30 @options={}, @installed_specs=#<Bundler::Index:0x6664 sources=[] specs.size=90>, @caches=[<Pathname:C:/TeamCity/buildAgent/work/51193650a9909371/vendor/cache>, "C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/cache"], @specs=#<Bundler::Index:0x6666 sources=[] specs.size=90>, @allow_cached=false, @dependency_names=["rake", "i18n", "minitest", "multi_json", "thread_safe", "tzinfo", "activesupport", "builder", "erubis", "rack", "rack-test", "actionpack", "mime-types", "polyglot", "treetop", "mail", "actionmailer", "activemodel", "activerecord-deprecated_finders", "arel", "activerecord", "activerecord-jdbc-adapter", "jdbc-jtds", "activerecord-jdbcmssql-adapter", "jdbc-postgres", "activerecord-jdbcpostgresql-adapter", "jdbc-sqlite3", "activerecord-jdbcsqlite3-adapter", "activerecord-oracle_enhanced-adapter", "ansi", "orm_adapter", "ckeditor", "coffee-script-source", "execjs", "coffee-script", "thor", "railties", "coffee-rails", "composite_primary_keys", "dynamic_form", "multipart-post", "faraday", "hashie", "hike", "jquery-rails", "jquery-ui-rails", "jquery.fileupload-rails", "jrjackson", "jruby-jars", "jruby-poi", "jruby-rack", "json", "jwt", "linecache", "mini_portile", "powerbar", "minitest-reporters", "multi_xml", "nokogiri", "oauth", "oauth2", "oauth-plugin", "protected_attributes", "quiet_assets", "rabl", "tilt", "sprockets", "sprockets-rails", "rails", "rcdmu", "ruby-debug-base", "ruby-debug-ide", "rubyzip", "sanitize", "sass", "sass-rails", "swagger-docs", "swagger-ui_rails", "test-unit", "therubyrhino_jar", "therubyrhino", "trinidad_jars", "trinidad", "uglifier", "warbler", "yui-compressor"], @allow_remote=false, @remotes=[#<URI::HTTP:0x1eb54f3 URL:http://rubygems.org/>]>, @platform="ruby", @version=#<Gem::Version "10.3.2">>
C:/jruby/jruby-1.7.20/lib/ruby/shared/rubygems/dependency.rb:46:in `initialize'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/warbler-1.4.7/lib/warbler/gems.rb:59:in `find_single_gem_files'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/warbler-1.4.7/lib/warbler/gems.rb:46:in `specs'
org/jruby/RubyHash.java:1341:in `each'
org/jruby/RubyEnumerable.java:764:in `map'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/warbler-1.4.7/lib/warbler/gems.rb:46:in `specs'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/warbler-1.4.7/lib/warbler/jar.rb:197:in `find_gems_files'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/warbler-1.4.7/lib/warbler/jar.rb:39:in `compile'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/warbler-1.4.7/lib/warbler/task.rb:109:in `define_compiled_task'
org/jruby/RubyProc.java:271:in `call'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/task.rb:240:in `execute'
org/jruby/RubyArray.java:1613:in `each'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/task.rb:235:in `execute'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/task.rb:179:in `invoke_with_call_chain'
C:/jruby/jruby-1.7.20/lib/ruby/1.9/monitor.rb:211:in `mon_synchronize'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/task.rb:165:in `invoke'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/warbler-1.4.7/lib/warbler/task.rb:88:in `define_main_task'
org/jruby/RubyArray.java:1613:in `each'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/warbler-1.4.7/lib/warbler/task.rb:82:in `define_main_task'
org/jruby/RubyProc.java:271:in `call'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/task.rb:240:in `execute'
org/jruby/RubyArray.java:1613:in `each'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/task.rb:235:in `execute'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/task.rb:179:in `invoke_with_call_chain'
C:/jruby/jruby-1.7.20/lib/ruby/1.9/monitor.rb:211:in `mon_synchronize'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/task.rb:201:in `invoke_prerequisites'
org/jruby/RubyArray.java:1613:in `each'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/task.rb:199:in `invoke_prerequisites'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/task.rb:178:in `invoke_with_call_chain'
C:/jruby/jruby-1.7.20/lib/ruby/1.9/monitor.rb:211:in `mon_synchronize'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/task.rb:172:in `invoke_with_call_chain'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/task.rb:165:in `invoke'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/application.rb:150:in `invoke_task'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/application.rb:106:in `top_level'
org/jruby/RubyArray.java:1613:in `each'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/application.rb:106:in `top_level'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/application.rb:115:in `run_with_threads'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/application.rb:100:in `top_level'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/application.rb:78:in `run'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/application.rb:176:in `standard_exception_handling'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/rake-10.3.2/lib/rake/application.rb:75:in `run'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/warbler-1.4.7/lib/warbler/application.rb:77:in `run'
C:/TeamCity/buildAgent/work/51193650a9909371/vendor/bundle/jruby/1.9/gems/warbler-1.4.7/bin/warble:11:in `(root)'
org/jruby/RubyKernel.java:1091:in `load'
C:\TeamCity\buildAgent\work\51193650a9909371\vendor\bundle\jruby\1.9\bin\warble:23:in `(root)'
Tasks: TOP => war:compiled
@sanelson2000 sanelson2000 referenced this issue in jruby/warbler May 30, 2015
Closed

Bundler 1.10.1 breaks Warbler #326

@sanelson2000 sanelson2000 changed the title from Bundler 1.10.1 breaks Warbler 1.4.7 on Windows to Bundler 1.10.1 breaks Warbler 1.4.7 May 30, 2015
@sanelson2000 sanelson2000 changed the title from Bundler 1.10.1 breaks Warbler 1.4.7 to Bundler 1.10.1 breaks Warbler May 30, 2015
@segiddins
Member

That stack trace makes this look like a bug in warbler to me, rather than bundler.

@sanelson2000

@segiddins I should have also added that this works fine if I downgrade bundler to 1.9.9 or below. This is breaking due to a change in bundler. What that change is, and whether or not it was intentional and warbler needs to now change how it's interacting with bundler, I don't know. That's why I cross posted the ticket.

@segiddins segiddins added a commit to segiddins/warbler that referenced this issue May 30, 2015
@segiddins segiddins [Gems] Match Gem::BasicSpecification
Hopefully closes bundler/bundler#3691.
9b0e457
@segiddins segiddins referenced this issue in jruby/warbler May 30, 2015
Closed

[Gems] Match Gem::BasicSpecification #327

@segiddins
Member

jruby/warbler#327 is untested, but it might fix the issue.

@indirect
Member

Thanks for reporting this. As we've stated in the past, Bundler's internal Ruby APIs are not stable and may change. It looks like Warbler needs to be updated to support Gem::StubSpecifications in general, which were introduced in RubyGems 2.1 in September 2013. Once Warbler supports that type of specification object, this will just go back to working.

@segiddins
Member

(Actually, that object is a Bundler::BasicSoecification)

@indirect
Member

@segiddins hmm, that's a good point. Bundler::StubSpecification doesn't inherit from Gem::StubSpecification. :/ Is there a way to make it so that Warbler doesn't have to know or care about the difference? Do we just need Warbler to check responds_to? instead of is_a??

@c0mrade
c0mrade commented Jun 25, 2015

Updating to 1.4.8 warbler worked for me not to get this error anymore

@mtigas mtigas added a commit to tabulapdf/tabula that referenced this issue Aug 21, 2015
@mtigas mtigas newer bundler versions break warbler d233fe6
@Temikus Temikus referenced this issue in Netflix/Lipstick Sep 2, 2015
Merged

Updating warbler version to fix build failures #116

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment