Допускает ли Gemfile `> =` новые основные версии для удовлетворения дененденции?
Я пытаюсь обновить веб-службу с Rails 6.0 до Rails 6.1. Во время работы я вижу некоторые ошибки, которые считаю странными, поскольку требования к номерам версий зависимостей кажутся совместимыми, если предположить, что
>=3.0.0
может быть доволен версией
6.1
. Является ли ошибка бросают , потому что в Ruby, имеет некоторые ограничения (т.е. должно быть больше или равно .... но не что больше .... или нет , что равно ...)?
Например:
Bundler could not find compatible versions for gem "railties":
In Gemfile:
bootstrap-datepicker-rails was resolved to 1.9.0.1, which depends on
railties (>= 3.0.0)
coffee-rails was resolved to 5.0.0, which depends on
railties (>= 5.2.0)
dotenv-rails was resolved to 2.7.6, which depends on
railties (>= 3.2)
factory_bot_rails was resolved to 6.1.0, which depends on
railties (>= 5.0.0)
jquery-ui-rails was resolved to 6.0.1, which depends on
railties (>= 3.2.16)
pikaday-gem was resolved to 1.4.0, which depends on
railties (>= 3.1)
rails (~> 6.1) was resolved to 6.1.0, which depends on
railties (= 6.1.0)
rspec-rails was resolved to 4.0.2, which depends on
railties (>= 4.2.0)
На мой взгляд,
railties (= 6.1.0)
требование является самым строгим, но полностью удовлетворяет всем остальным зависимостям, которые зависят от
>=
какая-то более ранняя версия. Почему просто не установить
6.1.0
?
РЕДАКТИРОВАТЬ: я попытался воссоздать проблему с помощью этого минимального Gemfile и потерпел неудачу:
source "https://rubygems.org"
ruby "~> 2.6.6"
gem "rails", "~> 6.1"
gem "bootstrap-datepicker-rails"
gem "coffee-rails"
gem "dotenv-rails"
gem "factory_bot_rails"
gem "jquery-ui-rails"
gem "pikaday-gem"
gem "rspec-rails"
Я также пробовал с Ruby 2.7 и 3.0, и все они установились. Если я снова увижу проблему, я обновлю этот вопрос еще раз, добавив лучший минимальный Gemfile. До тех пор мы отказались от Rails 6, поскольку Apartment несовместима.
РЕДАКТИРОВАТЬ 2: Вот далеко не минимальный гем-файл, который воспроизводит проблему, но теперь проблема более загадочная. Если один бежит
bundle install
, он выдаст ошибки, подобные той, что в моем вопросе, показывая наборы драгоценных камней с несовместимыми версиями зависимостей. Но если я закомментирую все драгоценные камни в этом гемфайле, кроме тех, с предполагаемыми конфликтами, они установятся нормально. Другими словами, что - то еще заставляет сборщик выдавать вводящие в заблуждение ошибки о несовместимости gemset.
Вот Gemfile, чтобы убедиться в этом:
source "https://rubygems.org"
ruby "~> 2.7.0"
git_source(:github) do |repo_name|
repo_name = "#{repo_name}/#{repo_name}" unless repo_name.include?("/")
"https://github.com/#{repo_name}.git"
end
gem "tzinfo-data"
gem "RedCloth", "~> 4.2.9"
gem "activerecord-import"
gem "apartment"
gem "attr_encrypted"
gem "carrierwave"
gem "email_validator"
gem "flutie"
gem "googlecharts", "~> 1.6.8"
gem "mini_magick"
gem "mysql2"
gem "neat"
gem "normalize-rails", "~> 3.0.0"
gem "omniauth-stripe-connect", "~> 2.9"
gem "pikaday-gem"
gem "pothoven-attachment_fu"
gem "prawn"
gem "prawn-table"
gem "puma_worker_killer"
gem "qbwc"
gem "rack-cors", require: "rack/cors"
gem "rack-mini-profiler", "~> 0.10.1"
gem "rack-rewrite", "~> 1.5"
gem "rails", "~> 6.1"
gem "recipient_interceptor"
gem "rollbar", "~> 2.27"
gem "simple_form"
gem "stripe", "~> 1.41"
gem "sucker_punch"
gem "will_paginate", "~> 3.1"
gem "xmlrpc"
gem "bootstrap-sass"
gem "coffee-rails"
gem "fog", require: "fog/aws/storage"
gem "fog-aws", require: false
gem "jbuilder", "~> 2.10"
gem "jquery-rails"
gem "jquery-ui-rails"
gem "memory_profiler"
gem "puma"
gem "rails-jquery-autocomplete"
gem "record_tag_helper"
gem "sass-rails"
gem "therubyracer", platforms: :ruby
gem "uglifier", ">= 1.3.0"
gem "bootstrap-datepicker-rails"
gem "american_date"
#Google App Engine
gem "appengine", "~> 0.5.0"
gem "stackdriver"
# speed boot time. Remove if Rails >=5.2 (comes with bootsnap https://guides.rubyonrails.org/5_2_release_notes.html)
gem 'bootsnap', require: false
group :production do
gem "newrelic_rpm"
gem "rack-timeout", "~> 0.4.2"
end
group :development do
gem "better_errors", "~> 2.0.0"
gem "binding_of_caller", "~> 0.8.0"
gem "bullet", "~> 6.1"
gem "pronto"
gem "pronto-brakeman", require: false
gem "pronto-eslint", require: false
gem "pronto-flay", require: false
gem "pronto-poper", require: false
gem "pronto-reek", require: false
gem "pronto-rubocop", require: false
end
group :development, :test do
gem "awesome_print"
gem "byebug"
gem "dotenv-rails"
gem "factory_bot_rails"
gem "ffaker", "~> 2.2"
gem "pry-byebug"
gem "pry-rails"
gem "railroady"
end
group :test do
gem "database_cleaner"
gem "formulaic"
gem "launchy"
gem "rspec-rails"
gem "shoulda-callback-matchers", "~> 1.1"
gem "shoulda-matchers", "~> 3.1", require: false
gem "simplecov", "~> 0.21.2"
gem "site_prism"
gem "timecop"
gem "webmock"
end