---
title: "Updating Rails weekly over at GitHub"
publication: "Ruby Weekly"
issue: 649
published_at: "2023-04-13"
canonical_url: "https://rubyweekly.com/issues/649"
---

Plus a more secure gem publishing experience, Sorbet leaves a bad taste, and a new Rails event. |        

#​649 — April 13, 2023 

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

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://blog.appsignal.com/2023/03/22/introducing-appsignal-log-management.html?utm_source=ruby-weekly-sponsored&utm_medium=email&utm_campaign=2023-03-22)  

Ruby Weekly 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/sdzimiuicmsafqpuxn1j.jpg)](https://github.blog/2023-04-06-building-github-with-ruby-and-rails/)  

[Building GitHub with (the Latest) Ruby and Rails](https://github.blog/2023-04-06-building-github-with-ruby-and-rails/) — GitHub is, arguably, _the_ Rails monolith with two million lines of code and 1,000 engineers working on it daily. There’s little technical content here, but it’s interesting to learn GitHub upgrades Ruby and Rails _almost every week_. Ruby engineering maturity at its finest? _"[This] allowed us to upgrade our monolith from Ruby 3.1 to Ruby 3.2 within a month of release."_ 

Adam Hess (GitHub)   [![\](https://copm.s3.amazonaws.com/1730a7fe.png)](https://blog.appsignal.com/2023/03/22/introducing-appsignal-log-management.html?utm_source=ruby-weekly-sponsored&utm_medium=email&utm_campaign=2023-03-22) 

[Smooth Logging for Ruby Developers](https://blog.appsignal.com/2023/03/22/introducing-appsignal-log-management.html?utm_source=ruby-weekly-sponsored&utm_medium=email&utm_campaign=2023-03-22) — Unlock the power of logs with AppSignal. Find all the key information in a few clicks in our clean and intuitive interface. Monitoring doesn’t need to be a hassle, AppSignal is here to help. 

AppSignal sponsor   

[Introducing Security Device Support for RubyGems’ CLI](https://blog.rubygems.org/2023/04/11/security-device-cli-support.html) — Ruby’s package ecosystem doesn’t get attacked as much as npm, say, but it’s still possible to distribute malicious code via gems. The RubyGems project, then, has set out to make package distribution more secure and now you can use a registered security device as a multi-factor auth method with the RubyGems CLI. 

Jenny Shen (RubyGems)   

[RubyGems 3.4.12](https://blog.rubygems.org/2023/04/11/3.4.12-released.html) has been released to add support for the above.  

📅 [_Rails World_ is Coming](https://rubyonrails.org/2023/4/6/rails-world-is-coming) — _The Rails Foundation_ announces its first-ever conference, _Rails World_, happening in Amsterdam on October 5-6. They are only planning to sell 650 tickets, so you’ll need to be fast when they drop. DHH also [professed his enthusiasm](https://world.hey.com/dhh/go-rails-world-4f3c42e6) about the conference, working with Amanda, and the future of Rails. 

Amanda Perino   

**QUICK BITS** 

- The [removal of RubyGems' Dependency API has been delayed](https://blog.rubygems.org/2023/04/07/dependency-api-deprecation-delayed.html) by a month to May 10.
- [Planet Argon has joined the Rails Foundation](https://rubyonrails.org/2023/4/9/planet-argon-joins-rails-foundation-as-contributing-member) as a contributing member.
- [▶️ A fun visualization of the core Ruby repo](https://www.youtube.com/watch?v=-_y4y1o6YQY) by _Gource_, a repo history visualization tool.
- DHH has recently written about Basecamp's intentions to get 'off the cloud' and back to owning their own hardware: [the hardware has now turned up.](https://world.hey.com/dhh/the-hardware-we-need-for-our-cloud-exit-has-arrived-99d66966)
- Heroku has been doing some work to offer [more predictable performance on shared dynos.](https://blog.heroku.com/more-predictable-shared-dyno-performance)  

📕 Tutorials, Articles, and Videos  

[Humane Rails Forms Inputs](https://fly.io/ruby-dispatch/humane-rails-forms/) — Brad’s fundamental point is that computers should work for _us_ and be more forgiving of our inputs. To this end, he introduces [Inputomatic](https://github.com/rocketshipio/inputomatic), a gem that _“defines a few casting behaviors”_ to make inputs friendlier. 

Brad Gessler   

[Audit Logging Approaches](https://blog.appsignal.com/2023/04/12/audit-logging-in-ruby-and-rails.html) — An exploration of some options to implement audit logs, including PaperTrail, Audited, AuditLog, AppSignal, as well as a custom implementation. 

Darren Broemmer   

[The Rails App Review Is an Independent, Rapid, 9 Critical Point Audit](https://reinteractive.com/services/app-review) — Including security, technical debt, performance and code giving you peace of mind and confidence about the state of your app. 

reinteractive Pty Ltd sponsor   

[How We Upgraded Our Entire Rails Monolith in One Month](https://jonathanloos97.medium.com/hotwired-turbo-how-we-upgraded-our-entire-ruby-on-rails-monolith-in-one-month-25d110871039) — This brief story focuses on the frontend bits of the migration, moving to `@hotwired/turbo`, including the biggest snafus they encountered and what was done in each case. If you’re moving to Rails 7, this is a good read. 

Jonathan Loos (Harled)   

[Why I Stopped Using Sorbet in All My Ruby Projects](https://betterprogramming.pub/why-i-stopped-using-sorbet-in-all-my-ruby-projects-9366bf6dd116) — A walled article on Medium so if you can’t read it, the TLDR is it’s down to bloated code, struggles to get buy-in, and tooling issues, which have proven too much of a trade off for the author. 

Ashley Peacock   

As an aside, publishing a blog post as a member-only story on Medium is a great way to limit its reach. I'll occasionally include interesting pieces like the above, but I figured I should let you know.  

[TIL: Avoid `default_role` as a Class Method Name](https://www.vector-logic.com/blog/posts/til-avoid-default-role-as-class-method-in-active-record) — When updating a mature Rails project to use v6.1 defaults, an unexpected `stack level too deep` error was encountered. It turns out a name clash, around a `default_role` method, had occurred. 

Domhnall Murphy   

[A Rubyist's Walk Along the C-Side (Part 10): Benchmarking](https://blog.peterzhu.ca/ruby-c-ext-part-10/) — The latest instalment of Peter’s epic series on writing Ruby C extensions. 

Peter Zhu   

[How to Decommission a Rails App](https://blog.planetargon.com/blog/entries/how-to-decommission-your-ruby-on-rails-application) — Did your organization decide to sunset a Rails app? The folks at Planet Argon have tackled such projects and have put together a basic way to approach the problem. 

Robby Russell  

🛠 Code & Tools 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/mcrt61rp0saeuqdhzzco.jpg)](https://github.com/MiniProfiler/rack-mini-profiler)  

[rack-mini-profiler 3.1: A Profiler for Rack Apps in Dev or Production](https://github.com/MiniProfiler/rack-mini-profiler) — A popular piece of middleware that adds a ‘speed badge’ to pages in your app to show off database, call-stack and memory profiling data. Ruby performance guru Nate Berkopec seems to have become involved as of [v3.1.0.](https://github.com/MiniProfiler/rack-mini-profiler/releases/tag/v3.1.0) 

Sam Saffron et al.   

[Mechanize 2.9: A Library for Automated Web Interaction](https://github.com/sparklemotion/mechanize) — Automatically stores and sends cookies, follows redirects, and can follow links and submit forms, etc. Now needs Ruby 2.6 or newer. 

Sparkle Motion   

[Simplify Transactional Email Delivery in Your Ruby App - Free Guide](https://www.courier.com/blog/tutorial-how-to-send-email-in-a-ruby-app/?utm_campaign=q1-fy23-cooper-press&utm_source=email&utm_medium=ruby-newsletter-4-13-23&utm_content=ruby-newsletter-blog-how-to-send-emails-ruby) — Integrate an email service provider, design your email template, test and preview, and send! Sample code included. 

Courier.com sponsor   

[GemUpdater 6.0: Update Gems in Your Gemfile and Fetch Their Changelogs](https://github.com/MaximeD/gem_updater) — The idea is that you don’t just want to update gems en masse, you want to know how they changed too. 

Maxime Demolin   

[Forme 2.4: HTML Form Generation Library](https://github.com/jeremyevans/forme) — A structured way to create HTML forms with no external dependencies and a simple API. 

Jeremy Evans   

[ActionMailer Balancer: Send Mail Through One of Several Methods](https://github.com/railsware/actionmailer-balancer) — If you need to migrate to a new mail provider or otherwise want to spread load between multiple providers, this could be a big help. 

Railsware    

Jobs  

[Find Ruby Jobs with Hired](https://hired.com/join/?utm_source=newsletter&utm_medium=sponsor&utm_campaign=%28b2c%29%28l-all%29%28r-all%29%28cooper-rubyweekly%29&utm_content=easy-job-hunting) — Hired makes job hunting easy-instead of chasing recruiters, companies approach you with salary details up front. Create a free profile now. 
Hired   

[Senior Backend Engineer (Remote - EMEA)](https://booqable.com/careers/backend-developer/) — Booqable prides itself on being a global company with team members working together from across the world. We are remote-first, so you can join us from wherever you are. 
Booqable      

- [attr_encrypted 4.0](https://github.com/attr-encrypted/attr_encrypted)
 ↳ Generate `attr_accessor`s that encrypt and decrypt.
- [Countries 5.4](https://github.com/countries/countries)
 ↳ Country information helpers.
- [Squib 0.19](http://squib.rocks/)
 ↳ Ruby DSL for prototyping card games. ([Repo.](https://github.com/andymeneely/squib))
- [MRSK 0.11](https://github.com/mrsked/mrsk/releases/tag/v0.11.0)
 ↳ Deploy web apps anywhere.
- [KMS Encrypted 1.5](https://github.com/ankane/kms_encrypted)
 ↳ Key management for Lockbox and `attr_encrypted`.
- [Fisk 2.3.2](https://github.com/tenderlove/fisk)
 ↳ Tenderlove's pure Ruby x86-64 assembler.
- [Sinatra 3.0.6](https://github.com/sinatra/sinatra/blob/main/CHANGELOG.md#306--2023-04-11)         

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/).
