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
Our favorite Dependency updates has been deprived
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
tt
November 02, 2018
Programming
540
2
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Our favorite Dependency updates has been deprived
An introduction of Automated Dependency Updates with Renovate App
tt
November 02, 2018
More Decks by tt
See All by tt
戦略的なフロントエンドテストを実施するために
tatsushitoji
0
110
そろそろGraphQLの話をしよう
tatsushitoji
1
320
try Undux but...
tatsushitoji
0
290
Other Decks in Programming
See All in Programming
AI時代のPHPer生存戦略 ~「言語、もうなんでもよくない?」に本気で向き合う~
vivion
0
800
PHP に部分適用が来るぞ!……ところで何それ?おいしいの? #phpcon / phpcon-2026
shogogg
0
690
そこに3びきプロダクトがいるじゃろう——生成AI時代における“価値が届かない理由”の構造
kosuket
0
510
変わらないものが、変わるものを決める — 意図駆動開発 × イベントソーシング × イミュータブル | What Doesn't Change Decides What Can — IDD × Event Sourcing × Immutability
tomohisa
0
1.8k
【QA Test Talk Vol.8】AI-DLC による Whole Team Approach の加速
pkshadeck
PRO
0
200
Laravel Boostに学ぶ、AIにPHPを書かせる技術 〜OSSの実装から蒸留するエージェント制御の王道〜
kentaroutakeda
3
720
TSX の <Hoge<Fuga>> という構文に驚いた話 / tsx-type-argument-syntax
kanaru0928
0
230
数百円から始めるRuby電子工作
tarosay
0
160
2年かけて Deno に DOMMatrix を実装した話 / How I implemented DOMMatrix in Deno over two years
petamoriken
0
210
自動化したのに回らないテスト運用の壁ーAI時代の品質責任と生産性
mfunaki
1
140
実装をデザインガイドラインに追従させるための取り組み / 260731-dip-mosh-design-system
dachi023
0
3.8k
Building a Meta Ray-Ban display app
akkeylab
0
160
Featured
See All Featured
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
250
The Language of Interfaces
destraynor
162
27k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
25
2k
BBQ
matthewcrist
89
10k
How to Ace a Technical Interview
jacobian
281
24k
Done Done
chrislema
186
16k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
34
2.8k
Building Adaptive Systems
keathley
44
3.2k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
490
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.5k
A Soul's Torment
seathinner
6
3.4k
Transcript
Our Favorite Dependency Updates Has Been Deprived ,BOTBJ/PEF$BNQVTUIQFSJPE !UBUTVTIJUPKJ
Hello World ! w ా࿏ཽ࢜!UBUTVTIJUPKJ w ࣾ ελʔτΞοϓ͓͡͞Μ w 'SPOUFOE&OHJOFFS
w 3FBDU)PPLTͲ͏ͳΔͷ͔ʁ খฒײ
First of all, npm’s documentation recommends that you use SemVer
• major → ϝδϟʔόʔδϣϯ1 • minor → ϚΠφʔόʔδϣϯ5 • patch → ύονόʔδϣϯ4 e.g. ^1.5.4 1.5.4Ҏ্2.0ະຬ
How to update npm packages ? Search for updates on
your own ? npm outdated ? yarn outdated ? yarn upgrade-interactive ? npx npm-check ?
How to update npm packages with apps ? ci-yarn-upgrade ?
green-keeper ? greenkeeper-keeper ? hothouse ?
In any case, There is our work ! But…
On March 15, 2018 Renovate launched !
Automated Dependency Updates Save time and reduce risk by automating
dependency updates in software projects. Fully customizable with a setting to suit every workflow.
Supports • Github • GitLab (APIv4) • VSTS → Azure
DevOps • BitBucket (ରԠத)
Language Supports • WORKSPACE Bazel • travis.yml Travis • Dockerfile
/ docker-compose.yml Docker • go.mod Golang • package.json npm/yarn • requirements.txt Python/PIP • composer.json PHP
Language Supports • JavaScript • package.json ΛͱʹόʔδϣϯΛ֬ೝ • Node.js Versions
• package.jsonͷengines • nvm.rcͷόʔδϣϯ • travis.ymlͷnode_js
some of the web's best-known projects
• ࣗಈͰPR࡞ • configϑΝΠϧͰॊೈʹΧελϚΠζ • OSS(ηϧϑϗεςΟϯάՄೳʂ) • GitHub App ܦ༝Ͱ؆୯ʹಋೖ
None
Our conventional updating work 1 • ߋ৽ϒϥϯνΛͬͯPush • PR࡞ •
GitHub web hook Ͱ CI࿈ܞͤͯ͞ςετ • ςετ݁ՌΛ֬ೝͯ͠ͳ͚ΕϚʔδ
Our conventional updating work 2 • ࣗಈͰߋ৽ϒϥϯνΛͬͯPush • ࣗಈͰPR࡞ •
GitHub web hook Ͱ CI࿈ܞͤͯ͞ςετ • ςετ݁ՌΛ֬ೝͯ͠ͳ͚ΕϚʔδ
Our updating work … ? • ࣗಈͰߋ৽ϒϥϯνΛͬͯPush • ࣗಈͰPR࡞ •
GitHub web hook Ͱ CI࿈ܞͤͯ͞ςετ • ࣗಈͰςετ݁Ռ(PR or branchͷstatus)Λ֬ೝ͠ ͯͳ͚ΕϚʔδ
Installation
• https://github.com/marketplace/renovate • ϓϥϯΛબ
• ͍ͭͮͯϦϙδτϦΛબͯ͠อଘ
͠Β͘͢Δͱ Onboading PR ͕࡞͞ΕΔ
• renovate.json ΛඞཁʹԠͯ͡ΧελϚΠζ • Onboading PR ΛϚʔδ͢Δ Ϛʔδͯ͠͠Β͘͢Δͱ…
RenovateʹΑͬͯࣗಈͰPR͕࡞͞Ε·͢
None
Basic custom config { "extends": [ “config:base”, “:preserveSemverRanges" ], "timezone":
"Asia/Tokyo", "schedule": "before 4am", "automerge": true, "major": { "automerge": false }, "packageRules": [ { "updateTypes": [ "major" ], "labels": [ "UPDATE-MAJOR" ] } ] }
My Favorite Dependency Updates Has Been Deprived
But Major Version …!
Finally … • ྨࣅΞϓϦͷதͰ಄ͻͱͭൈ͖ग़͍ͯΔ • Auto merge ʹରͯ͠৺ཧత҆શͷ֬อͷͨΊʹςετ Λ͔ͬ͠Γॻ͍͓ͯ͘ͱ •
unit_test, End to End, visual regression… • configϑΝΠϧͷઃఆɺςετམͪͨͱ͖ਓؒͷ֬ೝ ͱ͍ͬͨ࡞ۀ͋Δ
thx