Ruby 3.4
Ruby 3.4 has been released: https://www.ruby-lang.org/en/news/2024/12/25/ruby-3-4-0-released/ This epic captures the work required to get us there. ## Notable changes ### 3.3 https://rubyreferences.github.io/rubychanges/3.3.html - `it` will become anonymous block argument in 3.4 - `Module#set_temporary_name` - `ObjectSpace::WeakKeyMap` - `Range#overlap?` - `Fiber#kill` ### 3.4 https://rubyreferences.github.io/rubychanges/3.4.html - `it` anonymous block argument - `**nil` unpacking - `String` literals would be frozen in Ruby 3.5 - `Range#step` iteration for any class via `+` - Backtrace improvements - Ractor improvements - Serious implementation updates ## Plan <table> <tr> <th>Item</th> <th>Issue/Epic</th> <th>Target Date</th> <th>Status</th> </tr> <tr> <td>Make sure the topic-branch MR pipeline is green</td> <td></td> <td>Jan 2026</td> <td> </td> </tr> <tr> <td>Allow pipelines to run Ruby 3.4</td> <td></td> <td></td> <td></td> </tr> <tr> <td> Update labels so we can `pipeline:run-as-ruby3.4` or `run-as-ruby33` since that was very useful to have last time, and so that we have scheduled builds on master again for 3.4 </td> <td></td> <td></td> <td></td> </tr> <tr> <td>Default devkits to Ruby 3.4</td> <td></td> <td></td> <td></td> </tr> <tr> <td>Address outstanding gem issues from audit</td> <td></td> <td></td> <td></td> </tr> <tr> <td>Run GPT to test performance</td> <td></td> <td></td> <td></td> </tr> <tr> <td>Make MRs build with Ruby 3.4 by default</td> <td></td> <td></td> <td></td> </tr> <tr> <td>If necessary, do some manual testing.</td> <td></td> <td></td> <td></td> </tr> <tr> <td>Distribution updates</td> <td></td> <td></td> <td></td> </tr> <tr> <td>Roll out to SaaS</td> <td></td> <td></td> <td></td> </tr> <tr> <td>Update CI to use Ruby 3.4</td> <td> </td> <td></td> <td></td> </tr> <tr> <td> Update release post and release to Self Managed </td> <td></td> <td></td> <td></td> </tr> <tr> <td>Clean up any Ruby related pipelines </td> <td></td> <td></td> <td></td> </tr> </table>
epic