Что именно делает "berks update <cookbook-name>"?

Согласно "обновлению справки berks", команда должна:

"Обновить поваренные книги (и зависимости), указанные в Berksfile"

(Да... это все, что он говорит!).

Но что конкретно это означает?

И как это зависит от спецификаций "поваренной книги" в вашем Berksfile?

1 ответ

Команда update попытается найти самые новые версии каждой кулинарной книги (которые по-прежнему соответствуют любым требованиям к версии, которые вы определили). Например, предположим, что у вас есть следующий Berksfile:

cookbook 'foo', '~> 1.0.0'

Это говорит Berkshelf принять любую версию в 1.0.x серии. Итак, вы бежите berks install и (гипотетически) foo-1.0.5 установлен в вашу местную полку. Файл блокировки "заблокирует" определение для foo в версии 1.0.5, поэтому другие разработчики и будущие установки всегда будут использовать версию 1.0.5 (в этом весь смысл файла блокировки).

(Проходит несколько месяцев...)

Теперь вы хотите обновить кулинарную книгу до последней версии. Но из-за SemVer вы хотите остаться в серии 1.0.x. Бег berks update разблокирует жесткую зависимость в файле блокировки, но сохранит ограничение в файле Berksfile. Так (гипотетически), если на сайте сообщества есть следующие версии foo cookbook:

  • 1.0.5
  • 1.0.6
  • 1.0.8
  • 1.1.0
  • 2.0.0

berks update обновит вашу локальную версию до 1.0.8, поскольку это последняя опубликованная версия, которая все еще удовлетворяет вашим ограничениям.

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