Can I force a gem's dependencies in gemfile?
If there are two gems,
A1.0.0 depends on
In my Gemfile:
gem 'A', '~> 1.0.0'
bundle. It will generate a Gemfile.lock like:
A (1.0.0) B (1.0.0)
But if I want to force
A to use
B1.0.1, what’s the best practice? Moreover, if the
B1.0.1 is not release but a github tag?
One Solution collect form web for “Can I force a gem's dependencies in gemfile?”
You’ll need to explicitly specify the B gem in your Gemfile to use a git repository or another version. As long as A 1.0.0 is compatible with B 1.0.1 you’ll be fine. If it is only compatible with B 1.0.0 then you’ll have to create your own fork of the A gem and upgrade the gemspec to be compatible with B 1.0.1 and then use that repository as your gem for A instead of the rubygems version.
Here is a sample Gemfile that should give you what you want, provided A 1.0.0 is compatible with B 1.0.1.
gem 'B', :git => 'git://github.com/B/B.git', :tag => '1.0.1' gem 'A', '~> 1.0.0'