Post History
#2: Post edited
- I believe that rvm has a mechanism where it will automatically switch to the correct ruby version based on the lockfile. So if the lockfile of an application were to say:
`ruby '3.1'`, rvm will detect that and automatically switch to using the correct Ruby version for the project. It may also support versions like `ruby '>= 3.1`.- Now the problem is that somewhat recently ruby 2.7 became End-Of-Life. Ruby 3.0 made some syntax/behavior changes which actually broke compatibility with older code (hence why it went from Ruby 2 to Ruby 3). We updated QPixel to support these new versions of Ruby 3 but for now we also maintain compatibility with Ruby 2.7 to give people more time to update.
- In doing so, we had to switch from listing a *specific* ruby version to a range of versions, defined as `>= 2.7, < 4`. That is, 2.7 is supported, and all Ruby 3 versions are supported (and should work), but Ruby 4 (when that is released) probably won't be. RVM does not support this statement in it's auto version switching, hence why you see the error.
- So to answer your questions:
- 1. Because we have a range version listed in our lockfile
- 2. RVM is unable to determine the version of ruby to auto-switch to
- 3. No, RVM's fallback behavior for if the auto-switching does not work, is to use the "currently set version of ruby", which in almost all cases is a supported version.
- I believe that rvm has a mechanism where it will automatically switch to the correct ruby version based on the lockfile. So if the lockfile of an application were to say:
- `ruby '3.1'`, rvm will detect that and automatically switch to using the correct Ruby version for the project out of the potentially many versions you have installed (or prompt you to install it, or maybe it even installs it for you).
- Now the problem is that somewhat recently ruby 2.7 became End-Of-Life. Ruby 3.0 made some syntax/behavior changes which actually broke compatibility with older code (hence why it went from Ruby 2 to Ruby 3). We updated QPixel to support these new versions of Ruby 3 but for now we also maintain compatibility with Ruby 2.7 to give people more time to update.
- In doing so, we had to switch from listing a *specific* ruby version to a range of versions, defined as `>= 2.7, < 4`. That is, 2.7 is supported, and all Ruby 3 versions are supported (and should work), but Ruby 4 (when that is released) probably won't be. RVM does not support this statement in it's auto version switching, hence why you see the error.
- So to answer your questions:
- 1. Because we have a range version listed in our lockfile
- 2. RVM is unable to determine the version of ruby to auto-switch to
- 3. No, RVM's fallback behavior for if the auto-switching does not work, is to use the "currently set version of ruby", which in almost all cases is a supported version.
#1: Initial revision
I believe that rvm has a mechanism where it will automatically switch to the correct ruby version based on the lockfile. So if the lockfile of an application were to say: `ruby '3.1'`, rvm will detect that and automatically switch to using the correct Ruby version for the project. It may also support versions like `ruby '>= 3.1`. Now the problem is that somewhat recently ruby 2.7 became End-Of-Life. Ruby 3.0 made some syntax/behavior changes which actually broke compatibility with older code (hence why it went from Ruby 2 to Ruby 3). We updated QPixel to support these new versions of Ruby 3 but for now we also maintain compatibility with Ruby 2.7 to give people more time to update. In doing so, we had to switch from listing a *specific* ruby version to a range of versions, defined as `>= 2.7, < 4`. That is, 2.7 is supported, and all Ruby 3 versions are supported (and should work), but Ruby 4 (when that is released) probably won't be. RVM does not support this statement in it's auto version switching, hence why you see the error. So to answer your questions: 1. Because we have a range version listed in our lockfile 2. RVM is unable to determine the version of ruby to auto-switch to 3. No, RVM's fallback behavior for if the auto-switching does not work, is to use the "currently set version of ruby", which in almost all cases is a supported version.