Платформы добавлены в Gemfile.lock

Я пытаюсь отследить, как несколько платформ были добавлены в мой Gemfile.lock без этого явно. Должно быть, я пропустил эти изменения при добавлении новых драгоценных камней, но я не могу воспроизвести то же самое Gemfile.lock дополнения платформы при добавлении тех же Gemfile изменения.

Вот коммит, где были добавлены новые платформы.

#....
+gem 'sqreen'
+gem 'sanitize'
+

 # Build JSON APIs with ease. Read more: https://github.com/rails/jbuilder
 gem 'jbuilder', '~> 2.5'
@@ -55,6 +57,8 @@ gem 'postmark-rails'
 group :development, :test do
   # Call 'byebug' anywhere in the code to stop execution and get a debugger console
   gem 'byebug', platform: :mri
+  gem 'capybara'
+  gem 'selenium-webdriver'
 end

И изменения в Gemfile.lock в том же коммите:

 PLATFORMS
+  java
   ruby
+  x64-mingw32
+  x86-mingw32
+  x86-mswin32

Я пытался воспроизвести ту же модификацию в тестовом приложении, но эти платформы не были добавлены в Gemfile.lock

Я заметил это, когда недавно толкал к героку:

Removing `Gemfile.lock` because it was generated on Windows.
remote:        Bundler will do a full resolve so native gems are handled properly.
remote:        This may result in unexpected gem versions being used in your app.
remote:        In rare occasions Bundler may not be able to resolve your dependencies at all.
remote:        https://devcenter.heroku.com/articles/bundler-windows-gemfile

Я не занимаюсь разработкой на машине с Windows, и теперь к платформе добавляются гемы Gemfile.lock например:

ffi (1.9.18)
ffi (1.9.18-java)
ffi (1.9.18-x64-mingw32)
ffi (1.9.18-x86-mingw32)

Я не совсем уверен, как платформы были добавлены. Не рекомендуется изменять файл блокировки напрямую, но чтобы успокоить предупреждение heroku, стоит ли мне исследовать удаление всех ссылок, относящихся к конкретной платформе, и удалить нерубиновые платформы из моего файла блокировки? Любой совет здесь приветствуется.

rails 5.1.3

1 ответ

Решение

Покопавшись в этом свежим взглядом утром, вот что случилось.

Я проверил свою историю Bash и увидел, что я побежал bundle lock --add-platform x86-mingw32 x86-mswin32 x64-mingw32 java перед коммитом я разместил в вопросе. Это, очевидно, добавляет больше платформ в вашем Gemfile.lock и впоследствии зависимости от платформы.

Я думаю, что я запустил это в терминале, чтобы избавиться от того, что я думал, было ошибкой вокруг tzinfo-data, Больше информации об этой "ошибке" здесь https://github.com/tzinfo/tzinfo-data/issues/12.

Вместо того, чтобы редактировать Gemfile.lock прямо я побежал bundle lock --remove-platform x86-mingw32 x86-mswin32 x64-mingw32 java и это внесло соответствующие изменения в мой файл блокировки. Более подробная информация здесь http://bundler.io/v1.16/bundle_lock.html.

Heroku больше не выдает ошибку при развертывании, как ожидалось. Надеюсь, это поможет кому-то в будущем.

Другие вопросы по тегам