Reputation: 99
I am trying to upgrade a rails 4.2 application to 5.2.3.
My system is MacOS 10.14.6 Mojave. Bundler version 2.0.2
Here is the error after I did bundle update
:
Bundler could not find compatible versions for gem "actionpack":
In Gemfile:
rails (~> 5.2.3) was resolved to 5.2.4.rc1, which depends on
actionpack (= 5.2.4.rc1)
simple_form was resolved to 5.0.1, which depends on
actionpack (>= 5.0)
rails (~> 5.2.3) was resolved to 5.2.4.rc1, which depends on
sprockets-rails (>= 2.0.0) was resolved to 3.2.1, which depends on
actionpack (>= 4.0)
Bundler could not find compatible versions for gem "activemodel":
In Gemfile:
paperclip was resolved to 6.1.0, which depends on
activemodel (>= 4.2.0)
rails (~> 5.2.3) was resolved to 5.2.4.rc1, which depends on
activemodel (= 5.2.4.rc1)
simple_form was resolved to 5.0.1, which depends on
activemodel (>= 5.0)
Bundler could not find compatible versions for gem "activerecord":
In Gemfile:
acts-as-taggable-on was resolved to 6.5.0, which depends on
activerecord (< 6.1, >= 5.0)
deep_cloneable was resolved to 3.0.0, which depends on
activerecord (< 7, >= 3.1.0)
oink was resolved to 0.10.1, which depends on
activerecord
rails (~> 5.2.3) was resolved to 5.2.4.rc1, which depends on
activerecord (= 5.2.4.rc1)
Bundler could not find compatible versions for gem "activesupport":
In Gemfile:
jbuilder (~> 2.0) was resolved to 2.9.1, which depends on
activesupport (>= 4.2.0)
activeadmin was resolved to 2.5.0, which depends on
kaminari (>= 1.0.1, ~> 1.0) was resolved to 1.1.1, which depends on
activesupport (>= 4.1.0)
rails (~> 5.2.3) was resolved to 5.2.4.rc1, which depends on
activesupport (= 5.2.4.rc1)
rails (~> 5.2.3) was resolved to 5.2.4.rc1, which depends on
sprockets-rails (>= 2.0.0) was resolved to 3.2.1, which depends on
activesupport (>= 4.0)
Bundler could not find compatible versions for gem "railties":
In Gemfile:
activeadmin was resolved to 2.5.0, which depends on
railties (< 6.1, >= 5.2)
coffee-rails (~> 4.1.0) was resolved to 4.1.0, which depends on
railties (< 5.0, >= 4.0.0)
devise was resolved to 4.2.1, which depends on
railties (< 5.1, >= 4.1.0)
activeadmin was resolved to 2.5.0, which depends on
jquery-rails (~> 4.2) was resolved to 4.3.5, which depends on
railties (>= 4.2.0)
rails (~> 5.2.3) was resolved to 5.2.4.rc1, which depends on
railties (= 5.2.4.rc1)
Here is what I got when I only update rails bundle update rails
:
Bundler could not find compatible versions for gem "activerecord":
In Gemfile:
acts-as-taggable-on was resolved to 5.0.0, which depends on
activerecord (>= 4.2.8)
deep_cloneable was resolved to 3.0.0, which depends on
activerecord (< 7, >= 3.1.0)
oink was resolved to 0.10.1, which depends on
activerecord
rails (~> 5.2.3) was resolved to 5.2.4.rc1, which depends on
activerecord (= 5.2.4.rc1)
activeadmin was resolved to 1.4.3, which depends on
ransack (>= 1.8.7) was resolved to 1.8.10, which depends on
activerecord (< 5.2, >= 3.0)
Here is my Gemfile:
source 'https://rubygems.org'
ruby '2.5.1'
gem 'rails', '~> 5.2.3'
gem 'mysql2', '<= 0.5.1'
gem 'mini_racer'
gem 'sass-rails'
gem 'coffee-rails', '~> 4.1.0'
gem 'uglifier', '>= 1.3.0'
gem 'jquery-rails'
gem 'jbuilder', '~> 2.0'
gem 'jbuilder_cache_multi'
# gem 'sidekiq'
# gem 'sinatra', require: false # Required by sidekiq/web
gem 'savon'
gem 'soap4r'
gem 'kaminari'
# gem 'actionpack-action_caching'
gem 'acts-as-taggable-on'
gem 'rest-client'
gem 'simple_form'
# gem 'responders', '~> 2.0'
gem 'paperclip'
gem 'whenever', require: false
gem 'typhoeus'
gem 'zip-zip', require: false
gem 'http'
gem 'activeadmin'
gem 'devise'
gem 'redis-rails'
gem 'crack'
gem 'trollop'
gem 'oink'
# gem 'backport_new_renderer'
gem 'deep_cloneable'
gem 'gsl'
gem 'kmeans-clusterer'
gem 'scalpel'
gem 'pragmatic_segmenter'
gem 'memory_profiler'
gem 'parallel'
gem 'sqlite3', '~> 1.3', '>= 1.3.11'
gem 'sprockets-rails', :require => 'sprockets/railtie'
gem 'digest', git: '[email protected]:ruby/digest.git'
gem 'httparty'
gem 'mail'
gem 'net-ssh'
gem 'highline'
group :production do
gem 'newrelic_rpm'
gem 'appsignal'
gem 'execjs'
gem 'puma'
gem 'puma_worker_killer'
end
group :development, :test do
gem 'byebug'
gem 'web-console', '~> 2.0'
# gem 'minitest-rails'
gem 'thin'
end
group :development do
gem 'awesome_print'
gem "capistrano"
gem 'capistrano-rails', require: false
gem 'capistrano-bundler', require: false
gem 'capistrano-sidekiq', require: false
gem 'quiet_assets'
gem 'better_errors'
gem 'binding_of_caller'
gem 'terminal-notifier-guard', require: false
gem 'terminal-notifier', require: false
gem 'derailed_benchmarks'
gem 'stackprof' # used by derailed_benchmarks
end
It looks like actionpack, activerecord, activemodel and activesupport all require version 5.2.4.rc1
. Here is my local gem:
Xuans-MacBook-Pro:moldb xuan$ gem list "activesupport"
*** LOCAL GEMS ***
activesupport (6.0.1, 5.2.4.rc1, 5.2.3, 5.2.0, 5.1.6.1, 4.2.11.1, 4.2.10)
redis-activesupport (5.2.0, 5.0.7, 5.0.3, 4.0.0)
Xuans-MacBook-Pro:moldb xuan$ gem list "activemodel"
*** LOCAL GEMS ***
activemodel (6.0.1, 5.2.4.rc1, 5.2.3, 5.2.0, 5.1.6.1, 4.2.11.1, 4.2.10)
Xuans-MacBook-Pro:moldb xuan$ gem list "actionpack"
*** LOCAL GEMS ***
actionpack (6.0.1, 5.2.4.rc1, 5.2.3, 5.2.0, 5.1.6.1, 4.2.11.1, 4.2.10)
Xuans-MacBook-Pro:moldb xuan$ gem list 'railties'
*** LOCAL GEMS ***
railties (6.0.1, 5.2.4.rc1, 5.2.3, 5.2.0, 5.1.6.1, 4.2.11.1, 4.2.10)
I tried various way to solve this upgrade issue; but no luck. Removing Gemfile.lock
then do bundle install
doesn't work for me (which give the same error output).
It's so frustrating when upgrade any Rails application, the dependency hell is just hard to solve.
Thank you for any helps and suggestions!
Upvotes: 1
Views: 3851
Reputation: 15848
You have to fix gems version, for example:
Bundler could not find compatible versions for gem "railties":
activeadmin was resolved to 2.5.0, which depends on
railties (< 6.1, >= 5.2)
coffee-rails (~> 4.1.0) was resolved to 4.1.0, which depends on
railties (< 5.0, >= 4.0.0)
devise was resolved to 4.2.1, which depends on
railties (< 5.1, >= 4.1.0)
activeadmin was resolved to 2.5.0, which depends on
jquery-rails (~> 4.2) was resolved to 4.3.5, which depends on
railties (>= 4.2.0)
rails (~> 5.2.3) was resolved to 5.2.4.rc1, which depends on
railties (= 5.2.4.rc1)
This tells you that coffee-rails depends on railties < 5.0, devise on railties < 5.1, and rails 5.23 depends on railties 5.2.4.rc1. So you should ask for newer versions of devise and coffee-rails in that case.
Bundler could not find compatible versions for gem "activerecord":
acts-as-taggable-on was resolved to 5.0.0, which depends on
activerecord (>= 4.2.8)
deep_cloneable was resolved to 3.0.0, which depends on
activerecord (< 7, >= 3.1.0)
oink was resolved to 0.10.1, which depends on
activerecord
rails (~> 5.2.3) was resolved to 5.2.4.rc1, which depends on
activerecord (= 5.2.4.rc1)
activeadmin was resolved to 1.4.3, which depends on
ransack (>= 1.8.7) was resolved to 1.8.10, which depends on
activerecord (< 5.2, >= 3.0)
This one tells you that you are requiring activeadmin 1.4.3 that depends on ransak >= 1.8.7 that depends on activerecord < 5.2, but rails 5.2.3 depends on activerecord 5.2.4.rc1. You need to update your activeadmin and ransack gems.
Fix the conflicts for each gem telling your gemfile which version to use for, you can check them at rubygems.
You have the gems installed on your system, but you have conflicts between other gems' dependencies.
Upvotes: 1