<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0">
  <channel>
    <title>Ruby Weekly</title>
    <description>A free, once–weekly e-mail round-up of Ruby news and articles.</description>
    <link>https://rubyweekly.com/</link>
    <item>
      <title>TruffleRuby 34 released with full Ruby 3.4 support</title>
      <link>https://rubyweekly.com/issues/796</link>
      <description>

  

    
    
    
    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;div&gt;    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;
&lt;td align="left" style="padding-left: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;#​796 — April 16, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183884/rss" style=" color: #0055bb;   "&gt;Read on the Web&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 12px;  padding-left: 12px;"&gt;&lt;p&gt;Ruby Weekly&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/183886/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/uregee4dgz0oh3mn4s04.jpg" width="640" style="    line-height: 100%;       "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183886/rss" title="truffleruby.dev" style=" color: #0055bb;    font-size: 1.1em; line-height: 1.4em;"&gt;TruffleRuby 34: The Fastest Ruby 3.4 Implementation?&lt;/a&gt;&lt;/span&gt; — TruffleRuby is a high-performance Ruby built upon the JIT-heavy &lt;a href="https://rubyweekly.com/link/183887/rss" style=" color: #0055bb;   "&gt;GraalVM&lt;/a&gt;, designed for dynamic languages. v34 brings Ruby 3.4 support &lt;em&gt;(&lt;a href="https://rubyweekly.com/link/183888/rss" style=" color: #0055bb;   "&gt;97% of ruby/spec&lt;/a&gt;)&lt;/em&gt; implementing every item in the 3.4 changelog, plus significant efficiency improvements.&lt;/p&gt;
  &lt;p&gt;Daloze, Menard and Konchyn &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;💡 I’ve been impressed by TruffleRuby. It supports many native extensions, runs most apps unchanged, and can deliver 10×+ speedups over CRuby on the right workloads, at the cost of slower startup. Worth a try.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://rubyweekly.com/link/183885/rss" style=" color: #0055bb;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/ed597074.png" width="110" height="110" style="padding-top: 12px; padding-left: 12px;     line-height: 100%;    "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183885/rss" title="go.fastruby.io" style=" color: #0055bb;    font-size: 1.05em;"&gt;Why FastRuby? "Their Services Are as Essential as Hosting"&lt;/a&gt;&lt;/span&gt; — How a Solo SaaS founder got fed up chasing contractors and switched to Bonsai. With &lt;a href="https://rubyweekly.com/link/183889/rss" style=" color: #0055bb;   "&gt;fixed-cost maintenance&lt;/a&gt;, he got reliable Rails upgrades with minimal oversight. "I can't imagine doing business without this partnership." See how it works. 🚀&lt;/p&gt;
  &lt;p&gt;Bonsai by FastRuby.io® &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183890/rss" title="blog.rubygems.org" style=" color: #0055bb;    font-size: 1.05em;"&gt;RubyGems.org Now Has a Public Roadmap&lt;/a&gt;&lt;/span&gt; — The &lt;a href="https://rubyweekly.com/link/183891/rss" style=" color: #0055bb;   "&gt;RubyGems repository&lt;/a&gt; is a big project with lots of moving parts, but it’s been hard to keep track of what they’re working on. Now, we can &lt;a href="https://rubyweekly.com/link/183892/rss" style=" color: #0055bb;   "&gt;see what’s in the pipeline&lt;/a&gt;, including SBOM support, the ability to report suspicious gems, and making &lt;a href="https://rubyweekly.com/link/183893/rss" style=" color: #0055bb;   "&gt;organizations&lt;/a&gt; generally available.&lt;/p&gt;
  &lt;p&gt;Colby Swandale (RubyGems) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;⚡️ IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🎤 The &lt;em&gt;On Rails&lt;/em&gt; podcast is back after a hiatus with &lt;a href="https://rubyweekly.com/link/183894/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;an episode featuring DNSimple's Simone Carletti&lt;/a&gt; talking about how Ruby and Rails remain at the heart of DNSimple's multi-language stack.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183924/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyForum.org&lt;/a&gt; has been going from strength to strength lately. Well worth dropping in if you like the forum format.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183925/rss" title="evilmartians.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;The &lt;em&gt;Gemfile of Dreams&lt;/em&gt; Returns for 2026&lt;/a&gt;&lt;/span&gt; — This long-running living article distills several developers’ wisdom into a curated selection of useful libraries for building modern Rails apps. Strong recommendations of good dependencies.&lt;/p&gt;
  &lt;p&gt;Evil Martians &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183926/rss" title="evilmartians.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Vite on Rails &lt;em&gt;Without&lt;/em&gt; the Proxy&lt;/a&gt;&lt;/span&gt; — The frontend build tool &lt;a href="https://rubyweekly.com/link/183927/rss" style=" color: #0055bb;   "&gt;Vite&lt;/a&gt; runs a dev server. Propshaft (Rails’ asset pipeline) expects files on disk. They’ve struggled to share a stage without a Rack proxy (like &lt;a href="https://rubyweekly.com/link/183928/rss" style=" color: #0055bb;   "&gt;Vite Ruby&lt;/a&gt;), but &lt;a href="https://rubyweekly.com/link/183929/rss" style=" color: #0055bb;   "&gt;rails_vite&lt;/a&gt; makes their apparent incompatibilities seamlessly disappear.&lt;/p&gt;
  &lt;p&gt;Svyatoslav Kryukov &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183895/rss" title="link.testdouble.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Coffee Time Webinar: AI Harnesses&lt;/a&gt;&lt;/span&gt; — On April 22 at 2 pm ET, senior devs will discuss AI approaches and why constraints are key to agentic coding outcomes.&lt;/p&gt;
  &lt;p&gt;Test Double &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📉 &lt;a href="https://rubyweekly.com/link/183936/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;TestProf 1.6 and Surprising Finds From Profiling 30,000 Specs&lt;/a&gt; – A writeup of halving the runtime of a 30k-spec test suite, plus the work behind &lt;a href="https://rubyweekly.com/link/183937/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;TestProf 1.6&lt;/a&gt;. &lt;cite&gt;Vladimir Dementyev&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/183896/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Approaches to Debugging Query Performance in Rails&lt;/a&gt; – A tour of techniques and gems, as well as tools for MySQL, Postgres, and SQLite. &lt;cite&gt;Amol Joshi&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/183897/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Use Rails Combined Credentials&lt;/a&gt; – How to handle credentials the modern Rails 8.1 way. &lt;cite&gt;Andy Croll&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/183898/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Migrating a Rails App from Heroku to Railway&lt;/a&gt;  &lt;cite&gt;Juan Vasquez (FastRuby)&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;🛠 Code &amp;amp; Tools&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/183899/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ncekqe261ergujq65ejn.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183899/rss" title="keithrbennett.github.io" style=" color: #0055bb;    font-size: 1.05em;"&gt;CovLoupe: &lt;em&gt;SimpleCov&lt;/em&gt; Coverage for Terminals, Scripts, and Agents&lt;/a&gt;&lt;/span&gt; — Provides a more accessible interface to the JSON output produced by &lt;a href="https://rubyweekly.com/link/183900/rss" style=" color: #0055bb;   "&gt;SimpleCov&lt;/a&gt; via a CLI app, MCP server, or methods you can use in Ruby itself. Keith has &lt;a href="https://rubyweekly.com/link/183901/rss" style=" color: #0055bb;   "&gt;▶️ a screencast showing it off.&lt;/a&gt; I used it on my &lt;a href="https://rubyweekly.com/link/183902/rss" style=" color: #0055bb;   "&gt;PureJPEG library&lt;/a&gt; and it was useful.&lt;/p&gt;
  &lt;p&gt;Keith Bennett &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183903/rss" title="railspress.org" style=" color: #0055bb;    font-size: 1.05em;"&gt;RailsPress: A Rails Engine for Blogging and Content Management&lt;/a&gt;&lt;/span&gt; — A mountable engine for Rails 8 that gives you blogging, CMS, and structured content management without building it from scratch. Think WordPress-style content management, but native to Rails.&lt;/p&gt;
  &lt;p&gt;Avi Flombaum &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183904/rss" title="posetteconf.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;44 Postgres Talks To Choose From All in One Free, Virtual Event&lt;/a&gt;&lt;/span&gt; — Join POSETTE: An Event for Postgres 2026, a free &amp;amp; virtual Postgres developer event, 16–18 Jun. &lt;a href="https://rubyweekly.com/link/183904/rss" style=" color: #0055bb;   "&gt;Check out the schedule&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;Microsoft | AMD &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;📄&lt;/span&gt; &lt;a href="https://rubyweekly.com/link/183905/rss" title="hexapdf.gettalong.org" style=" color: #0055bb;    font-size: 1.05em;"&gt;HexaPDF 1.7: PDF Generation and Manipulation in Ruby&lt;/a&gt;&lt;/span&gt; — A versatile PDF creation and manipulation library. There are &lt;a href="https://rubyweekly.com/link/183906/rss" style=" color: #0055bb;   "&gt;lots of examples.&lt;/a&gt; Now with smart text extraction for text laid out on pages, plus ECDSA and DSA digital signing support. AGPL licensed with a commercial option.&lt;/p&gt;
  &lt;p&gt;Thomas Leitner &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183907/rss" title="spreecommerce.org" style=" color: #0055bb;    font-size: 1.05em;"&gt;Spree 5.4: The Rails-Based Ecommerce Platform&lt;/a&gt;&lt;/span&gt; — A mature, open source Rails ecommerce system that’s gone API-first and now plays nicely with modern JS frontends, adding a TypeScript SDK and Next.js starter.&lt;/p&gt;
  &lt;p&gt;Spree Commerce &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📰 Classifieds&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;💌 What is happening at Heroku?? Judoscale wrote a &lt;a href="https://rubyweekly.com/link/183908/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;letter from the dev community,&lt;/a&gt; expressing our concerns.&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/183909/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/q3a7j5c1nzkkahxhqjo8.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183909/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;wxRuby3 1.8&lt;/a&gt; &lt;em&gt;(above)&lt;/em&gt; – Cross-platform GUI library based on the native widget-focused &lt;a href="https://rubyweekly.com/link/183910/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;wxWidgets&lt;/a&gt;. &lt;em&gt;(&lt;a href="https://rubyweekly.com/link/183911/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Glimmer DSL for WX&lt;/a&gt; is another option to consider in this space.)&lt;/em&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183912/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Cucumber 11.0&lt;/a&gt; – Mature BDD framework that uses &lt;a href="https://rubyweekly.com/link/183913/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;plain-English&lt;/a&gt; feature files to drive executable tests.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183914/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Serverless Rack 2.0&lt;/a&gt; – &lt;a href="https://rubyweekly.com/link/183915/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Serverless framework&lt;/a&gt; plugin to deploy Rack-based apps. Now with Rack 3 support.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;✉️ &lt;a href="https://rubyweekly.com/link/183916/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Devise::MultiEmail 4.0&lt;/a&gt; – Devise extension adding support for users with multiple email addresses.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183917/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;React on Rails 16.6&lt;/a&gt; – Integrates Rails with server-side rendering of React.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183918/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Async::HTTP 0.95&lt;/a&gt; – Asynchronous HTTP 1.0, 1.1 and 2 client and server.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183919/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Pry::StackExplorer 0.6.3&lt;/a&gt; – Navigate the call stack interactively in &lt;a href="https://rubyweekly.com/link/183920/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Pry&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183921/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;ruby-plsql 0.9&lt;/a&gt; – Ruby API for calling Oracle PL/SQL procedures.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183922/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Prosopite 2.2&lt;/a&gt; – Reliable Rails N+1 query auto-detection.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183923/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Rake 13.4&lt;/a&gt; – Ruby's trusty Make-like build utility.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://rubyweekly.com/open/796/rss" width="1" height="1" /&gt;</description>
      <pubDate>Thu, 16 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://rubyweekly.com/issues/796</guid>
    </item>
    <item>
      <title>A maintainer's guide to Ruby's release cycle</title>
      <link>https://rubyweekly.com/issues/795</link>
      <description>

  

    
    
    
    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;div&gt;    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;
&lt;td align="left" style="padding-left: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;#​795 — April 9, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183503/rss" style=" color: #0055bb;   "&gt;Read on the Web&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 12px;  padding-left: 12px;"&gt;&lt;p&gt;Ruby Weekly&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/183505/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/ymrf4ux1tigprlgodmx2.jpg" width="640" style="    line-height: 100%;       "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183505/rss" title="dev.to" style=" color: #0055bb;    font-size: 1.1em; line-height: 1.4em;"&gt;A Maintainer's Guide to Ruby's Release Cycle&lt;/a&gt;&lt;/span&gt; — Core team member &lt;code&gt;hsbt&lt;/code&gt; explains how Ruby 3.2 and 3.3 are reaching their end, how Ruby versioning works generally, who maintains what, and what terms like ‘security maintenance’ mean in the context of a Ruby version’s lifecycle.&lt;/p&gt;
  &lt;p&gt;Hiroshi Shibata &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://rubyweekly.com/link/183504/rss" style=" color: #0055bb;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/4dc848ce.png" width="165" height="120" style="padding-top: 12px; padding-left: 12px;     line-height: 100%;    "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183504/rss" title="fandf.co" style=" color: #0055bb;    font-size: 1.05em;"&gt;Your GitHub Actions workflows, but actually fast&lt;/a&gt;&lt;/span&gt; — Depot CI runs your existing GitHub Actions YAML — no rewrites needed. Pre-warmed sandboxes so jobs start fast, built-in caching, and SSH into any running job to debug. Migrate your workflows in one command: &lt;code&gt;depot ci migrate&lt;/code&gt;.&lt;/p&gt;
  &lt;p&gt;Depot &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;⚡️ IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Hiroshi Shibata has drafted an initial design proposal for &lt;a href="https://rubyweekly.com/link/183507/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;how dependency cooldowns / delayed updates could work in RubyGems&lt;/a&gt; and Bundler. Notably, per-gem granularity is avoided.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🌐 &lt;a href="https://rubyweekly.com/link/183508/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyGems.org&lt;/a&gt; has &lt;a href="https://rubyweekly.com/link/183509/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;temporarily disabled access to localized/translated pages&lt;/a&gt; due to intense crawler activity.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤖 Rails has gained &lt;a href="https://rubyweekly.com/link/183510/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;an official &lt;code&gt;AGENTS.md&lt;/code&gt; file&lt;/a&gt; aimed at AI agents being used to work directly upon the Rails code base (not regular apps).&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183511/rss" title="andre.arko.net" style=" color: #0055bb;    font-size: 1.05em;"&gt;Towards an Amicable Resolution with Ruby Central&lt;/a&gt;&lt;/span&gt; — Last week, Richard Schneeman and Ruby Central published &lt;a href="https://rubyweekly.com/link/183512/rss" style=" color: #0055bb;   "&gt;a report&lt;/a&gt; into 2025’s contentious ‘RubyGems fracture’ and now former Bundler maintainer André has his say and makes two requests for the incident to be considered amicably settled.&lt;/p&gt;
  &lt;p&gt;André Arko &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183543/rss" title="danielabaron.me" style=" color: #0055bb;    font-size: 1.05em;"&gt;Dynamic Ruby and Hidden Maintenance Costs&lt;/a&gt;&lt;/span&gt; — ‘Clever’ has a cost, so it better have a valuable benefit. Ruby and Rails make metaprogramming easy, but in long-lived app code, explicit and boring often beats elegant and clever.&lt;/p&gt;
  &lt;p&gt;Daniela Baron &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183506/rss" title="blog.rubygems.org" style=" color: #0055bb;    font-size: 1.05em;"&gt;Protecting RubyGems.org from the Outside In&lt;/a&gt;&lt;/span&gt; — A quick update on work the RubyGems team has been doing to ensure the integrity of the gem registry, including password checks and validating gem contents at push time.&lt;/p&gt;
  &lt;p&gt;Colby Swandale &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183513/rss" title="newsletter.masilotti.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Building a (Frontend) Framework-Agnostic Gem&lt;/a&gt;&lt;/span&gt; — Let’s say you want your code to work alongside ERB, React, and Vue. There’s more than compatibility to contend with, as each approach has to &lt;em&gt;feel&lt;/em&gt; right, which is the harder bit.&lt;/p&gt;
  &lt;p&gt;Joe Masilotti &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183514/rss" title="sinaptia.dev" style=" color: #0055bb;    font-size: 1.05em;"&gt;AI Shouldn't Cost More Than It Saves&lt;/a&gt;&lt;/span&gt; — We can find where LLMs pay off, validate with real data, and tune for cost/effectiveness. Need help from experts? &lt;a href="https://rubyweekly.com/link/183515/rss" style=" color: #0055bb;   "&gt;Let's talk.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Sinaptia &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📺 &lt;a href="https://rubyweekly.com/link/183516/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Teaching Claude Code to Upgrade Rails&lt;/a&gt; – A lightning talk from &lt;a href="https://rubyweekly.com/link/183517/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;&lt;em&gt;Artificial Ruby&lt;/em&gt;&lt;/a&gt;, a New York-based Ruby group. &lt;cite&gt;Ernesto Tagwerker&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/183518/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;How to Publish Gems with Trusted Publishing&lt;/a&gt; – Once set up, it's as easy as pushing a tag to GitHub. &lt;cite&gt;RubyGems Guides&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/183519/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;From Sidekiq to Temporal: A Zero-Downtime Migration Strategy&lt;/a&gt;  &lt;cite&gt;David Haley (FireHydrant)&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/183520/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;A Testing Anti-Pattern: Distracting Setup Data&lt;/a&gt;  &lt;cite&gt;Jason Swett&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;🛠 Code &amp;amp; Tools&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/183523/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/w03mfvclc1kkmi4o5d1s.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183523/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Coverband 6.2: Ruby Code Coverage, But in Production&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://rubyweekly.com/link/183524/rss" style=" color: #0055bb;   "&gt;SimpleCov&lt;/a&gt; is great for checking code coverage during testing, but Coverband takes the idea into production, checking live code usage with low performance overhead.&lt;/p&gt;
  &lt;p&gt;Dan Mayer &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183521/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Parallel 4.0: Parallel Processing Made Simple&lt;/a&gt;&lt;/span&gt; — Run blocks of code in parallel processes, threads, or ractors using &lt;code&gt;map&lt;/code&gt;, &lt;code&gt;each&lt;/code&gt;, &lt;code&gt;any?&lt;/code&gt;, and &lt;code&gt;all?&lt;/code&gt;. v4.0 requires Ruby 3.3+ and adds ractor support for Ruby 4.x.&lt;/p&gt;
  &lt;p&gt;Michael Grosser &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183522/rss" title="www.tigerdata.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;ActiveRecord + Postgres + Analytics. No New Stack Required.&lt;/a&gt;&lt;/span&gt; — TimescaleDB extends Postgres so analytics runs on live data. Same ORM, same queries, no pipeline. Start for free.&lt;/p&gt;
  &lt;p&gt;Tiger Data (creators of TimescaleDB) &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183544/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Puma 8.0: The Rack Web Server Built for Parallelism&lt;/a&gt;&lt;/span&gt; — Among many small improvements, Puma gets smarter concurrency controls, including a feature for framework authors to mark requests as IO-bound to allow them to go past the normal thread ceiling, as well as the ability to change thread pool limits at runtime. The &lt;a href="https://rubyweekly.com/link/183547/rss" style=" color: #0055bb;   "&gt;Puma 8 upgrade guide&lt;/a&gt; digs into all the details.&lt;/p&gt;
  &lt;p&gt;Nate Berkopec et al. &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183525/rss" title="paolino.me" style=" color: #0055bb;    font-size: 1.05em;"&gt;Ruby Deserves Beautiful Documentation&lt;/a&gt;&lt;/span&gt; — A Jekyll theme that emulates the much-admired docs theme that &lt;a href="https://rubyweekly.com/link/183526/rss" style=" color: #0055bb;   "&gt;VitePress&lt;/a&gt; offers, minus all the JavaScript. &lt;a href="https://rubyweekly.com/link/183527/rss" style=" color: #0055bb;   "&gt;The project's homepage&lt;/a&gt; is its own example of the output.&lt;/p&gt;
  &lt;p&gt;Carmine Paolino &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183528/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;JRuby 10.0.5.0&lt;/a&gt; – The Ruby 3.4-compatible branch of JRuby gets a variety of bug fixes, adds formal Java 26 support, and JNR gains RISCv64 support.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🖼️ &lt;a href="https://rubyweekly.com/link/183529/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RMagick 6.3&lt;/a&gt; – The final v6.x release of the popular bindings for the ImageMagick image processing library, now with deprecations to get you ready for the eventual ImageMagick 7-based RMagick 7.0.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🎥 &lt;a href="https://rubyweekly.com/link/183530/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Spectator Sport 0.3&lt;/a&gt; – Record and replay user browser sessions in a self-hosted Rails engine.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183531/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Wombat 3.3&lt;/a&gt; – Ruby DSL for scraping pages and parsing structured data.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183532/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Gems 2.0&lt;/a&gt; – Ruby wrapper for the &lt;a href="https://rubyweekly.com/link/183508/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyGems.org&lt;/a&gt; API.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183533/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Grape 3.2&lt;/a&gt; – REST-like API framework.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183534/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyGems 4.0.10&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📰 Classifieds&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183535/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Gauntlet. A 10-week no-cost fellowship&lt;/a&gt; building the AI-first engineers hiring managers need. Ship production AI. Land a $200K–$950K job.&lt;/p&gt;
 
&lt;p&gt;🔬 "Absolutely essential for AI agent-written PRs." &lt;a href="https://rubyweekly.com/link/183536/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Undercover CI&lt;/a&gt; shows untested methods, right in your pull requests.&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;📢  Elsewhere in the ecosystem&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/183556/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/rez0hfk8gxzbakvz542l.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;📺 &lt;a href="https://rubyweekly.com/link/183556/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;DHH joined Gergely Orosz on the &lt;em&gt;Pragmatic Engineer&lt;/em&gt; podcast&lt;/a&gt; for an almost two hour long conversation covering his take on DHH's use of AI and agents, how 37signals builds apps, and what keeps DHH inspired to code.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Ally Piechowski shares &lt;a href="https://rubyweekly.com/link/183537/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;the &lt;code&gt;git&lt;/code&gt; commands she runs before reading any code&lt;/a&gt;. They provide a handy way to get a quick grasp on what's happening in larger, multi-contributor repos.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183538/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Sam Ruby experiments with running 'Rails' on the BEAM&lt;/a&gt;, Erlang's virtual machine (as also used by Elixir). It's not quite &lt;em&gt;Rails&lt;/em&gt; as you'd expect though.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Keen to brush up your knowledge of modern JavaScript? Chris Coyier's &lt;a href="https://rubyweekly.com/link/183540/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;What To Know in JavaScript (2026 Edition)&lt;/a&gt; tours the latest language features, plus the state of the most popular runtimes and build tools.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Cloud66's Kash Sajadi rounds up &lt;a href="https://rubyweekly.com/link/183539/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;several Heroku alternatives in 2026&lt;/a&gt; along with basic cost comparisons.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;On the more creative side of things, someone's managed to &lt;a href="https://rubyweekly.com/link/183541/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;port Mac OS X to the Nintendo Wii&lt;/a&gt; and someone else has &lt;a href="https://rubyweekly.com/link/183542/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;built a renderer for Doom in pure CSS.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://rubyweekly.com/open/795/rss" width="1" height="1" /&gt;</description>
      <pubDate>Thu, 9 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://rubyweekly.com/issues/795</guid>
    </item>
    <item>
      <title>The final report on the 'RubyGems fracture'</title>
      <link>https://rubyweekly.com/issues/794</link>
      <description>

  

    
    
    
    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;div&gt;    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;
&lt;td align="left" style="padding-left: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;#​794 — April 2, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183239/rss" style=" color: #0055bb;   "&gt;Read on the Web&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 12px;  padding-left: 12px;"&gt;&lt;p&gt;Ruby Weekly&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/183288/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/wnt0xqiiwa2myqojb4hd.jpg" width="640" style="    line-height: 100%;       "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183288/rss" title="rubycentral.org" style=" color: #0055bb;    font-size: 1.1em; line-height: 1.4em;"&gt;The '&lt;em&gt;RubyGems&lt;/em&gt; Fracture' Incident Report&lt;/a&gt;&lt;/span&gt; — A postmortem of the &lt;a href="https://rubyweekly.com/link/183289/rss" style=" color: #0055bb;   "&gt;Ruby Central vs Bundler story&lt;/a&gt; in late 2025 which resulted in the Ruby core team &lt;a href="https://rubyweekly.com/link/183290/rss" style=" color: #0055bb;   "&gt;taking stewardship&lt;/a&gt; of RubyGems and Bundler. The timeline of events is laid out in detail, but it’s unlikely to resolve the matter entirely (as demonstrated &lt;a href="https://rubyweekly.com/link/183291/rss" style=" color: #0055bb;   "&gt;in this Reddit comment&lt;/a&gt; by Mike Perham).&lt;/p&gt;
  &lt;p&gt;Richard Schneeman (Ruby Central) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;💡 &lt;em&gt;The Register&lt;/em&gt; also has &lt;a href="https://rubyweekly.com/link/183292/rss" style=" color: #0055bb; font-weight: 600;   "&gt;a good independent take on this update&lt;/a&gt; factoring in some of the responses to it.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://rubyweekly.com/link/183240/rss" style=" color: #0055bb;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/1d33ebb2.png" width="150" height="150" style="padding-top: 12px; padding-left: 12px;     line-height: 100%;    "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183240/rss" title="www.fastruby.io" style=" color: #0055bb;    font-size: 1.05em;"&gt;How a Solo SaaS Founder Stopped Worrying About Rails Maintenance&lt;/a&gt;&lt;/span&gt; — "FastRuby.io is the steady baseline behind everything. They've simplified my life and freed me up to focus on what's important." See how &lt;a href="https://rubyweekly.com/link/183241/rss" style=" color: #0055bb;   "&gt;Bonsai's fixed-cost monthly maintenance&lt;/a&gt; helped Tim go from chasing contractors to peace of mind.&lt;/p&gt;
  &lt;p&gt;Bonsai by FastRuby.io® &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183242/rss" title="rubynative.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Ruby Native 0.4: Your Rails App in the App Store&lt;/a&gt;&lt;/span&gt; — Think &lt;a href="https://rubyweekly.com/link/183243/rss" style=" color: #0055bb;   "&gt;Hotwire Native&lt;/a&gt; but without ever having to touch Swift, yet you still get native controls, navbars, menus, and iOS 26 styling. It’s now free right up to using &lt;em&gt;TestFlight&lt;/em&gt; with your first 100 users. You only pay once you want to go live in the &lt;em&gt;App Store&lt;/em&gt;.&lt;/p&gt;
  &lt;p&gt;Joe Masilotti &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;⚡️ IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183244/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ruby 3.2.11 has been released&lt;/a&gt; to fix the recent &lt;a href="https://rubyweekly.com/link/183245/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;zlib vulnerability&lt;/a&gt;, much as &lt;a href="https://rubyweekly.com/link/183246/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ruby 3.3.11&lt;/a&gt; did last week. Note that &lt;a href="https://rubyweekly.com/link/183247/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ruby 3.2 is now EOL (End of Life).&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🔠 Looking for a new editor font? &lt;a href="https://rubyweekly.com/link/183248/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;CodingFont&lt;/a&gt; helps you find a good choice &lt;em&gt;visually&lt;/em&gt; using a bracket-style faceoff.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤖 The &lt;a href="https://rubyweekly.com/link/183249/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;&lt;em&gt;Ruby AI News&lt;/em&gt; newsletter&lt;/a&gt; is celebrating its first birthday and is absolutely packed with stuff.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183250/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Rubysyn&lt;/a&gt; is an interesting attempt to &lt;em&gt;'clarify Ruby's syntax and semantics'&lt;/em&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;🤖&lt;/span&gt; &lt;a href="https://rubyweekly.com/link/183251/rss" title="www.fastruby.io" style=" color: #0055bb;    font-size: 1.05em;"&gt;Rails Upgrade Methodology as Claude Code Skills&lt;/a&gt;&lt;/span&gt; — I actually used &lt;a href="https://rubyweekly.com/link/183252/rss" style=" color: #0055bb;   "&gt;the raw MD files&lt;/a&gt; last weekend to upgrade a Rails 6 app to Rails 8 and it went well.&lt;/p&gt;
  &lt;p&gt;Ernesto Tagwerker (FastRuby) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183253/rss" title="railsatscale.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Using Perfetto in ZJIT&lt;/a&gt;&lt;/span&gt; — 
The &lt;a href="https://rubyweekly.com/link/183254/rss" style=" color: #0055bb;   "&gt;ZJIT&lt;/a&gt; team has added &lt;a href="https://rubyweekly.com/link/183255/rss" style=" color: #0055bb;   "&gt;Perfetto&lt;/a&gt; tracing support to visualize and query slow events in Ruby's next-gen JIT. Deep technical content from the people building Ruby's performance future.
&lt;/p&gt;
  &lt;p&gt;Max Bernstein (Shopify) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183256/rss" title="fandf.co" style=" color: #0055bb;    font-size: 1.05em;"&gt;CI was designed for 2015. Your deploy frequency wasn't.&lt;/a&gt;&lt;/span&gt; — Depot CI: 2-3s job starts, parallel steps, SSH debugging. Run &lt;code&gt;depot ci migrate&lt;/code&gt; to move your GitHub Actions in minutes.&lt;/p&gt;
  &lt;p&gt;Depot &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/183257/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Migrating 9,000 Tests from RSpec to Minitest with AI Agents&lt;/a&gt;  &lt;cite&gt;Viktor Schmidt&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/183258/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Improving on Sandi Metz's Gear Class from POODR&lt;/a&gt; – &lt;em&gt;*gasp!*&lt;/em&gt; &lt;cite&gt;Jason Swett&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/183259/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Handling Uncountable Words in Rails Inflections&lt;/a&gt; – Like staff, metadata, feedback.. or maybe &lt;em&gt;sheep&lt;/em&gt;? &lt;cite&gt;Andy Croll&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/183260/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Teach Rails Irregular Plurals with Inflections&lt;/a&gt; — So criterion becomes criteria, say. &lt;cite&gt;Andy Croll&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/183261/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Fixtures on Purpose: From Accident to Artifact&lt;/a&gt; &lt;cite&gt;Mike Moore&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;🛠 Code &amp;amp; Tools&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/183262/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/zbuhms5xonomd1ahnu4z.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;span&gt;🏖️&lt;/span&gt; &lt;a href="https://rubyweekly.com/link/183262/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Holidays 9.0: Methods to Deal with Those Special Days&lt;/a&gt;&lt;/span&gt; — Just in time for Easter! Days off, vacations, public holidays.. whatever you call them, your app might need to know about them. &lt;em&gt;Holidays&lt;/em&gt; covers such days the world over using its &lt;a href="https://rubyweekly.com/link/183263/rss" style=" color: #0055bb;   "&gt;YAML-based definitions.&lt;/a&gt;&lt;/p&gt;
  &lt;p&gt;Holidays Team &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183264/rss" title="www.tigerdata.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Your Rails App and Your Analytics Belong in One DB&lt;/a&gt;&lt;/span&gt; — TimescaleDB extends Postgres so analytics runs on live data. No second database, no pipeline, no sync lag. Try free.&lt;/p&gt;
  &lt;p&gt;Tiger Data (creators of TimescaleDB) &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183265/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Safely 1.0: Rescue and Report Exceptions in Non-Critical Code&lt;/a&gt;&lt;/span&gt; — The idea is that while you may want to &lt;em&gt;know&lt;/em&gt; about exceptions in certain blocks of code, they might not be serious enough to require crashing out. Sends exceptions to &lt;a href="https://rubyweekly.com/link/183266/rss" style=" color: #0055bb;   "&gt;a variety of services&lt;/a&gt; out of the box.&lt;/p&gt;
  &lt;p&gt;Andrew Kane &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/183267/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;re2 2.25: Ruby Bindings to Google's RE2 Regex Library&lt;/a&gt;&lt;/span&gt; — A safer alternative to backtracking regular expression engines. &lt;a href="https://rubyweekly.com/link/183268/rss" style=" color: #0055bb;   "&gt;v2.25&lt;/a&gt; adds a variety of new features including &lt;code&gt;RE2.extract&lt;/code&gt; which does a match-and-reformat in one step (so you provide a source text, regex, and the desired output format including backreferences).&lt;/p&gt;
  &lt;p&gt;Paul Mucur &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📰 Classifieds&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;🧐 A cheaper Heroku? Our &lt;a href="https://rubyweekly.com/link/183269/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;cost comparison calculator&lt;/a&gt; puts the PaaS alternatives head-to-head.&lt;/p&gt;
 
&lt;p&gt;SerpApi is a &lt;a href="https://rubyweekly.com/link/183270/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Web Search API&lt;/a&gt; that gives developers real-time, structured access to search engine results. Try SerpApi for free.&lt;/p&gt;
 
&lt;p&gt;Become an AI-first engineer. Gauntlet is a full-time fellowship, no cost. $200K+ roles. Next cohort starts 4/27. &lt;a href="https://rubyweekly.com/link/183271/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Apply Today.&lt;/a&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183272/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Inertia.js 3.0&lt;/a&gt; – Provides glue between React, Vue and Svelte SPAs and non-JS server-side frameworks like Rails and Django. &lt;a href="https://rubyweekly.com/link/183273/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;More on v3.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🔎 &lt;a href="https://rubyweekly.com/link/183274/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;rbspy v0.45&lt;/a&gt; – Sampling profiler for Ruby processes that can be used without restarting them. Now supports Ruby 3.2.11 and 3.3.11.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183275/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;ruby.wasm 2.9.0&lt;/a&gt; – An official collection of WebAssembly ports of CRuby. Here's a handy &lt;a href="https://rubyweekly.com/link/183276/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;cheat sheet.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183277/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;ActiveHash 4.1&lt;/a&gt; – Use hashes as a read-only data source for ActiveRecord-like models.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183278/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Gemstash 2.8&lt;/a&gt; – Run your own local gem server and caching proxy for &lt;a href="https://rubyweekly.com/link/183279/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyGems.org&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183280/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Bunny 3.0/3.1&lt;/a&gt; –  RabbitMQ client library. Here's &lt;a href="https://rubyweekly.com/link/183281/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;what changed in v3.0.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183282/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;The Twitter (X) Ruby Gem 8.3&lt;/a&gt; – Ruby interface to the official X API.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183283/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Parallel 1.28&lt;/a&gt; – Run code in parallel processes, threads, or ractors.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183284/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ruby-LSP 0.27 Beta 1&lt;/a&gt; (now using &lt;a href="https://rubyweekly.com/link/183285/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Rubydex&lt;/a&gt;)&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/183286/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Rack 3.2.6&lt;/a&gt;, &lt;a href="https://rubyweekly.com/link/183287/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;BigDecimal 4.1&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://rubyweekly.com/open/794/rss" width="1" height="1" /&gt;</description>
      <pubDate>Thu, 2 Apr 2026 00:00:00 +0000</pubDate>
      <guid>https://rubyweekly.com/issues/794</guid>
    </item>
    <item>
      <title>How to install a Ruby gem the hard way</title>
      <link>https://rubyweekly.com/issues/793</link>
      <description>

  

    
    
    
    
    
  




&lt;table border=0 cellpadding=0 cellspacing=0 align="center" border="0"&gt;
  &lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;div&gt;    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;
&lt;td align="left" style="padding-left: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;#​793 — March 26, 2026&lt;/p&gt;&lt;/td&gt;
&lt;td align="right" style="padding-right: 4px; font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182854/rss" style=" color: #0055bb;   "&gt;Read on the Web&lt;/a&gt;&lt;/p&gt;&lt;/td&gt;
&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
    
    &lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 12px;  padding-left: 12px;"&gt;&lt;p&gt;Ruby Weekly&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/182856/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/jdm0tmdthhdb4zcdrj8g.jpg" width="640" style="    line-height: 100%;       "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/182856/rss" title="andre.arko.net" style=" color: #0055bb;    font-size: 1.1em; line-height: 1.4em;"&gt;How to Install a Gem (It's Harder Than It Sounds)&lt;/a&gt;&lt;/span&gt; — As one of the people behind Bundler 1.0 and a former maintainer of &lt;a href="https://rubyweekly.com/link/182857/rss" style=" color: #0055bb;   "&gt;RubyGems.org&lt;/a&gt;, and &lt;em&gt;now&lt;/em&gt; working on &lt;a href="https://rubyweekly.com/link/182858/rss" style=" color: #0055bb;   "&gt;gem.coop&lt;/a&gt; and &lt;a href="https://rubyweekly.com/link/182859/rss" style=" color: #0055bb;   "&gt;rv&lt;/a&gt;, André knows a few things about how gems tick &lt;em&gt;(big understatement)&lt;/em&gt;. This post is full of ‘aha’ moments as he walks through installing a gem &lt;em&gt;by hand&lt;/em&gt;, giving us an idea of what tools like &lt;code&gt;gem&lt;/code&gt; and &lt;code&gt;rv&lt;/code&gt; do for us.&lt;/p&gt;
  &lt;p&gt;André Arko &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  &lt;a href="https://rubyweekly.com/link/182855/rss" style=" color: #0055bb;   "&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/c_limit,w_480,h_480,q_auto/copm/e695ee0d.jpg" width="140" height="140" style="padding-top: 12px; padding-left: 12px;     line-height: 100%;    "&gt;&lt;/a&gt;
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/182855/rss" title="go.fastruby.io" style=" color: #0055bb;    font-size: 1.05em;"&gt;A Solo Founder Story: 'I Got Fed Up Chasing Contractors'&lt;/a&gt;&lt;/span&gt; — Tim tried hiring and outsourcing, but nothing fit. Then he found Bonsai. Now he gets &lt;a href="https://rubyweekly.com/link/182860/rss" style=" color: #0055bb;   "&gt;reliable monthly Rails maintenance&lt;/a&gt; with almost no oversight. "FastRuby.io works independently. I can trust their work without worrying if something will break."&lt;/p&gt;
  &lt;p&gt;Bonsai by FastRuby.io® &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/182861/rss" title="evilmartians.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Building Browser-Based Ruby Tutorials with Tutorialkit.rb&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://rubyweekly.com/link/182911/rss" style=" color: #0055bb;   "&gt;TutorialKit.rb&lt;/a&gt; is a toolkit for building interactive Ruby (and Rails!) tutorials that &lt;em&gt;run in-browser&lt;/em&gt; with WebAssembly. This post tours building your own experiences, shares working examples right in the post, and explains the tech behind it all, including a custom Ruby WASM build that can run Rails.&lt;/p&gt;
  &lt;p&gt;Pazderin and Dementyev (Evil Martians) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;&lt;strong&gt;⚡️ IN BRIEF:&lt;/strong&gt;&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182862/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ruby 3.3.11 has been released&lt;/a&gt; with a fix for the recent &lt;a href="https://rubyweekly.com/link/182863/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;zlib vulnerability&lt;/a&gt;. &lt;strong&gt;This is the final normal maintenance release of Ruby 3.3&lt;/strong&gt;, so it's time to plan an upgrade to 3.4 or 4.0.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182864/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Early-bird tickets&lt;/a&gt; for &lt;a href="https://rubyweekly.com/link/182865/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyConf 2026&lt;/a&gt; (taking place this July in Las Vegas) are available. Dave Thomas is one of the keynoters.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;Lots of minor Rails releases this week: &lt;a href="https://rubyweekly.com/link/182866/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Rails 7.2.3.1, 8.0.4.1, and 8.1.2.1&lt;/a&gt; to fix a variety of security issues, and &lt;a href="https://rubyweekly.com/link/182867/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;8.0.5 and 8.1.3&lt;/a&gt; as regular bugfix releases.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🏴 &lt;a href="https://rubyweekly.com/link/182868/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Haggis Ruby 2026&lt;/a&gt; is a Scottish Ruby conference returning this April 23-24 with a fantastic lineup.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;JetBrains released &lt;a href="https://rubyweekly.com/link/182869/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyMine 2026.1&lt;/a&gt;, the latest version of its Ruby IDE.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/182912/rss" title="thoughtbot.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Meet Duck Typer: Your New Duck Typing Friend&lt;/a&gt;&lt;/span&gt; — Duck typing gives us polymorphism for free, but what if you want the interface to be &lt;em&gt;enforced?&lt;/em&gt; Duck Typer does just that, asserting that a set of classes share compatible public interfaces, catching signature drift and missing methods without fuss.&lt;/p&gt;
  &lt;p&gt;Thiago Araújo Silva (Thoughtbot) &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/182870/rss" title="sinaptia.dev" style=" color: #0055bb;    font-size: 1.05em;"&gt;AI Shouldn't Cost More Than It Saves&lt;/a&gt;&lt;/span&gt; — We can find where LLMs pay off, validate with real data, and tune for cost/effectiveness. Need help from experts? &lt;a href="https://rubyweekly.com/link/182871/rss" style=" color: #0055bb;   "&gt;Let's talk&lt;/a&gt;.&lt;/p&gt;
  &lt;p&gt;SINAPTIA &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/182872/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Ten Ways &lt;code&gt;CSV.read&lt;/code&gt; Can Silently Corrupt or Lose Your Data&lt;/a&gt; – Pitches &lt;a href="https://rubyweekly.com/link/182873/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;SmarterCSV&lt;/a&gt; (a library of 14 years' maturity) as the solution. &lt;cite&gt;Tilo Sloboda&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/182874/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Transfer Manager Directory Support for AWS SDK for Ruby&lt;/a&gt; – The &lt;em&gt;AWS SDK for Ruby&lt;/em&gt; Transfer Manager now supports directory uploads and downloads. &lt;cite&gt;Juli Tera (AWS)&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/182875/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Deploying a Rails 8 App with Kamal on Hetzner&lt;/a&gt; – An exhaustive step-by-step walkthrough of the process. &lt;cite&gt;Mooktakim Ahmed&lt;/cite&gt;&lt;/p&gt;
&lt;p&gt;📄 &lt;a href="https://rubyweekly.com/link/182876/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Migrating from Devise to Rails' Authentication Generator&lt;/a&gt;  &lt;cite&gt;Nithin Bekal&lt;/cite&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;🛠 Code &amp;amp; Tools&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/182877/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Nokolexbor 0.7: A Faster Drop-in Replacement for Nokogiri&lt;/a&gt;&lt;/span&gt; — A &lt;a href="https://rubyweekly.com/link/182878/rss" style=" color: #0055bb;   "&gt;Lexbor&lt;/a&gt;-based HTML5 parser that’s multiple times faster than Nokogiri. Ruby 2.7 is dropped, but Ruby 4.0 is supported and gets precompiled gems (installed in &amp;lt;4 seconds on my machine).&lt;/p&gt;
  &lt;p&gt;SerpApi &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/182879/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;wreq-ruby: An HTTP Client with Real Browser TLS/HTTP2 Signatures&lt;/a&gt;&lt;/span&gt; — Uses the Rust-powered &lt;a href="https://rubyweekly.com/link/182880/rss" style=" color: #0055bb;   "&gt;wreq&lt;/a&gt; under the hood to make HTTP requests that appear as if they come from mainstream browsers by using the same headers, TLS extension and cipher suite ordering, HTTP/2 frame settings, etc.&lt;/p&gt;
  &lt;p&gt;SearchApi &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/182881/rss" title="www.appsignal.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Your Rails App Has an N+1 Problem. AppSignal Will Show You Where&lt;/a&gt;&lt;/span&gt; — Auto detect N+1 queries, slow ActiveRecord calls, and memory leaks in your app. One gem, and you're monitoring in minutes. Free 30-day trial, no card required.&lt;/p&gt;
  &lt;p&gt;AppSignal &lt;span style="text-transform: uppercase; margin-left: 4px; font-size: 0.9em;   color: #997 !important; padding-top: 1px; padding-right: 4px;  padding-left: 4px;            "&gt;sponsor&lt;/span&gt;&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/182882/rss" title="github.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;Rubyx-py: A New Way to Call Python Code from Ruby&lt;/a&gt;&lt;/span&gt; — A Rust-powered bridge between Ruby and Python’s C APIs that brings Python into the same memory space as Ruby and shuttles objects back and forth (with no IPC or serialization) and uses &lt;a href="https://rubyweekly.com/link/182883/rss" style=" color: #0055bb;   "&gt;uv&lt;/a&gt; to manage dependencies.&lt;/p&gt;
  &lt;p&gt;yinho999 &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;&lt;p&gt;💡 rubyx-py is clearly experimental, so I gave it a try. Segfaults-a-plenty till I used Ruby 4.0.2 compiled with &lt;code&gt;--enable-shared&lt;/code&gt;, but it works! I'll blog about this soon as it opens up some interesting capabilities.&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
  
  &lt;p&gt;&lt;span style="font-weight: 600; font-size: 1.1em; color: #000;"&gt;&lt;a href="https://rubyweekly.com/link/182884/rss" title="kevinjmurphy.com" style=" color: #0055bb;    font-size: 1.05em;"&gt;simplecov-compare: Compare Coverage Reports Over Time&lt;/a&gt;&lt;/span&gt; — &lt;a href="https://rubyweekly.com/link/182885/rss" style=" color: #0055bb;   "&gt;SimpleCov&lt;/a&gt; reports show the test coverage of code at a point in time, but this will help you track changes over time.&lt;/p&gt;
  &lt;p&gt;Kevin Murphy &lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;🤖 &lt;a href="https://rubyweekly.com/link/182886/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;ruby-mcp-client 1.0&lt;/a&gt; – Ruby Model Context Protocol (MCP) client, now with latest spec support including support for audio content, OAuth 2.1 enhancements, and &lt;a href="https://rubyweekly.com/link/182887/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;a full RubyLLM integration example.&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤐 &lt;a href="https://rubyweekly.com/link/182888/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Top Secret 1.0&lt;/a&gt; – Filter sensitive information from free text before sending it to external services or APIs.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🖼️ &lt;a href="https://rubyweekly.com/link/182889/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;pure-jpeg 0.3&lt;/a&gt; – My pure Ruby JPEG encoder/decoder library is now much faster (0.2s on a 1024x1024 image) thanks to some third-party contributors 🎉&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182890/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;The Ultimate Turbo Modal for Rails (UTMR) 3.0&lt;/a&gt; – Tailwind or vanilla CSS modal dialog implementation for modern Rails apps.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182891/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Chewy 8.0&lt;/a&gt; – A high level framework for Elasticsearch.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;💬 &lt;a href="https://rubyweekly.com/link/182893/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;telegram-bot-ruby 2.6&lt;/a&gt; – Ruby wrapper for &lt;a href="https://rubyweekly.com/link/182894/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Telegram's Bot API&lt;/a&gt; – now supporting &lt;a href="https://rubyweekly.com/link/182895/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Bot API 9.5&lt;/a&gt;.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182896/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Avo 4 Open Beta&lt;/a&gt; – A popular framework for building Rails apps for internal tools.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;💳 &lt;a href="https://rubyweekly.com/link/182897/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Stripe Ruby Library 19.0&lt;/a&gt; – Stripe's official library.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182898/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;RubyGems 4.0.9&lt;/a&gt;&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 0px;  padding-left: 0px;"&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;

&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;📰 Classifieds&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;p&gt;🙋‍♂️ What’s next for Heroku? Jon &lt;a href="https://rubyweekly.com/link/182899/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;has some thoughts&lt;/a&gt;.&lt;/p&gt;
 
&lt;p&gt;♦️ Build Ruby apps that never lose state, even when things fail. Learn by building an app from scratch in a &lt;a href="https://rubyweekly.com/link/182900/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;free Temporal Ruby SDK course&lt;/a&gt;.&lt;/p&gt;
 
&lt;p&gt;&lt;a href="https://rubyweekly.com/link/182901/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Help us save the German healthcare system&lt;/a&gt; - Develop the leading healthcare stats platform with a small dedicated team in a stress free environment (Cologne based).&lt;/p&gt;
 
&lt;p&gt;💎 &lt;a href="https://rubyweekly.com/link/182902/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Hiring Senior Ruby on Rails Engineers at EverAI&lt;/a&gt;: 50 million users, fully remote. 
Not used Ruby lately? That's okay, you can still apply!&lt;/p&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0; padding-right: 0;  padding-left: 0;"&gt;&lt;p&gt;📢  Elsewhere in the ecosystem&lt;/p&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;
  &lt;a href="https://rubyweekly.com/link/182903/rss" style=" color: #0055bb;"&gt;&lt;img src="https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/qouk1w09lspr9hawiyuq.jpg" width="640" style="    line-height: 100%;         "&gt;&lt;/a&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style="font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em;  padding-top: 0px; padding-right: 15px;  padding-left: 15px;"&gt;
&lt;ul&gt;
&lt;li&gt;
&lt;p&gt;Four years ago, we first mentioned &lt;a href="https://rubyweekly.com/link/182903/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Thanos&lt;/a&gt;, an experimental Ruby to Go transpiler. Its author has recently wielded AI to 'finish the job'. I took it for a spin and it's very cool, but type inference demands and a lack of metaprogramming make many potential use cases a no-Go...? 😅&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;37signals made its &lt;a href="https://rubyweekly.com/link/182905/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Fizzy&lt;/a&gt; Kanban app, built in Rails, &lt;a href="https://rubyweekly.com/link/182906/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;'source available'&lt;/a&gt; a few months ago but maintained the paid, SaaS version. That paid version, however, is now entirely free to use.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🤖 GitHub has announced that, starting late April, data (including inputs and snippets) from  Free, Pro, and Pro+ Copilot users &lt;a href="https://rubyweekly.com/link/182907/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;will be used, by default, to help train future AI models&lt;/a&gt;. You can, however, opt out.&lt;/p&gt;
&lt;/li&gt;
&lt;li&gt;
&lt;p&gt;🔒 More than ever, it's essential to ensure no secrets have snuck into your repos. &lt;a href="https://rubyweekly.com/link/182908/rss" style=" color: #0055bb; font-weight: 500 !important;   "&gt;Secretlint&lt;/a&gt; is a linting tool dedicated entirely to the task. It's written in Node but can be used with Docker against projects of any language.&lt;/p&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;table border=0 cellpadding=0 cellspacing=0 border=0 cellpadding=0 cellspacing=0&gt;&lt;tr&gt;&lt;td style=" font-family: -apple-system,BlinkMacSystemFont,Helvetica,sans-serif; font-size: 15px; line-height: 1.48em; "&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
  &lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;




&lt;img src="https://rubyweekly.com/open/793/rss" width="1" height="1" /&gt;</description>
      <pubDate>Thu, 26 Mar 2026 00:00:00 +0000</pubDate>
      <guid>https://rubyweekly.com/issues/793</guid>
    </item>
  </channel>
</rss>
