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
66
チームで進めるRenovate
katsutomu
May 20, 2021
Tweet
Share
More Decks by katsutomu
See All by katsutomu
githubactions-potetotips.pdf
katsutomu
2
630
CDC Testing試してみた
katsutomu
0
2.8k
Other Decks in Programming
See All in Programming
[JAWS-UG横浜 #79] re:Invent 2024 の DB アップデートは Multi-Region!
maroon1st
0
130
2025.01.17_Sansan × DMM.swift
riofujimon
2
670
watsonx.ai Dojo #6 継続的なAIアプリ開発と展開
oniak3ibm
PRO
0
270
Amazon Nova Reelの可能性
hideg
0
260
Azure AI Foundryのご紹介
qt_luigi
1
260
2,500万ユーザーを支えるSREチームの6年間のスクラムのカイゼン
honmarkhunt
6
4.2k
AWS re:Invent 2024個人的まとめ
satoshi256kbyte
0
150
知られざるDMMデータエンジニアの生態 〜かつてツチノコと呼ばれし者〜
takaha4k
3
1.1k
Flatt Security XSS Challenge 解答・解説
flatt_security
0
1.1k
Rubyでつくるパケットキャプチャツール
ydah
0
540
ISUCON14公式反省会LT: 社内ISUCONの話
astj
PRO
0
140
Moscow Python Meetup №97. Константин Крестников (Техлид команды GigaChain (SberDevices)). GigaChain: Новые инструменты для разработки агентов на примере агента техподдержки
moscowdjango
PRO
0
100
Featured
See All Featured
GitHub's CSS Performance
jonrohan
1030
460k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
49
2.2k
The Art of Programming - Codeland 2020
erikaheidi
53
13k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
Writing Fast Ruby
sferik
628
61k
Designing for humans not robots
tammielis
250
25k
Thoughts on Productivity
jonyablonski
68
4.4k
Making the Leap to Tech Lead
cromwellryan
133
9.1k
A better future with KSS
kneath
238
17k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5.2k
Designing for Performance
lara
604
68k
A Tale of Four Properties
chriscoyier
157
23k
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