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
85
Ruby、一緒に成長しよう! ~ アップグレード奮闘記 ~
TokyoWomen.rb #1 の資料です。
https://tokyowomenrb.connpass.com/event/342573/
みっきー
March 01, 2025
Tweet
Share
More Decks by みっきー
See All by みっきー
聞き手から登壇者へ: RubyKaigi2024 LTでの初挑戦が 教えてくれた、可能性の星
mikik0
1
170
The test code generator using static analysis and LLM
mikik0
1
1.3k
三井不動産主催ハッカソン
mikik0
1
99
HackU 2021 vol.1 「ねこくえすと」
mikik0
1
75
obnizで遊んでみた
mikik0
1
41
まだ読めてないけど良さげな書籍
mikik0
1
67
おきがえくん
mikik0
1
56
Hike
mikik0
1
42
ボルダリングのすゝめ
mikik0
1
33
Featured
See All Featured
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5.2k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
Why Our Code Smells
bkeepers
PRO
336
57k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Optimizing for Happiness
mojombo
376
70k
Raft: Consensus for Rubyists
vanstee
137
6.8k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
33
2.1k
Building Your Own Lightsaber
phodgson
104
6.2k
Build your cross-platform service in a week with App Engine
jlugia
229
18k
Rails Girls Zürich Keynote
gr2m
94
13k
Optimising Largest Contentful Paint
csswizardry
34
3.1k
Keith and Marios Guide to Fast Websites
keithpitt
411
22k
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にアップグレード完了 🎉
さいごに - マイナーバージョンでも困ることがある - 機能開発で経験できないことが経験できるかも - 周りを頼ること がとても大切 - テストを堅牢
にしておいてよかった