We take modern dependency management solutions for granted these days, but how did it all start? What are the most important ideas and when and where were they introduced?
Most Ruby libraries have nondeterministic builds caused by how they specify dependencies. Which means maintainers can't be 100% sure if their gem is working right now.
That squiggly operator in your Gemfile, how does it work? Learn all about the pessimistic version constraint pattern in Rubygems and how to use it correctly.
As an extension to Murphy's law, critical security updates for your dependencies come in at the least convenient time possible. That's one reason why it's a good idea to keep your dependencies up to date, so that upgrading on short notice doesn't turn into a nightmare full of yaks and blunt shears.