Short ruby versions don't consistently map to preinstalled versions

Travis has the following preinstalled ruby versions

ruby-2.2.7
ruby-2.3.4
ruby-2.4.1

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:

rvm:
  - 2.4
  - 2.3
  - 2.2

Travis maps 2.2 to 2.2.7 and uses the preinstalled version: https://travis-ci.org/puppetlabs/puppet/jobs/474961921#L442-L443.

However, 2.3 maps to 2.3.7 which isn’t preinstalled: https://travis-ci.org/puppetlabs/puppet/jobs/474961920#L442-L443

Similarly, 2.4 maps to 2.4.4 which isn’t preinstalled: https://travis-ci.org/puppetlabs/puppet/jobs/474961918#L442-L444

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”.

Thanks!

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.

Imprint