I'm trying to eliminate these annoying DEPRECATION WARNINGS whenever I try to run rspec tests (I'm trudging through the Rails tutorial).
I tried following the suggestion here: rspec triggers "DEPRECATION WARNING: The InstanceMethods module inside ActiveSupport::Concern will be no longer included automatically." to simply update my versions of rspec.
However, whenever tried that, I would end up with a message like this:
The bundle currently has rspec-core locked at 2.1.0.
Try running `bundle update rspec-core`
or this:
Bundler could not find compatible versions for gem "rspec-core":
In Gemfile:
rspec-rails (= 2.1.0) x86-mingw32 depends on
rspec-core (~> 2.1.0) x86-mingw32
rspec-core (2.10.1)
Finally, I just went ahead and hit bundle install
to update ALL my gems. However, that produced the wonderful result of not updating those rspec's. What's going on? (And I've been updating my commits to my current git branch along the way.)
Thank you.
Edit: Here is what my gemfile and gemfile.lock look like:
source 'https://rubygems.org'
gem 'rails', '3.2.1'
group :development, :test do
gem 'sqlite3', '1.3.5'
gem 'rspec-rails', '2.1.0' #NOTICE: possible error with rails version
end
group :assets do
gem 'sass-rails', '~> 3.2.5'
gem 'coffee-rails', '~> 3.2.2'
gem 'uglifier', '1.2.3'
end
gem 'jquery-rails', '2.0.2'
group :test do
gem 'capybara', '1.1.2'
end
group :production do
gem 'pg', '0.12.2'
end
And my gemfile.lock:
GEM
remote: https://rubygems.org/
specs:
actionmailer (3.2.1)
actionpack (= 3.2.1)
mail (~> 2.4.0)
actionpack (3.2.1)
activemodel (= 3.2.1)
activesupport (= 3.2.1)
builder (~> 3.0.0)
erubis (~> 2.7.0)
journey (~> 1.0.1)
rack (~> 1.4.0)
rack-cache (~> 1.1)
rack-test (~> 0.6.1)
sprockets (~> 2.1.2)
activemodel (3.2.1)
activesupport (= 3.2.1)
builder (~> 3.0.0)
activerecord (3.2.1)
activemodel (= 3.2.1)
activesupport (= 3.2.1)
arel (~> 3.0.0)
tzinfo (~> 0.3.29)
activeresource (3.2.1)
activemodel (= 3.2.1)
activesupport (= 3.2.1)
activesupport (3.2.1)
i18n (~> 0.6)
multi_json (~> 1.0)
arel (3.0.2)
builder (3.0.4)
capybara (1.1.2)
mime-types (>= 1.16)
nokogiri (>= 1.3.3)
rack (>= 1.0.0)
rack-test (>= 0.5.4)
selenium-webdriver (~> 2.0)
xpath (~> 0.1.4)
childprocess (0.3.7)
ffi (~> 1.0, >= 1.0.6)
coffee-rails (3.2.2)
coffee-script (>= 2.2.0)
railties (~> 3.2.0)
coffee-script (2.2.0)
coffee-script-source
execjs
coffee-script-source (1.4.0)
diff-lcs (1.1.3)
erubis (2.7.0)
execjs (1.4.0)
multi_json (~> 1.0)
ffi (1.3.1-x86-mingw32)
hike (1.2.1)
i18n (0.6.1)
journey (1.0.4)
jquery-rails (2.0.2)
railties (>= 3.2.0, < 5.0)
thor (~> 0.14)
json (1.7.6)
mail (2.4.4)
i18n (>= 0.4.0)
mime-types (~> 1.16)
treetop (~> 1.4.8)
mime-types (1.20.1)
multi_json (1.5.0)
nokogiri (1.5.6-x86-mingw32)
pg (0.12.2-x86-mingw32)
polyglot (0.3.3)
rack (1.4.4)
rack-cache (1.2)
rack (>= 0.4)
rack-ssl (1.3.3)
rack
rack-test (0.6.2)
rack (>= 1.0)
rails (3.2.1)
actionmailer (= 3.2.1)
actionpack (= 3.2.1)
activerecord (= 3.2.1)
activeresource (= 3.2.1)
activesupport (= 3.2.1)
bundler (~> 1.0)
railties (= 3.2.1)
railties (3.2.1)
actionpack (= 3.2.1)
activesupport (= 3.2.1)
rack-ssl (~> 1.3.2)
rake (>= 0.8.7)
rdoc (~> 3.4)
thor (~> 0.14.6)
rake (10.0.3)
rdoc (3.12.1)
json (~> 1.4)
rspec (2.1.0)
rspec-core (~> 2.1.0)
rspec-expectations (~> 2.1.0)
rspec-mocks (~> 2.1.0)
rspec-core (2.1.0)
rspec-expectations (2.1.0)
diff-lcs (~> 1.1.2)
rspec-mocks (2.1.0)
rspec-rails (2.1.0)
rspec (~> 2.1.0)
rubyzip (0.9.9)
sass (3.2.5)
sass-rails (3.2.6)
railties (~> 3.2.0)
sass (>= 3.1.10)
tilt (~> 1.3)
selenium-webdriver (2.29.0)
childprocess (>= 0.2.5)
multi_json (~> 1.0)
rubyzip
websocket (~> 1.0.4)
sprockets (2.1.3)
hike (~> 1.2)
rack (~> 1.0)
tilt (~> 1.1, != 1.3.0)
sqlite3 (1.3.5-x86-mingw32)
thor (0.14.6)
tilt (1.3.3)
treetop (1.4.12)
polyglot
polyglot (>= 0.3.1)
tzinfo (0.3.35)
uglifier (1.2.3)
execjs (>= 0.3.0)
multi_json (>= 1.0.2)
websocket (1.0.7)
xpath (0.1.4)
nokogiri (~> 1.3)
PLATFORMS
x86-mingw32
DEPENDENCIES
capybara (= 1.1.2)
coffee-rails (~> 3.2.2)
jquery-rails (= 2.0.2)
pg (= 0.12.2)
rails (= 3.2.1)
rspec-rails (= 2.1.0)
sass-rails (~> 3.2.5)
sqlite3 (= 1.3.5)
uglifier (= 1.2.3)
It is tough to answer exactly without seeing the Gemfile, but the message indicates that you were depending on version 2.10.1 of rspec-core in your Gemfile, but you were also depending on rspec-rails 2.1.0 which depended on rspec-core ~> 2.1.0
, which means rspec-core version 2.1.0-2.1.x. With ~>
and a patch level version number, the patch version (last number) can be same or higher as what is specified, but not the minor version (second number) or major version (first number).
The fix is to just remove rspec/rspec-core from your Gemfile if you have rspec-rails defined in it, and rspec-core will get loaded in by rspec-rails. At time of writing (2013-02-06), the latest rspec-rails is 2.12.2, so you might want to use: gem 'rspec-rails', '~> 2.12.2'
and then update your tests to use the latest syntax. That way you are up-to-date, but if you use bundle update
later, it will update if the new version is 2.12.3 or later, but it won't update to 2.13.x or later, since that version might be incompatible with your tests.
For more info, read: