UGA Boxxx

つぶやきの延長のつもりで、知ったこと思ったこと書いてます

【Renovate】rangeStrategyのパラメータについて

Renovateのconfig presets を調べていたところautodetectPinVersionsという設定があった

uga-box.hatenablog.com

これは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戦略は以下

  1. devDependenciesは常に固定バージョン
  2. ライブラリではなくアプリの場合は、dependencyを固定
  3. peerDependenciesを広げる
  4. 既存の範囲が「||」演算子の場合(例:^1.0.0 || ^2.0.0)、範囲を広げる(例:^1.0.0 || ^2.0.0 || ^3.0.0
  5. それ以外の場合は範囲を置き換える(例:^2.0.0->^3.0.0