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
)