Renovate
https://gyazo.com/df51e13e50d38b6c90fe6cf69ed01947
依存packageを定義しているfileを見て、新しいversionがあればPRを作成するGitHub Apps
website
github
docs
marketplace
dashboard
導入してみて、良いと感じる点mrsekut.icon
定期的にアップデートの通知が来るため、そこを意識する必要がない
定期的に思い出した時に自分で上げる、という意識が不要になる
これはRenovateの一番の特徴なので言うまでもないだろう
個々のLibraryに対して、Release NoteをPRに全部載せてくれる
個別のRelease Noteをわざわざ見に行かなくて済む
さらっとでも気軽に目を通すことができる
アップデートに失敗するものの追随
Library側の問題だったり、Library同士の相性の悪さだったりで、最新バージョンを入れると壊れることがある
Renovateで特定のlibrary郡ごとにPRを作るようにグルーピングすることでそれのみを抜き出してPRを生成してくれる
「更に新しいバージョン出て、かつ、CIが通った」ら入れれば良いのでそこの意識を自動化できる
Renovateを使っていなかったら、定期的に使っているLibrary全てを上げて、CIが壊れて、どれが原因で壊れたんだ....、というのを毎回(?)チェックしないといけない
例
yarnで使ってる例
PR内でRelase Noteを示してくれる
そこにBREAKINGなども記載されている
導入
marketplaceから入れる
金かかりそうな雰囲気がある画面に行くが、$0なので気にせず進める
登録時に「All repositories」か「Only select repositories」か聞かれる
もちろん後者
登録が終わると、PRが生成されているはず
renovate.jsonを追加する旨のPR
追加後は、Settings/Applicationsから設定を変えられる
参考
Renovateによるnpmパッケージ定期更新 - 一休.com Developers Blog
#WIP
minorとかpatchでまとめているが、最近頻繁にエラーになってだるい
https://gyazo.com/42a555c9e3031037f20c0b479ffe4a44
もはやライブラリごとにPR送ってくるように変更したほうがいいんちゃうという気がしてくるな
PRが大量に来ることになるが、CIをpassしてるやつをmergeしていくだけなので大変ではないはず
特定してもそれを外してそれ以外update、とするのが手間
どれが原因で落ちてるのかを探索するのに無駄に時間がかかっている
とはいえ、storybookとかは、同時にアップデートしたほうがいいみたいなのがある
Renovateで特定のlibrary郡ごとにPRを作るようにグルーピングするをすれば良いけど、ライブラリを増やすたびにそういうことを考えないといけないのも面倒だなあ
うーん
全部個別にするとCI時間も消費してしまう
renovate-config-validator
renovate.jsonの設定が正しいかを確認するやつ
$ npx --yes --package renovate -- renovate-config-validator
https://docs.renovatebot.com/config-validation/
https://developers.prtimes.jp/2024/02/16/renovate-frontend/?utm_source=pocket_saves#:~:text=}%2C%0A}-,設定ファイルのバリデーション,-上記の設定
docsわかりづらすぎでは?mrsekut.icon
https://docs.renovatebot.com/configuration-options/
サイドバーに並列に並んでるやつ、全く並列な概念じゃなくない?
https://gyazo.com/b799e8a178a85885cdcdcedc8c7293a2
なんでmajorやminorとかと同じように、osVulnerabiliryAlertsとかがあるんだよ
例えば、packageRules.matchUpdateTypesの説明が以下のようになってて
https://gyazo.com/41170b11526dcc52dbcb4cd50be758a5
allowedValuesのところにいくつかの値があるが
このmajorとかminorとかの値と同列にpackageRules自体が存在する
いやでも互いに依存してるから仕方ないのか(?)
#??
一回無視したらどうなる?
次にupgradeした時にまた来る?それとも今後来なくなる?
たとえば、deployしてる環境の都合で、特定のlibraryのupgradeができない、とかある
その時に、毎回毎回PR作られてもダルい
かといって、closeするたびに、次から更新来なくなるのも困る