Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Ruby、一緒に成長しよう! ~ アップグレード奮闘記 ~
Search
みっきー
March 01, 2025
1
130
Ruby、一緒に成長しよう! ~ アップグレード奮闘記 ~
TokyoWomen.rb #1 の資料です。
https://tokyowomenrb.connpass.com/event/342573/
みっきー
March 01, 2025
Tweet
Share
More Decks by みっきー
See All by みっきー
準備が今につながる
mikik0
0
1.3k
Ruby アップグレード奮闘記 〜mini〜
mikik0
0
950
聞き手から登壇者へ: RubyKaigi2024 LTでの初挑戦が 教えてくれた、可能性の星
mikik0
1
210
The test code generator using static analysis and LLM
mikik0
1
1.5k
三井不動産主催ハッカソン
mikik0
2
120
HackU 2021 vol.1 「ねこくえすと」
mikik0
1
100
obnizで遊んでみた
mikik0
1
58
まだ読めてないけど良さげな書籍
mikik0
1
89
おきがえくん
mikik0
1
82
Featured
See All Featured
The Power of CSS Pseudo Elements
geoffreycrofte
77
5.9k
BBQ
matthewcrist
89
9.8k
Being A Developer After 40
akosma
90
590k
The Web Performance Landscape in 2024 [PerfNow 2024]
tammyeverts
9
770
How to Think Like a Performance Engineer
csswizardry
25
1.8k
Done Done
chrislema
185
16k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
16k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
10 Git Anti Patterns You Should be Aware of
lemiorhan
PRO
656
60k
The Language of Interfaces
destraynor
160
25k
Building an army of robots
kneath
306
45k
Adopting Sorbet at Scale
ufuk
77
9.5k
Transcript
Ruby、一緒に成長しよう! ~アップグレード奮闘記 ~ Hashino Mikiko
アジェンダ - Findy Team+ 開発組織 - Rubyアップグレード手順 概要
- 実際 アップグレード - 遭遇した課題と解決方法 - さいごに
Hashino Mikiko / みっきー ファインディ株式会社 2024年7月入社 Findy Team+ バックエンド開発
shibuya.rb / TechBull 3月に初ランニングイベントに出場 : @mikiko_bridge
開発組織体制 - アップグレード担当するチームがある わけで ない - 事業KPIごとに分けてチーム作成 参照: エンジニア向け
会社紹介資料より(2月版)
開発組織体制 - Dependabotでアップグレードを検知 - issueを立てておく - やりたい人が自分でissueにアサイン
アップグレード手順 1. リリースノートを読む 2. 対応箇所 洗い出しを行う 3. 2. で洗い出したも
を対応する 4. アップグレード PR作成 5. CIが通ること 確認 6. CI 修正 7. ステージング環境に反映し、動作を確認 8. リリース
1. リリースノートを読む - it 追加 - パーサー 変更 https://www.ruby-lang.org/ja/news/2024/12/25/ruby-3-4-0-released/
アップグレード手順 1. リリースノートを読む 2. 対応箇所 洗い出しを行う 3. 2. で洗い出したも
を対応する 4. アップグレード PR作成 5. 自動CIが通ること 確認 6. 自動CI 修正 7. ステージング環境に反映し、動作を確認 8. リリース
2. 対応箇所 洗い出しを行う - 非推奨 確認 - 新機能で使うも があれ 別issueにして対応
2. 対応箇所 洗い出しを行う - 非推奨 確認 - 新機能で使うも があれ 別issueにして対応
3. 今回、特別対応するところ なさそう
アップグレード手順 1. リリースノートを読む 2. 対応箇所 洗い出しを行う 3. 2. で洗い出したも
を対応する 4. アップグレード PR作成 5. CIが通ること 確認 6. CI 修正 7. ステージング環境に反映し、動作を確認 8. リリース
4. PR作成
アップグレード手順 1. リリースノートを読む 2. 対応箇所 洗い出しを行う 3. 2. で洗い出したも
を対応する 4. アップグレード PR作成 5. CIが通ること 確認 6. CI 修正 7. ステージング環境に反映し、動作を確認 8. リリース
5. CIが通ること 確認 CIでチェックしているも Rubocop Brakeman RSpec
5. CIが通ること 確認 - RSpec ❌ - RSpec 起動時点でエラーが起きていた -
Rubocop ✅ - Brakeman ✅
アップグレード手順 1. リリースノートを読む 2. 対応箇所 洗い出しを行う 3. 2. で洗い出したも
を対応する 4. アップグレード PR作成 5. CIが通ること 確認 6. CI 修正 7. ステージング環境に反映し、動作を確認 8. リリース
6. CI 修正 2つ 問題
1つ目: Datadog gem 原因 - datadog gemが1系で、Ruby3.4系に対応していなかった 解決法 - datadog
gemを2系にアップグレードした
RSpecが起動し、全て通る ず✅
6. CI 修正 - RSpec ❌😕 - Rubocop ✅ -
Brakeman ✅
2つ目: Kernel#system
2つ目: Kernel#system 目標: - 再現コード を用意すること - issueを立てること
None
None
None
None
Ruby 3.4.1 結果 Ruby 3.3.6 結果
https://bugs.ruby-lang.org/issues/21125
None
6. CI 修正 CI を通すため 解決法💡 delegateを使わず、 system メソッドを作成
6. CI 修正 - ✨RSpec ✅✨ - Rubocop ✅ -
Brakeman ✅
アップグレード手順 1. リリースノートを読む 2. 対応箇所 洗い出しを行う 3. 2. で洗い出したも
を対応する 4. アップグレード PR作成 5. CIがパスすること 確認 6. CI 修正 7. ステージング環境に反映し、動作を確認 8. リリース
7. 動作確認 • ステージング環境に反映させる • ハッピーパスで動作 確認をしていく • バッチ処理が正常に動いていることを確認する
アップグレード手順 1. リリースノートを読む 2. 対応箇所 洗い出しを行う 3. 2. で洗い出したも
を対応する 4. アップグレード PR作成 5. CIがパスすること 確認 6. CI 修正 7. ステージング環境に反映し、動作を確認 8. リリース
2025年1月30日 Ruby 3.4.1にアップグレード完了 🎉
さいごに - マイナーバージョンでも困ることがある - 機能開発で経験できないことが経験できるかも - 周りを頼ること がとても大切 - テストを堅牢
にしておいてよかった