#169 🤖 Can you still justify writing code by hand at work?

Happy Wednesday!

Here is issue #169 of our newsletter, bringing you news and the best tools for your current or future Rails projects…

1. 🧹 Still running DatabaseCleaner in your Rails test suite? Ariel explains why Rails' built-in transactional tests can most likely replace the database_cleaner-active_record gem, and what to check first: custom e2e setups, tests that depend on specific IDs, and order-dependent tests. In one client's suite of 10k+ tests on MySQL, removing it cut the single-process run by 20% and the parallel run by 37%. See why truncation on MySQL drove those numbers, and how to test whether your suite can drop the gem too.

2. 🤖 Can you still justify writing code by hand at work? David Bryant Copeland argues he can't find a convincing reason to hand-write code in a professional setting, since software delivery is a filter where saying no to low-value work matters most. Read the full post for the four assumptions behind his case and the open questions it leaves.

3. 🔐 CanCanCan 3.7.0 is out, and 4.0 is coming soon. In his post on CanCanCan 3.7.0 and 4.0, Alessandro Rodi says 3.7.0 mostly makes can? and accessible_by agree, which could break tests in corner cases, while 4.0 will let Active Record scopes combine with other rules but needs Ruby 3.2+ and Rails 8.0+. See his suggested upgrade order, and why cannot rules with a scope must be inverted for 4.0.


Upcoming Events & Learning

🎟️ Win a ticket to SF Ruby 2026. We're sponsoring the San Francisco Ruby Conference (Nov 10 to 12 at SFJAZZ) and we have one ticket to give away to a reader. Reply to this email by Monday, Oct 26 with one line on what you want to get out of it and we'll pick a winner next week. Travel and hotel not included.

🎃 Hacktoberfest Classic PHL Code Club is running Hacktoberfest Classic: submit three high-quality pull requests to projects you care about this October. Stop by Neighborhood Nights tonight for a kickoff and help getting started, then join virtual hack time on the 24th, followed by the Showcase on the 26th at Indy Hall, 6-8:30 pm. Come share what you worked on this month; costumes are highly encouraged. It’s an LLM-free event, and anyone who lands three high-quality PRs gets a prize.


4. 🔍 What would a machine gate catch that code review misses? Cate had Claude turn 4,176 review comments into 57 checks, and simulated against about 500 recent PRs, 71% of the roughly 700 issues they found were never raised in review. In her write-up of reverse engineering code review, she'd adopt the uncontested checks, which add only a percent or two to CI, while the rest waits on decisions the team hasn't made. See which checks she'd ship and which need a team conversation first.

5. 🧪 Still saving and restoring ENV by hand in your RSpec examples? Andrei Kaleshka replaces an 18-line around block with a stub_env helper built on stub_const, then writes it into the repo's AI instructions so the assistant uses it too. See the before and after with measured line and token counts, and the limits to know first, like child processes not inheriting the overrides.

6. 🚀 Passenger 7 is out in preview. The Passenger 7 preview announcement covers WebSocket support for Apache httpd, with a new PassengerUpgradeIdleTimeout option that closes idle connections after 60 seconds by default, and parallel rolling restarts, which can finish faster at the cost of temporarily higher memory use. It also raises the minimum supported Ruby to 3.0. Keep reading for a core memory leak fix and how to install the preview.


Check out our other articles on: Ruby | Rails | Compatibility | Upgrades | Tech
Debt
| AI

Bookmark, share, or save them for later. We hope these links are helpful. 😉

Best,

The FastRuby.io Team

Do you know anyone who would love to receive this newsletter? Tell them to subscribe👇 and catch the latest issue right in their inbox.

Don't wait to bring your Rails application up to date.

We will get on a quick call and recommend a couple of options to start upgrading your Rails app.