Short ruby versions don't consistently map to preinstalled versions

Travis has the following preinstalled ruby versions


We use short ruby versions in our .travis.yml so that we don’t need to keep track of which ruby versions are preinstalled in travis:

  - 2.4
  - 2.3
  - 2.2

Travis maps 2.2 to 2.2.7 and uses the preinstalled version:

However, 2.3 maps to 2.3.7 which isn’t preinstalled:

Similarly, 2.4 maps to 2.4.4 which isn’t preinstalled:

Can Travis consistently map the short ruby version to the preinstalled versions so that we don’t waste time downloading and unpacking? I’d expect “2.4” to mean “2.4.anything” instead of “2.4.latest”.


As a result of this issue, if travis chooses ruby 2.3.7 (which isn’t preinstalled), then you’ll run into `bundle` is not installed for Ruby 2.3.