Укажите pessimisti c versioning (например, ~>) в теге с версией Bundler / gem в Bitbucket - PullRequest
0 голосов
/ 30 марта 2020

Мы привыкли задавать гемы с открытым исходным кодом в Gemfile с помощью pessimisti c versioning:

gem 'sidekiq', '~> 5.2.7'
gem 'rspec', '~> 3.6'

Это здорово, так как Bundler подхватит rspe c v3.6.2 (et c.), Но не v4.0. Это именно то, что я хочу.

У меня есть несколько наших собственных драгоценных камней, обслуживаемых из частного источника git_s:

git_source(:stash) { |repo| "ssh://private@corporate.example.com:9999/#{repo}.git" }
gem 'flavor-it, tag: 'v2.0.3', stash: 'scents/flavor-it-gem'

В flavor-it-gem мы используем semanti c версия в файле gemspe c, такая как '2.0.3'.

В git мы помечаем релизы коммитами с такими тегами, как 'v2.0.3'.

Я только что выпустил v2.0.4 ... тривиальный релиз патча. Я бы хотел, чтобы все наши локальные приложения автоматически выбирали этот новый драгоценный камень, не обновляя гемфайл в каждом.

Я хотел бы сделать что-то вроде этого:

gem 'flavor-it, tag: '~> v2.0', stash: 'scents/flavor-it-gem'

... но это не работает. Тэги должны точно совпадать ... нет пессимистического c совпадения версий или даже сравнения (>=).

Есть ли способ пессимистически (семантически) указать диапазон версий гемов в tag? Или я собираюсь пойти по этому нелегкому пути, и мне следует использовать что-то отличное от tag: для версий моего собственного частного драгоценного камня?

Я пытался сбросить ключ tag: в пользу спецификация обычной версии:

gem 'flavor-it, '~> 2.0', stash: 'scents/flavor-it-gem'

... но затем я получаю:

Could not find gem 'flavor_it (~> 2.0)' in ssh://git@stash.sdlc.appriss.com:7999/scents/flavor_it_gem.git (at master@53b6071).
The source does not contain any versions of 'flavor_it'

Так что, возможно, реальный вопрос, который я должен здесь задать, это ... Как мне показать ruby Gem версии в git репо? Если это имеет значение, мы используем Atlassian Bitbucket в качестве нашего git репо.

Есть предложения по созданию этой работы ... или по совершенно другому подходу к этой проблеме?

...