From a2c78f8d1012d65d155a6b9b052569ee187ba52f Mon Sep 17 00:00:00 2001
From: Gabriel-Ladzaretti
 <97394622+Gabriel-Ladzaretti@users.noreply.github.com>
Date: Sun, 27 Feb 2022 18:54:56 +0200
Subject: [PATCH] docs(versioning): changed 'extend' to 'widen' as a supported
 strategy (#14432)

---
 lib/versioning/cargo/index.ts     |  8 +++++++-
 lib/versioning/composer/index.ts  |  5 +++--
 lib/versioning/conan/index.ts     |  8 +++++++-
 lib/versioning/gradle/index.ts    |  3 ++-
 lib/versioning/hashicorp/index.ts |  8 +++++++-
 lib/versioning/helm/index.ts      |  5 +++--
 lib/versioning/hex/index.ts       |  8 +++++++-
 lib/versioning/ivy/index.ts       |  8 +++++++-
 lib/versioning/maven/index.ts     |  8 +++++++-
 lib/versioning/npm/index.ts       |  8 +++++++-
 lib/versioning/pep440/index.ts    |  8 +++++++-
 lib/versioning/poetry/index.ts    |  9 ++++++++-
 lib/versioning/rez/index.ts       |  9 ++++++++-
 lib/versioning/ruby/index.ts      | 10 +++++++++-
 lib/versioning/swift/index.ts     |  8 +++++++-
 15 files changed, 96 insertions(+), 17 deletions(-)

diff --git a/lib/versioning/cargo/index.ts b/lib/versioning/cargo/index.ts
index 3c35d50990..99b3beb4d5 100644
--- a/lib/versioning/cargo/index.ts
+++ b/lib/versioning/cargo/index.ts
@@ -1,4 +1,5 @@
 import { logger } from '../../logger';
+import type { RangeStrategy } from '../../types/versioning';
 import { regEx } from '../../util/regex';
 import { api as npm } from '../npm';
 import type { NewValueConfig, VersioningApi } from '../types';
@@ -9,7 +10,12 @@ export const urls = [
   'https://doc.rust-lang.org/cargo/reference/specifying-dependencies.html',
 ];
 export const supportsRanges = true;
-export const supportedRangeStrategies = ['bump', 'extend', 'pin', 'replace'];
+export const supportedRangeStrategies: RangeStrategy[] = [
+  'bump',
+  'widen',
+  'pin',
+  'replace',
+];
 
 const isVersion = (input: string): boolean => npm.isVersion(input);
 
diff --git a/lib/versioning/composer/index.ts b/lib/versioning/composer/index.ts
index 4e29b5dfbc..0882a254d9 100644
--- a/lib/versioning/composer/index.ts
+++ b/lib/versioning/composer/index.ts
@@ -1,6 +1,7 @@
 import semver from 'semver';
 import { parseRange } from 'semver-utils';
 import { logger } from '../../logger';
+import type { RangeStrategy } from '../../types/versioning';
 import { regEx } from '../../util/regex';
 import { api as npm } from '../npm';
 import type { NewValueConfig, VersioningApi } from '../types';
@@ -14,9 +15,9 @@ export const urls = [
   'https://semver.mwl.be',
 ];
 export const supportsRanges = true;
-export const supportedRangeStrategies = [
+export const supportedRangeStrategies: RangeStrategy[] = [
   'bump',
-  'extend',
+  'widen',
   'pin',
   'replace',
   'update-lockfile',
diff --git a/lib/versioning/conan/index.ts b/lib/versioning/conan/index.ts
index a27ffae2c1..6426bcedb2 100644
--- a/lib/versioning/conan/index.ts
+++ b/lib/versioning/conan/index.ts
@@ -1,4 +1,5 @@
 import * as semver from 'semver';
+import type { RangeStrategy } from '../../types/versioning';
 import { api as looseAPI } from '../loose';
 import type { NewValueConfig, VersioningApi } from '../types';
 import {
@@ -26,7 +27,12 @@ export const urls = [
   'https://docs.conan.io/en/latest/versioning/version_ranges.html#version-ranges',
 ];
 export const supportsRanges = true;
-export const supportedRangeStrategies = ['auto', 'bump', 'widen', 'replace'];
+export const supportedRangeStrategies: RangeStrategy[] = [
+  'auto',
+  'bump',
+  'widen',
+  'replace',
+];
 
 const MIN = 1;
 const MAX = -1;
diff --git a/lib/versioning/gradle/index.ts b/lib/versioning/gradle/index.ts
index 63fd55ae42..647dfaaa99 100644
--- a/lib/versioning/gradle/index.ts
+++ b/lib/versioning/gradle/index.ts
@@ -1,3 +1,4 @@
+import type { RangeStrategy } from '../../types/versioning';
 import { regEx } from '../../util/regex';
 import type { NewValueConfig, VersioningApi } from '../types';
 import {
@@ -17,7 +18,7 @@ export const urls = [
   'https://docs.gradle.org/current/userguide/single_versions.html#version_ordering',
 ];
 export const supportsRanges = true;
-export const supportedRangeStrategies = ['pin'];
+export const supportedRangeStrategies: RangeStrategy[] = ['pin'];
 
 const equals = (a: string, b: string): boolean => compare(a, b) === 0;
 
diff --git a/lib/versioning/hashicorp/index.ts b/lib/versioning/hashicorp/index.ts
index c963e84f5d..d44937ff83 100644
--- a/lib/versioning/hashicorp/index.ts
+++ b/lib/versioning/hashicorp/index.ts
@@ -1,3 +1,4 @@
+import type { RangeStrategy } from '../../types/versioning';
 import { regEx } from '../../util/regex';
 import { api as npm } from '../npm';
 import type { NewValueConfig, VersioningApi } from '../types';
@@ -8,7 +9,12 @@ export const urls = [
   'https://www.terraform.io/docs/configuration/terraform.html#specifying-a-required-terraform-version',
 ];
 export const supportsRanges = true;
-export const supportedRangeStrategies = ['bump', 'extend', 'pin', 'replace'];
+export const supportedRangeStrategies: RangeStrategy[] = [
+  'bump',
+  'widen',
+  'pin',
+  'replace',
+];
 
 function hashicorp2npm(input: string): string {
   // The only case incompatible with semver is a "short" ~>, e.g. ~> 1.2
diff --git a/lib/versioning/helm/index.ts b/lib/versioning/helm/index.ts
index a05de053fd..cb6f53f742 100644
--- a/lib/versioning/helm/index.ts
+++ b/lib/versioning/helm/index.ts
@@ -1,3 +1,4 @@
+import type { RangeStrategy } from '../../types/versioning';
 import { api as npm } from '../npm';
 import type { VersioningApi } from '../types';
 
@@ -9,9 +10,9 @@ export const urls = [
   'https://github.com/Masterminds/semver#basic-comparisons',
 ];
 export const supportsRanges = true;
-export const supportedRangeStrategies = [
+export const supportedRangeStrategies: RangeStrategy[] = [
   'bump',
-  'extend',
+  'widen',
   'pin',
   'replace',
   'widen',
diff --git a/lib/versioning/hex/index.ts b/lib/versioning/hex/index.ts
index 08b195affb..cb43787797 100644
--- a/lib/versioning/hex/index.ts
+++ b/lib/versioning/hex/index.ts
@@ -1,3 +1,4 @@
+import type { RangeStrategy } from '../../types/versioning';
 import { regEx } from '../../util/regex';
 import { api as npm } from '../npm';
 import type { NewValueConfig, VersioningApi } from '../types';
@@ -6,7 +7,12 @@ export const id = 'hex';
 export const displayName = 'Hex';
 export const urls = ['https://hexdocs.pm/elixir/Version.html'];
 export const supportsRanges = true;
-export const supportedRangeStrategies = ['bump', 'extend', 'pin', 'replace'];
+export const supportedRangeStrategies: RangeStrategy[] = [
+  'bump',
+  'widen',
+  'pin',
+  'replace',
+];
 
 function hex2npm(input: string): string {
   return input
diff --git a/lib/versioning/ivy/index.ts b/lib/versioning/ivy/index.ts
index 0557cc4864..4dd8fdfb2f 100644
--- a/lib/versioning/ivy/index.ts
+++ b/lib/versioning/ivy/index.ts
@@ -1,3 +1,4 @@
+import type { RangeStrategy } from '../../types/versioning';
 import maven from '../maven';
 import {
   TYPE_QUALIFIER,
@@ -17,7 +18,12 @@ export const id = 'ivy';
 export const displayName = 'Ivy';
 export const urls = ['https://ant.apache.org/ivy/'];
 export const supportsRanges = true;
-export const supportedRangeStrategies = ['bump', 'extend', 'pin', 'replace'];
+export const supportedRangeStrategies: RangeStrategy[] = [
+  'bump',
+  'widen',
+  'pin',
+  'replace',
+];
 
 // eslint-disable-next-line @typescript-eslint/unbound-method
 const {
diff --git a/lib/versioning/maven/index.ts b/lib/versioning/maven/index.ts
index f4c8301c13..219cc5295e 100644
--- a/lib/versioning/maven/index.ts
+++ b/lib/versioning/maven/index.ts
@@ -1,3 +1,4 @@
+import type { RangeStrategy } from '../../types/versioning';
 import type { NewValueConfig, VersioningApi } from '../types';
 import {
   EXCLUDING_POINT,
@@ -22,7 +23,12 @@ export const urls = [
   'https://maven.apache.org/enforcer/enforcer-rules/versionRanges.html',
 ];
 export const supportsRanges = true;
-export const supportedRangeStrategies = ['bump', 'extend', 'pin', 'replace'];
+export const supportedRangeStrategies: RangeStrategy[] = [
+  'bump',
+  'widen',
+  'pin',
+  'replace',
+];
 
 const equals = (a: string, b: string): boolean => compare(a, b) === 0;
 
diff --git a/lib/versioning/npm/index.ts b/lib/versioning/npm/index.ts
index 9736b893dc..2a87ed91fa 100644
--- a/lib/versioning/npm/index.ts
+++ b/lib/versioning/npm/index.ts
@@ -1,5 +1,6 @@
 import semver from 'semver';
 import stable from 'semver-stable';
+import type { RangeStrategy } from '../../types/versioning';
 import type { VersioningApi } from '../types';
 import { getNewValue } from './range';
 
@@ -12,7 +13,12 @@ export const urls = [
   'https://semver.npmjs.com/',
 ];
 export const supportsRanges = true;
-export const supportedRangeStrategies = ['bump', 'extend', 'pin', 'replace'];
+export const supportedRangeStrategies: RangeStrategy[] = [
+  'bump',
+  'widen',
+  'pin',
+  'replace',
+];
 
 const {
   compare: sortVersions,
diff --git a/lib/versioning/pep440/index.ts b/lib/versioning/pep440/index.ts
index b9bf2890f5..d395482b1b 100644
--- a/lib/versioning/pep440/index.ts
+++ b/lib/versioning/pep440/index.ts
@@ -1,4 +1,5 @@
 import * as pep440 from '@renovatebot/pep440';
+import type { RangeStrategy } from '../../types/versioning';
 import type { VersioningApi } from '../types';
 import { getNewValue, isLessThanRange } from './range';
 
@@ -6,7 +7,12 @@ export const id = 'pep440';
 export const displayName = 'PEP440';
 export const urls = ['https://www.python.org/dev/peps/pep-0440/'];
 export const supportsRanges = true;
-export const supportedRangeStrategies = ['bump', 'extend', 'pin', 'replace'];
+export const supportedRangeStrategies: RangeStrategy[] = [
+  'bump',
+  'widen',
+  'pin',
+  'replace',
+];
 
 const {
   compare: sortVersions,
diff --git a/lib/versioning/poetry/index.ts b/lib/versioning/poetry/index.ts
index a2915e8aa1..8b6301cee6 100644
--- a/lib/versioning/poetry/index.ts
+++ b/lib/versioning/poetry/index.ts
@@ -1,7 +1,9 @@
 import { parseRange } from 'semver-utils';
 import { logger } from '../../logger';
+import type { RangeStrategy } from '../../types/versioning';
 import { api as npm } from '../npm';
 import type { NewValueConfig, VersioningApi } from '../types';
+
 import { VERSION_PATTERN } from './patterns';
 import {
   npm2poetry,
@@ -14,7 +16,12 @@ export const id = 'poetry';
 export const displayName = 'Poetry';
 export const urls = ['https://python-poetry.org/docs/versions/'];
 export const supportsRanges = true;
-export const supportedRangeStrategies = ['bump', 'extend', 'pin', 'replace'];
+export const supportedRangeStrategies: RangeStrategy[] = [
+  'bump',
+  'widen',
+  'pin',
+  'replace',
+];
 
 function equals(a: string, b: string): boolean {
   const semverA = poetry2semver(a);
diff --git a/lib/versioning/rez/index.ts b/lib/versioning/rez/index.ts
index 68347753c2..345095660e 100644
--- a/lib/versioning/rez/index.ts
+++ b/lib/versioning/rez/index.ts
@@ -1,7 +1,9 @@
+import type { RangeStrategy } from '../../types/versioning';
 import { regEx } from '../../util/regex';
 import { api as npm } from '../npm';
 import { api as pep440 } from '../pep440';
 import type { NewValueConfig, VersioningApi } from '../types';
+
 import {
   ascendingRange,
   descendingRange,
@@ -23,7 +25,12 @@ export const id = 'rez';
 export const displayName = 'rez';
 export const urls = ['https://github.com/nerdvegas/rez'];
 export const supportsRanges = true;
-export const supportedRangeStrategies = ['bump', 'extend', 'pin', 'replace'];
+export const supportedRangeStrategies: RangeStrategy[] = [
+  'bump',
+  'widen',
+  'pin',
+  'replace',
+];
 
 function equals(a: string, b: string): boolean {
   try {
diff --git a/lib/versioning/ruby/index.ts b/lib/versioning/ruby/index.ts
index b2218b6873..ace10e5b8b 100644
--- a/lib/versioning/ruby/index.ts
+++ b/lib/versioning/ruby/index.ts
@@ -7,6 +7,7 @@ import {
   valid,
 } from '@renovatebot/ruby-semver';
 import { logger } from '../../logger';
+import type { RangeStrategy } from '../../types/versioning';
 import { regEx } from '../../util/regex';
 import type { NewValueConfig, VersioningApi } from '../types';
 import { isSingleOperator, isValidOperator } from './operator';
@@ -22,7 +23,12 @@ export const urls = [
   'https://www.devalot.com/articles/2012/04/gem-versions.html',
 ];
 export const supportsRanges = true;
-export const supportedRangeStrategies = ['bump', 'extend', 'pin', 'replace'];
+export const supportedRangeStrategies: RangeStrategy[] = [
+  'bump',
+  'widen',
+  'pin',
+  'replace',
+];
 
 function vtrim<T = unknown>(version: T): string | T {
   if (typeof version === 'string') {
@@ -74,12 +80,14 @@ export const isValid = (input: string): boolean =>
 
 export const matches = (version: string, range: string): boolean =>
   satisfies(vtrim(version), vtrim(range));
+
 function getSatisfyingVersion(
   versions: string[],
   range: string
 ): string | null {
   return maxSatisfying(versions.map(vtrim), vtrim(range));
 }
+
 function minSatisfyingVersion(
   versions: string[],
   range: string
diff --git a/lib/versioning/swift/index.ts b/lib/versioning/swift/index.ts
index d3de422d77..e920aa2b19 100644
--- a/lib/versioning/swift/index.ts
+++ b/lib/versioning/swift/index.ts
@@ -1,5 +1,6 @@
 import semver from 'semver';
 import stable from 'semver-stable';
+import type { RangeStrategy } from '../../types/versioning';
 import { regEx } from '../../util/regex';
 import type { VersioningApi } from '../types';
 import { getNewValue, toSemverRange } from './range';
@@ -8,7 +9,12 @@ export const id = 'swift';
 export const displayName = 'Swift';
 export const urls = ['https://swift.org/package-manager/'];
 export const supportsRanges = true;
-export const supportedRangeStrategies = ['bump', 'extend', 'pin', 'replace'];
+export const supportedRangeStrategies: RangeStrategy[] = [
+  'bump',
+  'widen',
+  'pin',
+  'replace',
+];
 
 const { is: isStable } = stable;
 
-- 
GitLab