From 4f4487fda6ed937b056c62e627e6c9b783694c10 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Thu, 15 Jun 2023 21:41:37 +0200 Subject: [PATCH] fix(cargo): widen not bump when value includes less-than (#22790) --- lib/modules/manager/cargo/range.spec.ts | 13 ++++++++++++- lib/modules/manager/cargo/range.ts | 9 ++++++++- lib/modules/manager/cargo/readme.md | 5 +++++ 3 files changed, 25 insertions(+), 2 deletions(-) diff --git a/lib/modules/manager/cargo/range.spec.ts b/lib/modules/manager/cargo/range.spec.ts index 0356aac6a8..62c07b1389 100644 --- a/lib/modules/manager/cargo/range.spec.ts +++ b/lib/modules/manager/cargo/range.spec.ts @@ -7,8 +7,19 @@ describe('modules/manager/cargo/range', () => { expect(getRangeStrategy(config)).toBe('widen'); }); + it('returns widen if current value includes <', () => { + const config: RangeConfig = { + rangeStrategy: 'auto', + currentValue: '<1.0.0', + }; + expect(getRangeStrategy(config)).toBe('widen'); + }); + it('defaults to bump', () => { - const config: RangeConfig = { rangeStrategy: 'auto' }; + const config: RangeConfig = { + rangeStrategy: 'auto', + currentValue: '1.0.0', + }; expect(getRangeStrategy(config)).toBe('bump'); }); }); diff --git a/lib/modules/manager/cargo/range.ts b/lib/modules/manager/cargo/range.ts index 8f3d6e7eb5..a04628d55c 100644 --- a/lib/modules/manager/cargo/range.ts +++ b/lib/modules/manager/cargo/range.ts @@ -2,7 +2,14 @@ import type { RangeStrategy } from '../../../types'; import type { RangeConfig } from '../types'; export function getRangeStrategy({ + currentValue, rangeStrategy, }: RangeConfig): RangeStrategy { - return rangeStrategy === 'auto' ? 'bump' : rangeStrategy; + if (rangeStrategy !== 'auto') { + return rangeStrategy; + } + if (currentValue?.includes('<')) { + return 'widen'; + } + return 'bump'; } diff --git a/lib/modules/manager/cargo/readme.md b/lib/modules/manager/cargo/readme.md index 5b564a57cd..5e05f6a228 100644 --- a/lib/modules/manager/cargo/readme.md +++ b/lib/modules/manager/cargo/readme.md @@ -1 +1,6 @@ Extracts dependencies from `Cargo.toml` files, and also updates `Cargo.lock` files too if found. + +When using the default rangeStrategy=auto: + +- If a "less than" instruction is found (e.g. `<2`) then `rangeStrategy=widen` will be selected, +- Otherwise, `rangeStrategy=bump` will be selected. -- GitLab