This year marks for me one decade working with Ruby (and Rails), barely surpassing my time with Java, and still not matching my many years with C/C++. I’ve worked with a dozen languages and ecosystems, including Python and JavaScript, but Ruby remains my preference for customized business solutions, though alas it may never displace Spring or even ASP.NET as I once hoped.
At my employer we’ve completed our third major Rails upgrade, to 6.0. As before this has involved upgrading dozens of dependencies: Ruby 2.6, Node 10, Webpacker 4.2 and Babel 7.9 for JavaScript (now a default, though we adopted it a while ago), SassC (Ruby version discontinued), Sprockets 4, Haml 5, GraphQL 1.9, RSpec-Rails 4 and Capybara 3. Rails 6 introduced Zeitwerk (mostly positive), Parallel Test (Minitest only) and multi-database support (for scaling production). ActiveRecord included various changes and deprecations and we’ve overhauled all our validation syntax and switched to foreign keys required by default.
Beyond the upgrade our system’s architecture has remained stable as we slowly add more integrations: new gems (to me) used this year included ferrum (for testing PayPal) and facebookbusiness. I also published paypal-sdk-subscriptions (with contributions) and activemerchant-flexpay. iContact reimplemented their API following a divestiture to j2 resulting in various small revisions to pocus. I’ve made no new contributions to ActiveAdmin apart from some StackOverflow answers, but I did finish the merge of Polyamorous and provide a stop-gap fix to Ransack with Rails 6.0.1. Formtastic became another ActiveAdmin dependency transitioned from the original author after falling into neglect.