Renovateのconfig presets を調べていたところautodetectPinVersionsという設定があった
これはdependencyを固定するか範囲を維持するかをautoにする設定なのだが、autoとは何か?他にどんな設定があるか?を調べた
{ "rangeStrategy": "auto" }
https://docs.renovatebot.com/configuration-options/#rangestrategy
rangeStrategy
既存の範囲を変更/更新する方法に関するポリシー
| Name | Value |
|---|---|
| type | string |
| default | "replace" |
| allowedValues | auto,pin,bump,replace,widen,update-lockfilerangeStrategy |
auto
Renovateが決めた戦略pin
固定バージョンに変換する(例:^1.0.0->1.1.0)bump
新しいバージョンが既存の範囲を満たしている場合でも、範囲をバンプする(例:^1.0.0->^1.1.0)replace
新しいバージョンが範囲外の場合は、範囲を新しいものに置き換える(例:^1.0.0->^2.0.0)
これは範囲外でない場合はアップデートしないと同義widen
範囲を広げる(例:^1.0.0->^1.0.0 || ^2.0.0)update-lockfile
範囲内の更新が利用可能な場合はlockfileを更新し、それ以外の場合はreplaceで範囲外の更新を更新する
autoの戦略
Renovateが決めたauto戦略は以下
- devDependenciesは常に固定バージョン
- ライブラリではなくアプリの場合は、dependencyを固定
- peerDependenciesを広げる
- 既存の範囲が「||」演算子の場合(例:
^1.0.0 || ^2.0.0)、範囲を広げる(例:^1.0.0 || ^2.0.0 || ^3.0.0) - それ以外の場合は範囲を置き換える(例:
^2.0.0->^3.0.0)