Why is Bundler version lookup selecting pre-release version here?

393 Views Asked by At

We have a gem which as development dependencies relies on sass-rails (specifically in version 5.0.4) which in turn depends on railties >4.0.0 and <5.0.

Now we don't check our Gemfile.lock into the repo to keep it as flexible as possible (it's our 'universal' gem after all), and during the travis build, installing sass-rails resolves its dependency railties to version 5.0.0.beta1, which I'd say intuitively isn't <5.0 and now causes problems when running the tests on ruby < 2.2.2 (due to rack).

Now, am I misunderstanding something or is this a bug, that bundler installs 5.0.0.beta1 for <5.0?

1

There are 1 best solutions below

1
On

This is not a bug but expected behaviour. Prerelease versions are expected to be released before the actual release, hence they are considered smaller.

See http://ruby-doc.org/stdlib-2.0.0/libdoc/rubygems/rdoc/Gem/Version.html for more detail.

You can add a runtime dependency to railties '~> 4.0' to your gemspec to solve this problem.