---
# System prepended metadata

title: Do not push to the ruby 3 branch

---

# Ruby 3 Component Upgrade Docs

How do I update my component for Ruby 3?

[Ruby 3 introduced a fundamental shift in the way we define and call arguments.](https://www.ruby-lang.org/en/news/2019/12/12/separation-of-positional-and-keyword-arguments-in-ruby-3-0/#:~:text=In%20other%20words%2C%20keyword%20arguments,) There is plenty of documentation that discusses this to find about this change, but since nitro-web is special in itself, how do we update this specifically?

**Do not push to the ruby 3 branch**

The failure only happens on Ruby 3 (Ruby 2 will throw deprecations only), so we can use branches based on Ruby 3 to demonstrate that we’ve resolved the issue.

However, we do not want to merge all of these changes with the Ruby 3 upgrade because we want to keep the upgrade branch as small as possible. Smaller branches are easier to test, less prone to conflicts, easier to review, and less dangerous to rollback. Thus, we want to test on Ruby 3, but also test and merge with Ruby 2. 

**Here’s the general process:**

1. Open a branch based off of Ruby 3 to demonstrate you’ve fixed the issue. 
    * If the change affects only specs, running CI and showing the now-passing test will work. 
    * If the change affects production code, you can deploy this to Milano and have ninjas verify that they’re no longer seeing broken pages and/or sentries. 

2. Once that is verified, open a branch based on master with your fixes and then follow the usual process, including getting this tested again. Then you can merge your fix

(Is this unwieldy? Yes it is. It’s also how HFH tests almost all of the upgrade stuff they do). 

Common Fixes

* [Use the double-splat](https://github.com/powerhome/nitro-web/pull/29289/files#diff-47e4ada52695cec784e40644551d6201a7da00aec3dcc852c7a5917fc381f417R17)
* [Use the spread operator](https://github.com/powerhome/nitro-web/pull/34554/files#diff-b9631ee499b12455813b51dead39bb9b2572642a07809aa1339bcc7b9430a9a4R404)
* [Pass your arguments along to `#super`](https://github.com/powerhome/nitro-web/pull/34554/files#diff-b9631ee499b12455813b51dead39bb9b2572642a07809aa1339bcc7b9430a9a4R406)
* [Put brackets around your keyword arguments](https://github.com/powerhome/nitro-web/pull/34554/files#diff-ffccf9417f5ffd8ce78ad369b8d8ad04b0d653b56b62cdf8e2c58edb27fabe48R205)
