For gems that follow semantic versioning the process is as follows:
- Is the major number greater than 0?
- If not, lock to a specific version
- E.g.,
gem 'timecop', '= 0.8.1'
- E.g.,
- If so, lock the minor number with the approximate version specifier, and declare a greater or equal then dependency to a patch number when necessary
- If not, lock to a specific version
- E.g.,
gem 'concurrent-ruby', '~> 1.0', '>= 1.0.2'