Bob Aman

Semantic Versioning With Bundler

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 using "~> x.y", ">= x.y.z". This compound requirement should be your instinctive default way of specifying a version constraint.