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
チームで進めるRenovate
Search
katsutomu
May 20, 2021
Programming
0
65
チームで進めるRenovate
katsutomu
May 20, 2021
Tweet
Share
More Decks by katsutomu
See All by katsutomu
githubactions-potetotips.pdf
katsutomu
2
610
CDC Testing試してみた
katsutomu
0
2.8k
Other Decks in Programming
See All in Programming
Click-free releases & the making of a CLI app
oheyadam
2
120
Duckdb-Wasmでローカルダッシュボードを作ってみた
nkforwork
0
130
エンジニアとして関わる要件と仕様(公開用)
murabayashi
0
310
ペアーズにおけるAmazon Bedrockを⽤いた障害対応⽀援 ⽣成AIツールの導⼊事例 @ 20241115配信AWSウェビナー登壇
fukubaka0825
6
2k
最新TCAキャッチアップ
0si43
0
200
3 Effective Rules for Using Signals in Angular
manfredsteyer
PRO
0
120
イベント駆動で成長して委員会
happymana
1
340
Macとオーディオ再生 2024/11/02
yusukeito
0
380
みんなでプロポーザルを書いてみた
yuriko1211
0
280
リアーキテクチャxDDD 1年間の取り組みと進化
hsawaji
1
220
Enabling DevOps and Team Topologies Through Architecture: Architecting for Fast Flow
cer
PRO
0
350
Amazon Qを使ってIaCを触ろう!
maruto
0
420
Featured
See All Featured
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
226
22k
Teambox: Starting and Learning
jrom
133
8.8k
Designing the Hi-DPI Web
ddemaree
280
34k
Designing for Performance
lara
604
68k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
246
1.3M
The MySQL Ecosystem @ GitHub 2015
samlambert
250
12k
How GitHub (no longer) Works
holman
310
140k
Embracing the Ebb and Flow
colly
84
4.5k
Measuring & Analyzing Core Web Vitals
bluesmoon
4
130
StorybookのUI Testing Handbookを読んだ
zakiyama
27
5.3k
Building Better People: How to give real-time feedback that sticks.
wjessup
364
19k
Into the Great Unknown - MozCon
thekraken
32
1.5k
Transcript
チームで進めるRenovate 2021.05.19 Radiotalk Tech Talk #2
⾃⼰紹介
w ؔࠜࠀయ!LBUTVUPNV w ίωώτגࣜձࣾ"OESPJE&OHJOOFS w "OESPJEॻ͍ͨΓJ04ॻ͍ͨΓ w ࠷ۙίʔνϯάΛͯ͠·͢ ࣗݾհ
さて
ライブラリ更新うまくできて ますか?😄
ママリアプリの状況 • 初回リリースは2014年8⽉で6年ちょい • ライブラリ総数:126 • 最新バージョン使⽤率:69%(88 / 126) ※2021/04時点
ママリアプリの状況 • 初回リリースは2014年8⽉で6年ちょい • ライブラリ総数:126 • 最新バージョン使⽤率:69%(88 / 126) ※2021/04時点
⼈⼒では結構⼤変😱
ママリアプリの状況 • 初回リリースは2014年8⽉で6年ちょい • ライブラリ総数:126 • 最新バージョン使⽤率:69%(88 / 126) ※2021/04時点
楽しちゃおう😆
チームで進めるRenovate
アジェンダ
アジェンダ • 課題の整理 • Renovateの紹介 • ママリアプリでの設定 • 進捗の共有 •
まとめ
課題の整理
課題 • 古いバージョンを使い続 けるとリスクがある • 最新バージョンの機能を 使えず、選択肢を狭めて いる • ライブラリ更新を全て⼿
動でやるのはキツイ
Before / After • 古いバージョンを使い続 けるとリスクがある • 最新バージョンの機能を 使えず、選択肢を狭めて いる
• ライブラリ更新を全て⼿ 動でやるのはキツイ • 最新バージョンに上げて リスクヘッジする • プロダクトや技術の選択 肢の幅を広げる • ライブラリ更新を(⼀部) ⾃動化して楽をしたい
⽬指すところ 定量⽬標 • ライブラリを100%最新バージョンにする + レガシーなライブラリは置き換える 獲得する能⼒ • ⼤規模なアップデートを進める⼒ •
定常的にライブラリを更新する⼒
⽬指すところ 定量⽬標 • ライブラリを100%最新バージョンにする + レガシーなライブラリは置き換える 獲得する能⼒ • ⼤規模なアップデートを進める⼒ •
定常的にライブラリを更新する⼒ Renovateを使おう👍
Renovateの紹介
Renovate is 何? • 依存関係の更新を⾃動化するツール • Multi-platform かつ multi-language •
GitHub, GitLab, Bitbucket Cloud, Bitbucket Server, Azure DevOps and Gitea. • 更新があると⾃動でPull Requestが作られる
None
デフォルトルール • SemVerルール:ライブラリ毎にPRが分けられ、Patchは Minorと同列に扱われる • マルチプロジェクトも個別PRになる • PR作成スケジュールは「いつでも」 • 毎⽇24時間PRが作られる
• reviewerの指定はされない
SemVer補⾜ hogehogeライブラリが0.8.0で • 0.8.1 (patch) • 0.9.0 (minor) • 1.0.0
(major) の更新があると ↓のPRが作られる • 0.9.0 (minor) • 1.0.0 (major)
SemVer補⾜ hogehogeライブラリが0.8.0で • 0.8.1 (patch) • 0.9.0 (minor) • 1.0.0
(major) の更新があると ↓のPRが作られる • 0.9.0 (minor) • 1.0.0 (major) minorにマージされて 0.8.1は作られない
SemVer補⾜ hogehogeライブラリが0.8.0で • 0.8.1 (patch) • 1.0.0 (major) の更新があると ↓のPRが作られる
• 0.8.1 (patch) • 1.0.0 (major)
デフォルトルール(再掲) • SemVerルール:ライブラリ毎にPRが分けられ、Patchは Minorと同列に扱われる • マルチプロジェクトも個別PRになる • PR作成スケジュールは「いつでも」 • 毎⽇24時間PRが作られる
• reviewerの指定はされない
デフォルトルール(再掲) • SemVerルール:ライブラリ毎にPRが分けられ、Patchは Minorと同列に扱われる • マルチプロジェクトも個別PRになる • PR作成スケジュールは「いつでも」 • 毎⽇24時間PRが作られる
• reviewerの指定はされない いい感じに使いたい😓
ママリアプリでの設定
ママリアプリでの設定 • 週1でPull Requestを作る • マルチプロジェクトはPull Requestをまとめる • パッチバージョン更新は全てのライブラリで Pull
Requestをまとめる • 担当者は⾃動アサイン機能を活⽤
週1でPull Requestを作る • ⽕曜⽇の午後5時以降にスケジュール • 1時間に2つまで、上限10でPRを作る • 翌⽇のプランニングのために⽕曜⽇に作る
マルチプロジェクトをまとめる • バージョニングを共有するライブラリでバラバラにPRが 来ると困る • updateTypesで対象レベルを指定できる
Patch更新は⼀つにまとめる • Patchの更新は頻度が多く個別対応は⾟い • SemVer的には影響の⼤きい変更は少ない • たまに地雷踏むけど・・・ • ママリアプリは回帰テストで⼤事な機能はチェックして いる
⾃動reviewer指定を活⽤する • 個⼈もしくはteamでの指定が可能 • team指定で動かず苦戦中 • Github Appsへの権限が不⾜しているっぽい?
で、どうなった?
Before / After • ライブラリ総数:126 • 最新バージョン使⽤率:69% (88 / 126)
※2021/04時点
Before / After • ライブラリ総数:126 • 最新バージョン使⽤率:69% (88 / 126)
※2021/04時点 • ライブラリ総数:125 • 最新バージョン使⽤率:58% ( 74 / 126) ※2021/05時点
Before / After • ライブラリ総数:126 • 最新バージョン使⽤率:69% (88 / 126)
※2021/04時点 • ライブラリ総数:125 • 最新バージョン使⽤率:58% ( 74 / 126) ※2021/05時点 敗北😱
敗因 • PatchバージョンよりMinorのPR先に作られる => まとめたもので数を稼げない • ⾃動Reviewerの設定がうまくいっていない => 関⼼が下がり進捗が悪くな
これから • PatchバージョンのPR作成の優先順位を上げて捌いてみる • ⾃動Reviewerの設定を動かして、⼀⼈当たり2つ/週で捌 く
まとめ
まとめ • ライブラリ⾃動化にRenovateをおすすめした • ママリアプリでの設定を紹介した • 敗因とこれからを紹介した
ご清聴ありがとうございました
Appendix
• https://github.com/renovatebot/renovate • https://docs.renovatebot.com/configuration-options/ • https://github.com/ben-manes/gradle-versions-plugin