Какова рекомендуемая практика для ограничений версии в rubygem add_dependency? - PullRequest
0 голосов
/ 21 мая 2019

При разработке гемов, что было бы рекомендовано для ограничения версий зависимостей.Например, я знаю, что знаю, что мой гем работает с rubyzip версии 2.x, но я также знаю, что он работает и для 1.9.Должен ли я указать

spec.add_runtime_dependency 'rubyzip', '>1.8'

или, если версия 1.9 rubyzip давно устарела, более распространено «принудительное» изменение строки 2.x?Также, если я использую упомянутую строку, я рискую несовместимостью с будущими версиями, но, с другой стороны, оставляю выбор для пользователя.

Примечание: вопросы, как правило, и зависимость от rubyzip является лишь примером.

1 Ответ

2 голосов
/ 21 мая 2019

Если вы знаете, что ваш гем работает с rubyzip 1.9, тогда нет необходимости заставлять людей использовать >=2.0 с ним.

Конечно, обновление зависимостей будетХорошая идея для вашей библиотеки-пользователя, но это не ваша работа - быть "обновлением вашей программы-полиции"!

Указание, что версия должна быть < 3как правило, рекомендуется (хотя и не всегда выполняется разработчиками), так как существует разумный риск того, что значительный удар по версии зависимости будет несовместим с этой версией вашего кода.

Итак, в качестве компромисса вы можете сделать:

spec.add_runtime_dependency 'rubyzip', '>=1.9', '<3'

См. документацию с действительными примерами синтаксиса.

...