Могу ли я остановить Bundler от добавления RUBY VERSION в Gemfile.lock
Каждый раз, когда я запускаю команду gem в командной строке, Bundler настаивает на касании моего файла Gemfile.lock
, чтобы добавить эту строку:
RUBY VERSION
ruby 2.2.2p95
Я не хочу передавать это в наш репозиторий, потому что это означает, что каждый разработчик, использующий другой уровень патчей Ruby 2.2.2, будет в состоянии совершить войну со мной. (Я уже смирился с аналогичной проблемой с линией BUNDLED_WITH
.) Но я не могу развернуть, если я не выполняю эту строку, потому что наше развертывание выполняется с помощью задачи rake и запускает развертывание Bundler для добавления этого блока, после чего процесс развертывания говорит: "ПОДОЖДИТЕ! Ваше рабочее дерево грязно! Возможно, вы развертываете неполные изменения!!!! 1!" (Ну, не в буквальном смысле, но вы получаете идею.)
Можно ли сообщить Bundler оставить RUBY VERSION
(и, в идеале, BUNDLED_WITH
) из Gemfile.lock
, поэтому нам не нужно делать этот смешной танец?
(как предотвратить сборщик от добавления информации о платформе в Gemfile.lock, похоже, тот же вопрос, но ответа нет, natch.)
Ответы
Ответ 1
Я так не думаю, но, возможно, все в порядке:
Начиная с версии 2.1.0, Ruby больше не имеет нескольких выпусков уровня патча для данной версии. См. Принятый ответ Как номера версий работают для MRI Ruby?
2.2.2p95 - единственный уровень исправления 2.2.2, который когда-либо будет выпущен. "p95" означает, что с 2.2.0 произошло 95 коммитов.
Так как вся ваша команда будет на 2.2.2 в любом случае, это не должно вызывать проблем с этим в вашем Gemfile.lock. (Пока все обновляют Bundler до версии, которая это делает, так или иначе, в противном случае конфликты будут по мере добавления и удаления рубиновой версии.)
Ответ 2
Нет, он не может быть удален, по крайней мере, в версии (-ах) потока Bundler, когда я пишу это.
Этот блок добавлен в методе #to_lock
Bundler:: Определение. Единственное условие, которое оно завернуло, - это if locked_ruby_version
, а locked_ruby_version
- это метод, который возвращает либо версию, определенную в существующем файле блокировки (Gemfile.lock
), либо система Ruby-Bundler очень сильно пытается избежать предоставления locked_ruby_version
возврата ложное значение.
Ответ 3
Если вы используете какой-то контроль версий, например Git, вы можете добавить Gemfile.lock в ваш файл .gitignore.
Таким образом, в любое время, когда вы поднимете новое изменение, вы не будете продвигать свой Gemfile.lock. Тем более, что другим разработчикам это не нужно - как только они запускают пакет, пакет будет создавать новый Gemfile.lock при завершении.