Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
チームで進めるRenovate
Search
katsutomu
May 20, 2021
Programming
82
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
チームで進めるRenovate
katsutomu
May 20, 2021
More Decks by katsutomu
See All by katsutomu
githubactions-potetotips.pdf
katsutomu
2
760
CDC Testing試してみた
katsutomu
0
2.9k
Other Decks in Programming
See All in Programming
IBM Bob でAI駆動開発『QC-Playbook』
ichirokano2
0
110
phperだってパンチカードでコーディングしたい
o0h
PRO
0
320
C#の現在地 進化の歴史と、AI時代の.NET Everywhere
neuecc
5
5.1k
Domain-Driven Transformation
hschwentner
2
2.3k
dotNET_vulnclicker_intro.pdf
deka_morita
0
140
Agents on Rails - Rails at Scale 2026
irinanazarova
0
540
Unity6 URPによる海底をテーマにしたVJシステムの解説 | Unity Shader 完全に理解した 勉強会
gam0022
0
370
Simple Storage Service(S3) is not simple
iwatsukayura
0
280
Starting & Sustaining Code-Based E2E Testing for Non-Coding QA Teams( #jasstniigata )
teyamagu
PRO
1
990
GemmaをJevのように使ってみる / Use Gemma like Jev
kishida
5
780
contenteditable と日本語入力に向き合う
colorful12
0
200
設計次第でAIコードの読む量は減らせる / designing-for-code-reading
minodriven
35
16k
Featured
See All Featured
Color Theory Basics | Prateek | Gurzu
gurzu
1
490
Designing for humans not robots
tammielis
254
26k
Navigating the moral maze — ethical principles for Al-driven product design
skipperchong
2
630
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
Exploring anti-patterns in Rails
aemeredith
4
540
30 Presentation Tips
portentint
PRO
1
430
Large-scale JavaScript Application Architecture
addyosmani
516
110k
Facilitating Awesome Meetings
lara
57
7.2k
The Illustrated Guide to Node.js - THAT Conference 2024
reverentgeek
1
570
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
850
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
203
77k
Game over? The fight for quality and originality in the time of robots
wayneb77
1
300
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