Slide 1

Slide 1 text

Our Favorite Dependency Updates Has Been Deprived ,BOTBJ/PEF$BNQVTUIQFSJPE !UBUTVTIJUPKJ

Slide 2

Slide 2 text

Hello World ! w ా࿏ཽ࢜!UBUTVTIJUPKJ w ࣾ಺ ελʔτΞοϓ͓͡͞Μ w 'SPOUFOE&OHJOFFS w 3FBDU)PPLTͲ͏ͳΔͷ͔ʁ খฒײ

Slide 3

Slide 3 text

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ະຬ

Slide 4

Slide 4 text

How to update npm packages ? Search for updates on your own ? npm outdated ? yarn outdated ? yarn upgrade-interactive ? npx npm-check ?

Slide 5

Slide 5 text

How to update npm packages with apps ? ci-yarn-upgrade ? green-keeper ? greenkeeper-keeper ? hothouse ?

Slide 6

Slide 6 text

In any case, There is our work ! But…

Slide 7

Slide 7 text

On March 15, 2018 Renovate launched !

Slide 8

Slide 8 text

Automated Dependency Updates Save time and reduce risk by automating dependency updates in software projects. Fully customizable with a setting to suit every workflow.

Slide 9

Slide 9 text

Supports • Github • GitLab (APIv4) • VSTS → Azure DevOps • BitBucket (ରԠத)

Slide 10

Slide 10 text

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

Slide 11

Slide 11 text

Language Supports • JavaScript • package.json Λ΋ͱʹόʔδϣϯΛ֬ೝ • Node.js Versions • package.jsonͷengines • nvm.rcͷόʔδϣϯ • travis.ymlͷnode_js

Slide 12

Slide 12 text

some of the web's best-known projects

Slide 13

Slide 13 text

• ࣗಈͰPR࡞੒ • configϑΝΠϧͰॊೈʹΧελϚΠζ • OSS(ηϧϑϗεςΟϯάՄೳʂ) • GitHub App ܦ༝Ͱ؆୯ʹಋೖ

Slide 14

Slide 14 text

No content

Slide 15

Slide 15 text

Our conventional updating work 1 • ߋ৽ϒϥϯνΛ੾ͬͯPush • PR࡞੒ • GitHub web hook Ͱ CI࿈ܞͤͯ͞ςετ • ςετ݁ՌΛ֬ೝͯ͠໰୊ͳ͚Ε͹Ϛʔδ

Slide 16

Slide 16 text

Our conventional updating work 2 • ࣗಈͰߋ৽ϒϥϯνΛ੾ͬͯPush • ࣗಈͰPR࡞੒ • GitHub web hook Ͱ CI࿈ܞͤͯ͞ςετ • ςετ݁ՌΛ֬ೝͯ͠໰୊ͳ͚Ε͹Ϛʔδ

Slide 17

Slide 17 text

Our updating work … ? • ࣗಈͰߋ৽ϒϥϯνΛ੾ͬͯPush • ࣗಈͰPR࡞੒ • GitHub web hook Ͱ CI࿈ܞͤͯ͞ςετ • ࣗಈͰςετ݁Ռ(PR or branchͷstatus)Λ֬ೝ͠ ͯ໰୊ͳ͚Ε͹Ϛʔδ

Slide 18

Slide 18 text

Installation

Slide 19

Slide 19 text

• https://github.com/marketplace/renovate • ϓϥϯΛબ୒

Slide 20

Slide 20 text

• ͍ͭͮͯϦϙδτϦΛબ୒ͯ͠อଘ

Slide 21

Slide 21 text

͠͹Β͘͢Δͱ Onboading PR ͕࡞੒͞ΕΔ

Slide 22

Slide 22 text

• renovate.json ΛඞཁʹԠͯ͡ΧελϚΠζ • Onboading PR ΛϚʔδ͢Δ
 Ϛʔδͯ͠͠͹Β͘͢Δͱ…

Slide 23

Slide 23 text

RenovateʹΑͬͯࣗಈͰPR͕࡞੒͞Ε·͢

Slide 24

Slide 24 text

No content

Slide 25

Slide 25 text

Basic custom config { "extends": [ “config:base”, “:preserveSemverRanges" ], "timezone": "Asia/Tokyo", "schedule": "before 4am", "automerge": true, "major": { "automerge": false }, "packageRules": [ { "updateTypes": [ "major" ], "labels": [ "UPDATE-MAJOR" ] } ] }

Slide 26

Slide 26 text

My Favorite Dependency Updates Has Been Deprived

Slide 27

Slide 27 text

But Major Version …!

Slide 28

Slide 28 text

Finally … • ྨࣅΞϓϦͷதͰ͸಄ͻͱͭൈ͖ग़͍ͯΔ • Auto merge ʹରͯ͠৺ཧత҆શͷ֬อͷͨΊʹςετ Λ͔ͬ͠Γॻ͍͓ͯ͘ͱ • unit_test, End to End, visual regression… • configϑΝΠϧͷઃఆɺςετམͪͨͱ͖͸ਓؒͷ֬ೝ ͱ͍ͬͨ࡞ۀ͸͋Δ

Slide 29

Slide 29 text

thx