Помогнете на Bundler да разбере защо е понижил класирането на един от моите скъпоценни камъни

Днес проверих gem outdated, както правя периодично. Намерих няколко, които се нуждаеха от актуализиране:

$ gem outdated
ZenTest (4.6.1 < 4.6.2)
bcrypt-ruby (2.1.4 < 3.0.0)
factory_girl (2.0.4 < 2.0.5)
fog (0.10.0 < 0.11.0)
hike (1.2.0 < 1.2.1)
net-ssh (2.1.4 < 2.2.1)
rb-fsevent (0.4.3 < 0.4.3.1)
rdoc (3.9.2 < 3.9.3)
selenium-webdriver (2.4.0 < 2.5.0)

Така че аз gem update тях и след това bundle update. Забелязах, че bundle update се почувства принуден да инсталира по-стара версия на fog: Installing fog (0.9.0)? И не съм сигурен как да разбера какво причинява тази зависимост да бъде понижена. Нещата работеха добре под fog 0.10.0.

gem dependency -R fog казва, че само Carrierwave го изисква...и carrierwave не се е променил и е доволен от fog 0.10.0.

Някакви идеи? Или инструменти, които мога да използвам за отстраняване на неизправности/разбиране на това?


person Meltemi    schedule 25.08.2011    source източник
comment
Вашият Gemfile.lock файл трябва да показва йерархия на зависимостите, за да ви помогне да разберете какво друго може да изисква версия 0.9.x на fog.   -  person Dylan Markow    schedule 25.08.2011


Отговори (1)


Във вашия gemfile и в bundler се счита за добра практика да не използвате непременно последната и най-нова версия на gem.

Например, ако има ред във вашия rails gemfile като:

gem 'globalize3', "~> 0.1.0"

... ще получи най-новия скъпоценен камък като 0.1.2, 0.1.3 и т.н., но никога няма да използва 0.2.1

Това е, за да се запази обратната съвместимост между зависимостите от скъпоценни камъни. Bundler вероятно следва тази практика по отношение на мъглата.

person allesklar    schedule 25.08.2011