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