Simple upgrade? Yeah, right!

In this blog post I will explain how I was bitten by simple library update. This example could be used to learn how to create your testing strategy in such cases.

I think that Ruby on Rails is very valuable web framework. You can be ready to create you first Rails application after you learn it by reading and doing examples in excellent free book: Ruby on Rails Tutorial by Michael Hartl. You will learn all development tools ecosystem that is needed in modern software development team. Ruby on Rails is one of Ruby libraries, or in Ruby world this is called gem.

In order to apply what I had learn in Hartl book, I created my company site in Ruby on Rails. It is basically static site, not many features, but despite that, it requires more than 200 Ruby gems in order to work.

When there is Rails security issue, I always update Rails. My test strategy is very simple. Check static page's links and send inquiry using contact form. Contact form has the business value for my company, because if does not work, I will lose potential customers. And after one Rails upgrade, it stopped working with following error.

It was not in my code, issue was because of turbolinks gem version. Rails upgrade broke the compatibility with dependent gem. So I had to upgrade all my gems with

bundle update

Point of this post is that software dependency libraries upgrade must also have appropriate testing strategy. There is no such thing as simple upgrade.