Ruby 3.3
**Placeholder** Ruby 3.3 has been released: https://www.ruby-lang.org/en/news/2023/12/25/ruby-3-3-0-released/ This epic captures the work required to get us there. ## Notable changes ### 3.2 https://rubyreferences.github.io/rubychanges/3.2.html - Anonymous method argument passing - More inspectable refinements - Data class - Support for pattern-matching in `Time` and `MatchData` - Set is a built-in class - Per-Fiber storage - `RubyVM::AbstractSyntaxTree:` fault-tolerant and token-level parsing ### 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` @nao.hashizume ## DRIs | Area | DRI | |------|-----| | Overall coordination | @pjphillips | | Development | `@stanhu` `@igor.drozdov` `@bmarjanovic` | | Delivery | `@rpereira2` `@dat.tang.gitlab` | | Developer Experience | `@nao.hashizume` | | Distribution | `@balasankarc` | ## 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> https://gitlab.com/gitlab-org/gitlab/-/merge_requests/179255+ </td> <td>Jan 2025</td> <td> Done :white_check_mark: </td> </tr> <tr> <td> Allow pipelines to run Ruby 3.3 Make MRs build with Ruby 3.3 by default Update labels so we can `pipeline:run-as-ruby3.3` or `run-as-ruby32` </td> <td> https://gitlab.com/gitlab-org/gitlab/-/merge_requests/177504 </td> <td></td> <td> Done :white_check_mark: </td> </tr> <tr> <td>Default devkits to Ruby 3.3</td> <td> https://gitlab.com/gitlab-org/gitlab-development-kit/-/issues/2369+ </td> <td>Jan 2025</td> <td> Done :white_check_mark: </td> </tr> <tr> <td>Complete Gem Audit and address outstanding issues found</td> <td> https://gitlab.com/groups/gitlab-org/-/epics/18009+ </td> <td>Q3 2025</td> <td>Complete for Ruby 3.3 In Progress for Ruby 3.4</td> </tr> <tr> <td>Run GPT to test performance</td> <td> https://gitlab.com/gitlab-org/gitlab/-/issues/516194+ </td> <td>Q3 2025</td> <td> Done :white_check_mark: </td> </tr> <tr> <td>Distribution updates</td> <td> https://gitlab.com/groups/gitlab-org/-/epics/17092+ </td> <td>GitLab 18.9</td> <td> Done :white_check_mark: </td> </tr> <tr> <td>Test Rollout to SaaS</td> <td> https://gitlab.com/gitlab-com/gl-infra/production/-/issues/20888#engineer-helping-monitor-the-test-rollout+ </td> <td>2025-12-01</td> <td> Done :white_check_mark: </td> </tr> <tr> <td>Roll out to SaaS</td> <td> https://gitlab.com/groups/gitlab-com/gl-infra/-/epics/1698+ https://gitlab.com/gitlab-com/gl-infra/production/-/issues/21065 </td> <td>2026-01-08</td> <td> Done :white_check_mark: </td> </tr> <tr> <td>Update MRs to use Ruby 3.3</td> <td></td> <td></td> <td> Done :white_check_mark: </td> </tr> <tr> <td> Update release post and release to Self Managed </td> <td> https://gitlab.com/groups/gitlab-com/gl-infra/-/epics/1698+ </td> <td>GitLab 18.9</td> <td> https://gitlab.com/gitlab-com/www-gitlab-com/-/merge_requests/142231 Done :white_check_mark: </td> </tr> <tr> <td>Clean up any Ruby related pipelines</td> <td></td> <td>Q1 2026</td> <td></td> </tr> </table>
epic