feat: rangeStrategy (#1954)
This PR replaces the existing `pinVersions`, `upgradeInRange` and `versionStrategy` settings with a single one: `rangeStrategy`. Previously: - `pinVersions` could be `true` or `false`, but defaulted to `null`, which meant that Renovate would decide. `true` meant that Renovate would replace existing ranges like `^1.0.0` with an exact/pinned version such as `1.2.0`. - `upgradeInRange` could be true or false, default to false. If `true`, it would mean Renovate would replace an existing range like `^1.0.0` with something like `^1.2.0` - `versionStrategy` could be `replace` or `widen` and was mainly used for `peerDependencies` to widen existing ranges, e.g. from `^1.0.0` to `^1.0.0 || ^2.0.0` It was possible to set conflicting settings, e.g. configuring `pinVersions=true` and `upgradeInRange=true`. Now, we combine them into a single setting: `rangeStrategy`: - `auto` = Renovate decides (this will be done on a manager-by-manager basis) - `pin` = convert ranges to exact versions - `bump` = same as `upgradeInRange` previously, e.g. bump the range even if the new version satisifies the existing range - `replace` = Same as pinVersions === false && upgradeInRange === false, i.e. only replace the range if the new version falls outside it - `widen` = Same as previous versionStrategy==='widen'
Showing
- docs/design-decisions.md 0 additions, 8 deletionsdocs/design-decisions.md
- lib/config/definitions.js 3 additions, 18 deletionslib/config/definitions.js
- lib/config/migration.js 20 additions, 0 deletionslib/config/migration.js
- lib/manager/npm/package.js 40 additions, 1 deletionlib/manager/npm/package.js
- lib/manager/npm/versions.js 18 additions, 11 deletionslib/manager/npm/versions.js
- lib/manager/travis/package.js 4 additions, 1 deletionlib/manager/travis/package.js
- lib/workers/repository/process/fetch.js 2 additions, 14 deletionslib/workers/repository/process/fetch.js
- test/_fixtures/config/file-with-repo-presets.js 2 additions, 2 deletionstest/_fixtures/config/file-with-repo-presets.js
- test/config/__snapshots__/index.spec.js.snap 3 additions, 5 deletionstest/config/__snapshots__/index.spec.js.snap
- test/config/__snapshots__/migration.spec.js.snap 13 additions, 6 deletionstest/config/__snapshots__/migration.spec.js.snap
- test/config/__snapshots__/presets.spec.js.snap 4 additions, 4 deletionstest/config/__snapshots__/presets.spec.js.snap
- test/config/index.spec.js 4 additions, 4 deletionstest/config/index.spec.js
- test/config/migration.spec.js 7 additions, 3 deletionstest/config/migration.spec.js
- test/config/presets.spec.js 1 addition, 1 deletiontest/config/presets.spec.js
- test/manager/npm/package.spec.js 34 additions, 0 deletionstest/manager/npm/package.spec.js
- test/manager/npm/versions.spec.js 36 additions, 44 deletionstest/manager/npm/versions.spec.js
- test/workers/repository/process/fetch.spec.js 1 addition, 1 deletiontest/workers/repository/process/fetch.spec.js
- website/docs/configuration-options.md 30 additions, 29 deletionswebsite/docs/configuration-options.md
Loading
Please register or sign in to comment