Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Heroku, ZenTest and RubyGems

This question is a bit like this one but its solutions don't work for me. Using RVM, just upgraded to Rails 3.1 rc6. All working surprisingly smoothly except when I attempt to deploy to a new heroku Cedar staging stack I get an error:

-----> Heroku receiving push
-----> Ruby/Rails app detected
-----> Installing dependencies using Bundler version 1.1.pre.8
       Running: bundle install --without development:test --path vendor/bundle --deployment
       Fetching dependency information from the API at http://rubygems.org/......
       Fetching dependency information from the API at http://rubygems.org/.
       Fetching git://github.com/paneq/calendar_date_select.git
       Fetching git://github.com/moiristo/deep_cloneable.git
       Fetching git://github.com/madebydna/nested_form.git
       Fetching git://github.com/ernie/ransack.git
       Installing rake (0.9.2)
       Installing RedCloth (4.2.8) with native extensions
       Installing ZenTest (4.6.1) Unfortunately, a fatal error has occurred. Please report this error to the Bundler issue tracker at https://github.com/carlhuda/bundler/issues so that we can fix it. Thanks!
       /usr/local/lib/ruby/1.9.1/rubygems/installer.rb:170:in `install': ZenTest requires RubyGems version ~> 1.8. Try 'gem update --system' to update RubyGems itself. (Gem::InstallError)
       from /tmp/build_1g1g96ub4uas6/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.pre.8/lib/bundler/source.rb:92:in `block in install'
       from /tmp/build_1g1g96ub4uas6/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.pre.8/lib/bundler/rubygems_integration.rb:78:in `preserve_paths'
       from /tmp/build_1g1g96ub4uas6/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.pre.8/lib/bundler/source.rb:82:in `install'
       from /tmp/build_1g1g96ub4uas6/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.pre.8/lib/bundler/installer.rb:64:in `block (2 levels) in run'
       from /tmp/build_1g1g96ub4uas6/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.pre.8/lib/bundler/rubygems_integration.rb:93:in `with_build_args'
       from /tmp/build_1g1g96ub4uas6/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.pre.8/lib/bundler/installer.rb:63:in `block in run'
       from /tmp/build_1g1g96ub4uas6/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.pre.8/lib/bundler/installer.rb:55:in `run'
       from /tmp/build_1g1g96ub4uas6/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.pre.8/lib/bundler/installer.rb:12:in `install'
       from /tmp/build_1g1g96ub4uas6/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.pre.8/lib/bundler/cli.rb:213:in `install'
       from /tmp/build_1g1g96ub4uas6/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.pre.8/lib/bundler/vendor/thor/task.rb:22:in `run'
       from /tmp/build_1g1g96ub4uas6/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.pre.8/lib/bundler/vendor/thor/invocation.rb:118:in `invoke_task'
       from /tmp/build_1g1g96ub4uas6/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.pre.8/lib/bundler/vendor/thor.rb:263:in `dispatch'
       from /tmp/build_1g1g96ub4uas6/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.pre.8/lib/bundler/vendor/thor/base.rb:386:in `start'
       from /tmp/build_1g1g96ub4uas6/vendor/bundle/ruby/1.9.1/gems/bundler-1.1.pre.8/bin/bundle:13:in `<top (required)>'
       from vendor/bundle/ruby/1.9.1/bin/bundle:19:in `load'
       from vendor/bundle/ruby/1.9.1/bin/bundle:19:in `<main>'
 !
 !     Failed to install gems via Bundler.
 !
 !     Heroku push rejected, failed to compile Ruby/rails app

I've run gem update --system, and gem pristine --all. I've put all the test gems in group(:development, :test, :cucumber) do in my gemfile and as you can see from the trace I'm running bundle install without development test. It must be a weird dependency in my Gemfile which is here: anything look off to you?

source 'http://rubygems.org'

# Rails
gem "rails", "3.1.0.rc6"

# ORM
gem 'sqlite3'
gem "sqlite3-ruby", "~> 1.3.3"

# Custom Gemsets
gem 'calendar_date_select', :git => 'git://github.com/paneq/calendar_date_select.git', :branch => 'rails3test'
gem 'client_side_validations', '3.0.5' 
gem 'cocoon'
gem 'fastercsv', :platforms => :ruby_18
gem 'formtastic', '~> 1.2.3'
gem 'gravatar_image_tag', '1.0.0.pre2'
gem 'haml'
gem 'jquery-rails'
gem 'nested_form', :git => 'git://github.com/madebydna/nested_form.git'
gem 'nokogiri'
gem 'paperclip', '~> 2.3'
gem 'rails_helpers_fix'
gem 'simple_form'
gem 'simple-tooltip'
gem 'will_paginate', '3.0.pre4'
gem "carrierwave"   
gem "ransack", :git => "git://github.com/ernie/ransack.git" 
gem "activerecord-import", ">= 0.2.8"
gem "csv_builder"
gem 'pdfkit'
gem 'wkhtmltopdf'
gem "heroku"
gem "rmagick"
gem 'aws-s3'
gem "cancan"
gem "devise"
gem 'deep_cloneable', :git => "git://github.com/moiristo/deep_cloneable.git"
gem 'bundler'
gem "activesupport"
gem "unicorn"

# Rails 3.1 - Asset Pipeline
gem 'json'
gem 'sass'
gem 'coffee-script'
gem 'uglifier'


group(:development, :test, :cucumber) do
  gem 'autotest'
  gem 'autotest-rails'
  gem 'cucumber'
  gem 'cucumber-rails'
  gem 'factory_girl'
  gem 'factory_girl_rails'
  gem 'faker'
  gem 'launchy'
  gem 'rspec'
  gem 'rspec-core',         :require => 'rspec/core'
  gem 'rspec-expectations', :require => 'rspec/expectations'
  gem 'rspec-mocks',        :require => 'rspec/mocks'
  gem 'rspec-rails'
  gem 'spork', '>= 0.9.0.rc'
  gem 'webrat'
  gem 'ZenTest'

end
like image 434
snowangel Avatar asked Feb 23 '23 05:02

snowangel


2 Answers

Okey doke, even though the logs said

Running: bundle install --without development:test --path vendor/bundle --deployment

it wasn't. Running

$ heroku config:add BUNDLE_WITHOUT="development:test" --app appname

Sorted me out. I also did

git rm Gemfile.lock

and bundle install and commit before

git push staging master

which worked, phew. Thanks for your responses, anyway.

like image 77
snowangel Avatar answered Feb 28 '23 08:02

snowangel


Apparently, this ZenTest change is incompatible. Try locking the ZenTest version by adding/changing in your Gemfile:

gem "ZenTest", "4.6.0"

Works great for me on Cedar whereas the other solutions don't.

like image 31
Ortwin Gentz Avatar answered Feb 28 '23 08:02

Ortwin Gentz