When you’re setting up dependencies in your
Gemfile, you generally
want to give gem authors the benefit of the doubt. Assume that they
will adhere to semantic versioning unless you
have explicit knowledge that this is not the case for a particular gem.
Many developers make a habit of specifying their dependencies far too
pessimistically, which tends to result in dependency conflicts,
especially in larger projects. Instead of
"~> x.y.z", consider
"~> x.y", ">= x.y.z". This compound requirement should be your
instinctive default way of specifying a version constraint.