---
title: "14 minutes to 4 seconds: An RSpec to Minitest migration story"
publication: "Ruby Weekly"
issue: 786
published_at: "2026-02-05"
canonical_url: "https://rubyweekly.com/issues/786"
---

Plus the 2026 Gem Fellowship recipients, the evolution of Ruby from 2.0 to 4.0, and a 48-hour gem cooldown option. |        

#​786 — February 5, 2026 

[Read on the Web](https://rubyweekly.com/issues/786)  

Together with [![AppSignal logo\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,e_trim,w_700,h_120/e_make_transparent/co_white,e_outline:7/lme8p344dw1aodshz9px.png)](https://www.appsignal.com/?utm_source=newsletter&utm_medium=paid&utm_campaign=rubyweekly&utm_term=2-5&utm_content=primary)   

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/btnjq8pavgnwqbcourrv.jpg)](https://rubyreferences.github.io/rubychanges/evolution.html)  

[Ruby Evolution: New Ruby Features Added in v2.0 → 4.0](https://rubyreferences.github.io/rubychanges/evolution.html) — First launched a couple of years ago covering up to Ruby 3.1, Victor’s handy resource covering the key changes to the Ruby language over the years now goes up to Ruby 4.0. Helpful as both a reference guide and a subtle reminder of features you really ought to know but likely don’t. 

Victor Shepelev   [![\](https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/ef6de77d.png)](https://www.appsignal.com/?utm_source=newsletter&utm_medium=paid&utm_campaign=rubyweekly&utm_term=2-5&utm_content=primary) 

[Your Rails App Has an N+1 Problem. AppSignal Will Show You Where](https://www.appsignal.com/?utm_source=newsletter&utm_medium=paid&utm_campaign=rubyweekly&utm_term=2-5&utm_content=primary) — AppSignal auto-detects N+1 queries, slow ActiveRecord calls, and memory leaks in your Ruby app. Get Sidekiq dashboards, ActionView render times, and Puma metrics out of the box with no custom instrumentation needed. With one gem install, you’re monitoring in minutes. [Free 30-day trial, no credit card required](https://www.appsignal.com/?utm_source=newsletter&utm_medium=paid&utm_campaign=rubyweekly&utm_term=2-5&utm_content=primary). 

AppSignal sponsor   

[Announcing the 2026 Gem Fellowship](https://gem.coop/updates/2026-fellowship/) — [gem.coop](https://gem.coop/) and Mike Perham recently announced a program to give $100,000 in grants to Ruby open source maintainers, and the ‘class of 2026’ has been revealed with projects like Rouge, Herb, Bridgetown, and Ferrum set to benefit. 

Gem․Coop   

💡 Meanwhile, gem․coop has [released a 'cooldown' feature](https://gem.coop/updates/4/) in beta which prevents the installation of gems until they have been published for 48 hours.  

**⚡️ IN BRIEF:** 

- At FOSDEM last week, Mike McQuaid (of Homebrew fame) gave [▶️ a talk about what happened to RubyGems during its crisis last year](https://www.youtube.com/watch?v=0AF8ayewrAQ), and what we can learn from it.
- Garry Tan, the CEO of Y Combinator, posted [on X](https://x.com/garrytan/status/2018368128108167344) about how he thinks _"people are sleeping a bit on how much Ruby on Rails + Claude Code is a crazy unlock."_
- 🇧🇬 [Balkan Ruby](https://balkanruby.com/) is taking place in Sofia, Bulgaria this May 15-16 and there are [just four days left to submit your proposal](https://forms.gle/Xe2KfxiSCzUb8nqE7) if you'd like to speak.
- 🇵🇱 [Ruby Community Conference](https://www.rubycommunityconference.com/) is taking place this March 13 in Kraków, Poland. Obie Fernandez and Marco Roth will be speaking.
- 🇮🇹 [Rubycon Italy](https://rubycon.it/) is taking place on May 8 in Rimini.   

[Responsive Code Formatting on the Web – The Ruby Way](https://mostlyobvio.us/2026/02/responsive-code-formatting/) — Rubyist Paweł wanted the code blocks on his site to render well and be responsive. He explored three options: using Ruby and [Rouge](https://github.com/rouge-ruby/rouge) via WebAssembly, a pre-rendered approach, and using Hotwire and Turbo Frames. A creative look at an old problem, complete with code and demos. 

Paweł Pacana   

[14 Minutes → 4 Seconds: A Tale of Switching from RSpec to Minitest](https://x.com/ryanrhughes/status/2019258699001294911) — A Rails team traces their test suite migration from RSpec and FactoryBot to Minitest and fixtures, sharing the real numbers, the migration strategy that worked, and the parts where AI tooling fell flat. 

Ryan R. Hughes   

[Implementing OAuth in _Hotwire Native_ Apps with Bridge Components](https://mikedalton.co/2026/01/26/hotwire-native-oauth-bridge-component/) — A thorough guide to implementing OAuth in Hotwire Native iOS apps using bridge components and system browsers to bypass OAuth provider restrictions on embedded webviews. 

Mike Dalton   

[Your CTO Needs Real Estimates to Upgrade Rails, Not AI](https://go.fastruby.io/bwb) — Get a roadmap backed by 60,000+ dev/hours shipping upgrades. Designed and delivered by humans, for enterprise clients. 

The Rails Upgrade Roadmap sponsor   

📄 [Speeding Up Postgres Full-Text Search with Persistent TSVectors](https://danielabaron.me/blog/speed-up-pg-fts-with-persistent-ts-vectors/) – A fantastic Rails-oriented tutorial. Daniela Baron 

📄 [Killing IDORs in Rails Applications: Make the Database Say 'No' By Default](https://pentesterlab.com/blog/killing-idors-in-rails) – How to avoid 'Insecure Direct Object References' in Rails, and why `unscoped` is a security footgun. Louis Nyffenegger 

📄 [Ruby Skills: Teaching Claude Code About Ruby's Tooling](https://st0012.dev/2026/01/24/ruby-skills-teaching-claude-code-about-ruby-tooling-and-ecosystem/) Stan Lo 

📄 [Implementing a Production RAG System on Rails](https://jessewaites.com/blog/post/rag-on-rails/) Jesse Waites 

📺 [Using Claude Code to Build Rails Apps](https://www.driftingruby.com/episodes/claude-code) – A 24 minute walkthrough. Drifting Ruby  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ozsbf8hdutq2caf7qqnh.jpg)](https://brakemanscanner.org/)  

[Brakeman 8.0: The Vulnerability Scanner for Rails Apps](https://brakemanscanner.org/) — A long-standing command-line tool that analyzes the source code of your Rails apps and highlights potential security vulnerabilities. More useful than ever both in the current security climate, and especially if you’re letting AI write any code. 

Justin Collins   

[Less Bloat. Lower Cost. Try Ruby App Observability for Free!](https://www.honeybadger.io/tour/logging-observability/?utm_source=rubyweekly&utm=email&utm_campaign=2026-02-05-rubyweekly-link) — Learn more from your errors! Honeybadger delivers fast, powerful querying with far less data ingest. [Try it FREE!](https://www.honeybadger.io/tour/logging-observability/?utm_source=rubyweekly&utm=email&utm_campaign=2026-02-05-rubyweekly-link) 

Honeybadger sponsor   

[JRuby 10.0.3.0 Released](https://www.jruby.org/2026/02/02/jruby-10-0-3-0.html) — A solid stabilization release for JRuby 10 (the Ruby 3.4 compatible version) with over 80 issues and PRs closed. The non-gem standard library is now upgraded to Ruby 3.4.5. 

JRuby Team   

🕹️ [Taylor: A `mruby` and `raylib`-Based 2D Game Engine](https://taylormadetech.dev/) — The author is _“trying to replicate the simplicity of QBasic but with more of a modern approach.”_ Write in basic Ruby, and get cross-platform support so your games can be distributed. There’s also an [online playground](https://playground.taylormadetech.dev/) where you can run and customize some basic examples. [GitHub repo.](https://github.com/HellRok/Taylor) 

Sean Earle   

[Semian: Get Resiliency When Calling External Services](https://github.com/Shopify/semian) — Intercepts resource access from several different libraries (e.g. mysql2, redis, Net::HTTP) and ‘fails fast’ when said external resources are slow or unresponsive. 

Shopify   

- [Chroma for Ruby](https://www.contraption.co/chroma-for-ruby/) – [Chroma](https://github.com/chroma-core/chroma)'s first official Ruby client, built by a Chroma employee, brings another hybrid vector search option to the Ruby ecosystem.
- [RuCaptcha v3.4.0](https://github.com/huacnlee/rucaptcha) – CAPTCHAs for Rails with self-generated images.
- [Elasticsearch 9.3](https://github.com/elastic/elasticsearch-ruby/releases/tag/v9.3.0) – Official Ruby client for Elasticsearch.
- [SmarterCSV v1.15](https://github.com/tilo/smarter_csv) – A more intelligent Ruby CSV library.
- [Spree 5.3](https://spreecommerce.org/announcing-spree-commerce-5-3-with-price-lists-customer-groups-new-admin-tools/) – Popular Rails-based ecommerce platform.
- [RubyGems and Bundler 4.0.6](https://blog.rubygems.org/2026/02/05/4.0.6-released.html)       

📰 Classifieds   

🤔 What is request queue time, and why should you care? We wrote [the ultimate guide](https://judoscale.com/blog/request-queue-time?utm_source=ruby-weekly&utm_medium=newsletter&utm_campaign=content&utm_content=ultimate-guide-queue-time). 

--- 

🛍️ See how Vinted runs 10M+ daily Workflows with Ruby and [Temporal](https://temporal.io/resources/case-studies/vinted-10-12-million-worflows-daily-dev-velocity-low-cost?utm_source=newsletter&utm_medium=sponsorship&utm_campaign=newsletter-2026-02-05-ruby-weekly&utm_content=ruby-weekly-vinted-case-study), keeping payment logic reliable, readable, and easy to evolve.    

📢 Elsewhere in the ecosystem  

Some other interesting stories in the broader landscape:  

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/skxfbllrmtcrouwhenoe.jpg)](https://github.com/engneer-hamachan/pro-editor-pocket)  

- [PicoRuby](https://picoruby.org/) is a tiny Ruby implementation for single chip microcontrollers, and someone's created a tiny [IDE for it for the T-Deck Plus handheld device.](https://github.com/engneer-hamachan/pro-editor-pocket)
- Sam Saffron, of Discourse fame, got sick of 1Password's `op read` taking 200ms+ to run so built [a caching daemon called `op-cache`.](https://github.com/SamSaffron/op-cache)
- _"As part of GitHub’s move to React-based interfaces, [Primer ViewComponents](https://github.com/primer/view_components#readme) is in maintenance mode as of February 2026."_
- _The Guardian_ had a spare Mac Mini in their office and decided to [use it as a GitHub Actions runner for their CI/CD, getting some big wins.](https://theguardian.engineering/blog/faster-cheaper-messier-lessons-from-switch-to-self-hosted-github-actions) It's probably running OpenClaw now though.
- Intimidated by over 1900 choices on Google Fonts? [Sweetfont](https://sweetfont.com/) lets you dial in what sort of typeface you want by vibes alone.         

Curated by [Peter Cooper](https://twitter.com/cooperx86) and [Glenn Goodrich](https://twitter.com/ruprict).
Published by [Cooperpress](https://cooperpress.com/). 

[Change your email](https://rubyweekly.com/edit_subscription/*|UID|*) or [Stop getting this newsletter.](https://rubyweekly.com/leave/*|UID|*) 

© Cooper Press Ltd · Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

Other weekly newsletters we publish include [Postgres Weekly](https://postgresweekly.com/), [React Status](https://react.statuscode.com/), [Frontend Focus](https://frontendfoc.us/), and [JavaScript Weekly](https://javascriptweekly.com/).
