При понижении рейтинга драгоценного камня, может ли упаковщик автоматически понизить зависимости драгоценного камня вместе с ним?
Ранее я изменил версию gem в Gemfile для моего проекта Rails. Я запустил обновление gemname в bundler, и это установило более свежие версии нескольких зависимостей, что меня как-то удивило.
Теперь мне нужно перейти на старую версию драгоценного камня. Я изменил версию обратно в своем Gemfile и снова запустил обновление gemname для bundler (и для правильной оценки установил bundler), но теперь гемы, которые были обновлены ранее (зависимости), все еще являются более новыми версиями (я думаю, gem не указывал версии, так что он просто использует что-нибудь последнее?).
Есть ли способ понизить эти зависимости до того, где они были до обновления драгоценного камня?
3 ответа
Поставщик не может знать максимальную версию зависимого драгоценного камня, если зависимый драгоценный камень не указывает это. Если понижение версии гема фактически не изменит его зависимостей, ваш единственный реальный вариант - извлечь предыдущую версию вашего gemfile.lock из системы контроля версий. Иначе нет, вы не можете делать то, что пытаетесь сделать; Bundler будет уважать ваш текущий gemfile.lock, который не изменится, пока не будут изменены зависимости вашего драгоценного камня при его понижении.
Вы всегда можете указать зависимые гемы с нужными номерами версий в своем Gemfile. Это заставит компоновщик переоценить зависимости и понизить их по мере необходимости. Это не идеально, но вы сможете удалить указанные драгоценные камни в будущем, как только версии разберутся.
Я бы добавил это как комментарий, но не могу из-за своей репутации, поэтому я надеюсь, что кто-то найдет это полезным.
Я также сделал то, что предложил nmott. Просто добавьте зависимость в ваш Gemfile, например:
gem 'gem-name', '~> 1.5.0'
и беги bundle update gem-name
Затем, когда ваша зависимость будет понижена, удалите строку из Gemfile и сохраните ее как она была изначально.