diff --git a/lib/config/definitions.ts b/lib/config/definitions.ts index 04e3605aed86dbc58df16831d7e6c3a542631e07..82240a1e91a66e0f4863240c64c827dab06db84c 100644 --- a/lib/config/definitions.ts +++ b/lib/config/definitions.ts @@ -1,4 +1,24 @@ import { RenovateConfigStage } from './common'; +import { + VERSION_SCHEME_CARGO, + VERSION_SCHEME_COMPOSER, + VERSION_SCHEME_DOCKER, + VERSION_SCHEME_GIT, + VERSION_SCHEME_HEX, + VERSION_SCHEME_HASHICORP, + VERSION_SCHEME_IVY, + VERSION_SCHEME_LOOSE, + VERSION_SCHEME_MAVEN, + VERSION_SCHEME_NODE, + VERSION_SCHEME_NPM, + VERSION_SCHEME_NUGET, + VERSION_SCHEME_PEP440, + VERSION_SCHEME_POETRY, + VERSION_SCHEME_REGEX, + VERSION_SCHEME_RUBY, + VERSION_SCHEME_SEMVER, + VERSION_SCHEME_SWIFT, +} from '../constants/version-schemes'; import { PLATFORM_TYPE_AZURE, PLATFORM_TYPE_BITBUCKET, @@ -601,26 +621,26 @@ const options: RenovateOptions[] = [ description: 'Version scheme to use for filtering and comparisons', type: 'string', allowedValues: [ - 'cargo', - 'composer', - 'docker', - 'git', - 'hashicorp', - 'hex', - 'ivy', - 'loose', - 'maven', - 'node', - 'npm', - 'nuget', - 'pep440', - 'poetry', - 'regex', - 'ruby', - 'semver', - 'swift', + VERSION_SCHEME_CARGO, + VERSION_SCHEME_COMPOSER, + VERSION_SCHEME_DOCKER, + VERSION_SCHEME_GIT, + VERSION_SCHEME_HASHICORP, + VERSION_SCHEME_HEX, + VERSION_SCHEME_IVY, + VERSION_SCHEME_LOOSE, + VERSION_SCHEME_MAVEN, + VERSION_SCHEME_NODE, + VERSION_SCHEME_NPM, + VERSION_SCHEME_NUGET, + VERSION_SCHEME_PEP440, + VERSION_SCHEME_POETRY, + VERSION_SCHEME_REGEX, + VERSION_SCHEME_RUBY, + VERSION_SCHEME_SEMVER, + VERSION_SCHEME_SWIFT, ], - default: 'semver', + default: VERSION_SCHEME_SEMVER, cli: false, env: false, }, @@ -1379,7 +1399,7 @@ const options: RenovateOptions[] = [ default: { fileMatch: ['(^|/)package.json$'], rollbackPrs: true, - versionScheme: 'npm', + versionScheme: VERSION_SCHEME_NPM, prBodyDefinitions: { Change: '[{{#if displayFrom}}`{{{displayFrom}}}` -> {{else}}{{#if currentValue}}`{{{currentValue}}}` -> {{/if}}{{/if}}{{#if displayTo}}`{{{displayTo}}}`{{else}}`{{{newValue}}}`{{/if}}](https://renovatebot.com/diffs/npm/{{{depNameEscaped}}}/{{{fromVersion}}}/{{{toVersion}}})', @@ -1474,7 +1494,7 @@ const options: RenovateOptions[] = [ type: 'object', default: { fileMatch: ['(^|/)Gemfile$'], - versionScheme: 'ruby', + versionScheme: VERSION_SCHEME_RUBY, }, mergeable: true, }, @@ -1485,7 +1505,7 @@ const options: RenovateOptions[] = [ type: 'object', default: { fileMatch: ['(^|/)\\.ruby-version$'], - versionScheme: 'ruby', + versionScheme: VERSION_SCHEME_RUBY, }, mergeable: true, cli: false, @@ -1499,7 +1519,7 @@ const options: RenovateOptions[] = [ commitMessageTopic: 'Terraform {{managerData.terraformDependencyType}} {{depNameShort}}', fileMatch: ['\\.tf$'], - versionScheme: 'hashicorp', + versionScheme: VERSION_SCHEME_HASHICORP, }, mergeable: true, }, @@ -1510,7 +1530,7 @@ const options: RenovateOptions[] = [ type: 'object', default: { fileMatch: ['(^|/)mix\\.exs$'], - versionScheme: 'hex', + versionScheme: VERSION_SCHEME_HEX, }, mergeable: true, }, @@ -1532,7 +1552,7 @@ const options: RenovateOptions[] = [ commitMessageTopic: 'Rust crate {{depName}}', managerBranchPrefix: 'rust-', fileMatch: ['(^|/)Cargo.toml$'], - versionScheme: 'cargo', + versionScheme: VERSION_SCHEME_CARGO, rangeStrategy: 'bump', }, mergeable: true, @@ -1567,7 +1587,7 @@ const options: RenovateOptions[] = [ type: 'object', default: { fileMatch: ['^.travis.yml$'], - versionScheme: 'node', + versionScheme: VERSION_SCHEME_NODE, }, mergeable: true, cli: false, @@ -1579,7 +1599,7 @@ const options: RenovateOptions[] = [ type: 'object', default: { fileMatch: ['^.nvmrc$'], - versionScheme: 'node', + versionScheme: VERSION_SCHEME_NODE, }, mergeable: true, cli: false, @@ -1591,7 +1611,7 @@ const options: RenovateOptions[] = [ type: 'object', default: { fileMatch: ['(^|/)pubspec\\.ya?ml$'], - versionScheme: 'npm', + versionScheme: VERSION_SCHEME_NPM, }, mergeable: true, cli: false, @@ -1602,7 +1622,7 @@ const options: RenovateOptions[] = [ stage: 'package', type: 'object', default: { - versionScheme: 'docker', + versionScheme: VERSION_SCHEME_DOCKER, managerBranchPrefix: 'docker-', commitMessageTopic: '{{{depName}}} Docker tag', major: { enabled: false }, @@ -1742,7 +1762,7 @@ const options: RenovateOptions[] = [ type: 'object', default: { fileMatch: ['(^|/)([\\w-]*)composer.json$'], - versionScheme: 'composer', + versionScheme: VERSION_SCHEME_COMPOSER, }, mergeable: true, cli: false, @@ -1754,7 +1774,7 @@ const options: RenovateOptions[] = [ type: 'object', default: { enabled: false, - versionScheme: 'git', + versionScheme: VERSION_SCHEME_GIT, fileMatch: ['(^|/).gitmodules$'], }, mergeable: true, @@ -1808,7 +1828,7 @@ const options: RenovateOptions[] = [ stage: 'package', type: 'object', default: { - versionScheme: 'poetry', + versionScheme: VERSION_SCHEME_POETRY, fileMatch: ['(^|/)pyproject\\.toml$'], }, mergeable: true, @@ -1819,7 +1839,7 @@ const options: RenovateOptions[] = [ stage: 'package', type: 'object', default: { - versionScheme: 'pep440', + versionScheme: VERSION_SCHEME_PEP440, }, mergeable: true, cli: false, @@ -1832,7 +1852,7 @@ const options: RenovateOptions[] = [ default: { fileMatch: ['\\.sbt$', 'project/[^/]*.scala$'], timeout: 300, - versionScheme: 'ivy', + versionScheme: VERSION_SCHEME_IVY, }, mergeable: true, cli: false, @@ -1845,7 +1865,7 @@ const options: RenovateOptions[] = [ type: 'object', default: { fileMatch: ['(^|/)project\\.clj$'], - versionScheme: 'maven', + versionScheme: VERSION_SCHEME_MAVEN, }, mergeable: true, cli: false, @@ -1858,7 +1878,7 @@ const options: RenovateOptions[] = [ type: 'object', default: { fileMatch: ['(^|/)deps\\.edn$'], - versionScheme: 'maven', + versionScheme: VERSION_SCHEME_MAVEN, }, mergeable: true, cli: false, @@ -1888,7 +1908,7 @@ const options: RenovateOptions[] = [ default: { fileMatch: ['\\.gradle(\\.kts)?$', '(^|/)gradle.properties$'], timeout: 600, - versionScheme: 'maven', + versionScheme: VERSION_SCHEME_MAVEN, }, mergeable: true, cli: false, @@ -1911,7 +1931,7 @@ const options: RenovateOptions[] = [ type: 'object', default: { fileMatch: ['\\.pom\\.xml$', '(^|/)pom\\.xml$'], - versionScheme: 'maven', + versionScheme: VERSION_SCHEME_MAVEN, }, mergeable: true, cli: false, @@ -2102,7 +2122,7 @@ const options: RenovateOptions[] = [ type: 'object', default: { fileMatch: ['(^|/)Package\\.swift'], - versionScheme: 'swift', + versionScheme: VERSION_SCHEME_SWIFT, rangeStrategy: 'bump', }, mergeable: true, diff --git a/lib/constants/version-schemes.ts b/lib/constants/version-schemes.ts new file mode 100644 index 0000000000000000000000000000000000000000..94f18183d7f988e09fd48c65e02f6ac22c14a447 --- /dev/null +++ b/lib/constants/version-schemes.ts @@ -0,0 +1,18 @@ +export const VERSION_SCHEME_SEMVER = 'semver'; +export const VERSION_SCHEME_NPM = 'npm'; +export const VERSION_SCHEME_NODE = 'node'; +export const VERSION_SCHEME_HASHICORP = 'hashicorp'; +export const VERSION_SCHEME_COMPOSER = 'composer'; +export const VERSION_SCHEME_GIT = 'git'; +export const VERSION_SCHEME_POETRY = 'poetry'; +export const VERSION_SCHEME_MAVEN = 'maven'; +export const VERSION_SCHEME_SWIFT = 'swift'; +export const VERSION_SCHEME_RUBY = 'ruby'; +export const VERSION_SCHEME_HEX = 'hex'; +export const VERSION_SCHEME_CARGO = 'cargo'; +export const VERSION_SCHEME_DOCKER = 'docker'; +export const VERSION_SCHEME_PEP440 = 'pep440'; +export const VERSION_SCHEME_IVY = 'ivy'; +export const VERSION_SCHEME_LOOSE = 'loose'; +export const VERSION_SCHEME_NUGET = 'nuget'; +export const VERSION_SCHEME_REGEX = 'regex'; diff --git a/lib/datasource/index.ts b/lib/datasource/index.ts index ce8ef4f8d6d4ba0db0b0623dc37ebb42d5b42a12..435e3ec44453d02a32dad307c67550440ac16915 100644 --- a/lib/datasource/index.ts +++ b/lib/datasource/index.ts @@ -31,6 +31,7 @@ import { ReleaseResult, DigestConfig, } from './common'; +import { VERSION_SCHEME_SEMVER } from '../constants/version-schemes'; export * from './common'; @@ -105,7 +106,9 @@ export async function getPkgReleases( return res; } const versionScheme = - config && config.versionScheme ? config.versionScheme : 'semver'; + config && config.versionScheme + ? config.versionScheme + : VERSION_SCHEME_SEMVER; // Filter by version scheme const version = versioning.get(versionScheme); // Return a sorted list of valid Versions diff --git a/lib/manager/ansible/extract.ts b/lib/manager/ansible/extract.ts index b7bc8b625b73e1d6e8404aca33ed7796fea76221..f50ea788232a6437bac65f439be6368725358eaf 100644 --- a/lib/manager/ansible/extract.ts +++ b/lib/manager/ansible/extract.ts @@ -1,6 +1,7 @@ import { logger } from '../../logger'; import { getDep } from '../dockerfile/extract'; import { PackageFile, PackageDependency } from '../common'; +import { VERSION_SCHEME_DOCKER } from '../../constants/version-schemes'; export default function extractPackageFile( content: string @@ -22,7 +23,7 @@ export default function extractPackageFile( 'Docker image inside ansible' ); dep.managerData = { lineNumber }; - dep.versionScheme = 'docker'; + dep.versionScheme = VERSION_SCHEME_DOCKER; deps.push(dep); } lineNumber += 1; diff --git a/lib/manager/bazel/extract.ts b/lib/manager/bazel/extract.ts index 2a8f920dad507c9f43e7f5a955b974fa26dece82..5b9aa1cd0a9c3aa7becc767f2bda5c5b866b40f3 100644 --- a/lib/manager/bazel/extract.ts +++ b/lib/manager/bazel/extract.ts @@ -4,6 +4,7 @@ import { parse as _parse } from 'url'; import { logger } from '../../logger'; import { PackageDependency, PackageFile } from '../common'; import { regEx } from '../../util/regex'; +import { VERSION_SCHEME_DOCKER } from '../../constants/version-schemes'; import { DATASOURCE_DOCKER, DATASOURCE_GITHUB, @@ -241,8 +242,8 @@ export function extractPackageFile(content: string): PackageFile | null { dep.currentDigest = digest; dep.currentValue = currentValue; dep.depName = depName; + dep.versionScheme = VERSION_SCHEME_DOCKER; dep.datasource = DATASOURCE_DOCKER; - dep.versionScheme = 'docker'; dep.lookupName = repository; deps.push(dep); } else { diff --git a/lib/manager/circleci/extract.ts b/lib/manager/circleci/extract.ts index efe529aca08465181d0aed6f52036b073b84e498..99a36c682b758fc66bf53eca29354d7915840150 100644 --- a/lib/manager/circleci/extract.ts +++ b/lib/manager/circleci/extract.ts @@ -1,6 +1,7 @@ import { logger } from '../../logger'; import { getDep } from '../dockerfile/extract'; import { PackageFile, PackageDependency } from '../common'; +import { VERSION_SCHEME_NPM } from '../../constants/version-schemes'; import { DATASOURCE_ORB } from '../../constants/data-binary-source'; export function extractPackageFile(content: string): PackageFile | null { @@ -32,7 +33,7 @@ export function extractPackageFile(content: string): PackageFile | null { datasource: DATASOURCE_ORB, lookupName: orbName, commitMessageTopic: '{{{depName}}} orb', - versionScheme: 'npm', + versionScheme: VERSION_SCHEME_NPM, rangeStrategy: 'pin', }; deps.push(dep); diff --git a/lib/manager/github-actions/extract.ts b/lib/manager/github-actions/extract.ts index 96eac846ed73c8fb64e20293909a358efa5aa9a3..0740cf86ad24545335c688d0b590dfdd9ea5ebb1 100644 --- a/lib/manager/github-actions/extract.ts +++ b/lib/manager/github-actions/extract.ts @@ -1,6 +1,7 @@ import { logger } from '../../logger'; import { getDep } from '../dockerfile/extract'; import { PackageFile, PackageDependency } from '../common'; +import { VERSION_SCHEME_DOCKER } from '../../constants/version-schemes'; export function extractPackageFile(content: string): PackageFile | null { logger.debug('github-actions.extractPackageFile()'); @@ -24,7 +25,7 @@ export function extractPackageFile(content: string): PackageFile | null { 'Docker image inside GitHub Actions' ); dep.managerData = { lineNumber }; - dep.versionScheme = 'docker'; + dep.versionScheme = VERSION_SCHEME_DOCKER; deps.push(dep); } lineNumber += 1; diff --git a/lib/manager/gradle-wrapper/extract.ts b/lib/manager/gradle-wrapper/extract.ts index 1c1b5378e2cf3d405a9c1263c61fcdb1f633aa6d..80745cee8faa15c3c575282968b2f70d19b46692 100644 --- a/lib/manager/gradle-wrapper/extract.ts +++ b/lib/manager/gradle-wrapper/extract.ts @@ -1,6 +1,7 @@ import { coerce } from 'semver'; import { logger } from '../../logger'; import { PackageFile, PackageDependency } from '../common'; +import { VERSION_SCHEME_SEMVER } from '../../constants/version-schemes'; import { DATASOURCE_GRADLE_VERSION } from '../../constants/data-binary-source'; export function extractPackageFile(fileContent: string): PackageFile | null { @@ -19,7 +20,7 @@ export function extractPackageFile(fileContent: string): PackageFile | null { depName: 'gradle', currentValue: coerce(match[1]).toString(), managerData: { lineNumber, gradleWrapperType: match[3] }, - versionScheme: 'semver', + versionScheme: VERSION_SCHEME_SEMVER, }; let shaLineNumber = 0; diff --git a/lib/manager/npm/extract/index.ts b/lib/manager/npm/extract/index.ts index b2bc46cef32d3a544752a8f3927183cc15b50f35..387aa2af3a5b703e3d1a6d7ae6290327bf5c0f99 100644 --- a/lib/manager/npm/extract/index.ts +++ b/lib/manager/npm/extract/index.ts @@ -17,6 +17,7 @@ import { import { NpmPackage } from './common'; import { platform } from '../../../platform'; import { CONFIG_VALIDATION } from '../../../constants/error-messages'; +import { VERSION_SCHEME_NODE } from '../../../constants/version-schemes'; import { MANAGER_NPM } from '../../../constants/managers'; import { DATASOURCE_GITHUB, @@ -153,7 +154,7 @@ export async function extractPackageFile( if (depName === 'node') { dep.datasource = DATASOURCE_GITHUB; dep.lookupName = 'nodejs/node'; - dep.versionScheme = 'node'; + dep.versionScheme = VERSION_SCHEME_NODE; } else if (depName === 'yarn') { dep.datasource = DATASOURCE_NPM; dep.commitMessageTopic = 'Yarn'; @@ -174,7 +175,7 @@ export async function extractPackageFile( if (depName === 'node') { dep.datasource = DATASOURCE_GITHUB; dep.lookupName = 'nodejs/node'; - dep.versionScheme = 'node'; + dep.versionScheme = VERSION_SCHEME_NODE; } else if (depName === 'yarn') { dep.datasource = DATASOURCE_NPM; dep.commitMessageTopic = 'Yarn'; diff --git a/lib/manager/nuget/extract.ts b/lib/manager/nuget/extract.ts index 7a1afcd992b3432590f6ebe801478793e4f2dc0f..61ebcd45c5aa833eda295ca89fa929be51a5774a 100644 --- a/lib/manager/nuget/extract.ts +++ b/lib/manager/nuget/extract.ts @@ -1,6 +1,7 @@ import { logger } from '../../logger'; import { get } from '../../versioning'; import { PackageDependency, ExtractConfig, PackageFile } from '../common'; +import { VERSION_SCHEME_SEMVER } from '../../constants/version-schemes'; import { DATASOURCE_NUGET } from '../../constants/data-binary-source'; export function extractPackageFile( @@ -9,7 +10,7 @@ export function extractPackageFile( config: ExtractConfig = {} ): PackageFile { logger.trace(`nuget.extractPackageFile(${packageFile})`); - const { isVersion } = get(config.versionScheme || 'semver'); + const { isVersion } = get(config.versionScheme || VERSION_SCHEME_SEMVER); const deps: PackageDependency[] = []; let lineNumber = 0; diff --git a/lib/manager/sbt/extract.ts b/lib/manager/sbt/extract.ts index eda688680fe915878e20383eb4fafad974eaf8b3..b4a41c3846b0c4433860bca89835dff9398e6673 100644 --- a/lib/manager/sbt/extract.ts +++ b/lib/manager/sbt/extract.ts @@ -1,6 +1,7 @@ import { DEFAULT_MAVEN_REPO } from '../maven/extract'; import { PackageFile, PackageDependency } from '../common'; import { get } from '../../versioning'; +import { VERSION_SCHEME_MAVEN } from '../../constants/version-schemes'; import { DATASOURCE_SBT } from '../../constants/data-binary-source'; const isComment = (str: string): boolean => /^\s*\/\//.test(str); @@ -28,7 +29,7 @@ const getScalaVersion = (str: string): string => const normalizeScalaVersion = (str: string): string => { // istanbul ignore if if (!str) return str; - const versioning = get('maven'); + const versioning = get(VERSION_SCHEME_MAVEN); if (versioning.isVersion(str)) { // Do not normalize unstable versions if (!versioning.isStable(str)) return str; diff --git a/lib/workers/repository/init/vulnerability.ts b/lib/workers/repository/init/vulnerability.ts index 58e4c5c40057a70efc83c68e041c9dbf973418ef..8e55f6cade19f08dc43edc6f6e08bb99ec93bc2f 100644 --- a/lib/workers/repository/init/vulnerability.ts +++ b/lib/workers/repository/init/vulnerability.ts @@ -3,6 +3,13 @@ import * as versioning from '../../../versioning'; import { platform } from '../../../platform'; import { RenovateConfig } from '../../../config'; import { REPOSITORY_NO_VULNERABILITY } from '../../../constants/error-messages'; +import { + VERSION_SCHEME_MAVEN, + VERSION_SCHEME_NPM, + VERSION_SCHEME_PEP440, + VERSION_SCHEME_RUBY, + VERSION_SCHEME_SEMVER, +} from '../../../constants/version-schemes'; import { DATASOURCE_MAVEN, DATASOURCE_NPM, @@ -71,11 +78,11 @@ export async function detectVulnerabilityAlerts( const firstPatchedVersion = alert.securityVulnerability.firstPatchedVersion.identifier; const versionSchemes = { - maven: 'maven', - npm: 'npm', - nuget: 'semver', - pip_requirements: 'pep440', - rubygems: 'ruby', + maven: VERSION_SCHEME_MAVEN, + npm: VERSION_SCHEME_NPM, + nuget: VERSION_SCHEME_SEMVER, + pip_requirements: VERSION_SCHEME_PEP440, + rubygems: VERSION_SCHEME_RUBY, }; const version = versioning.get(versionSchemes[datasource]); if (version.isVersion(firstPatchedVersion)) { diff --git a/lib/workers/repository/process/lookup/filter.ts b/lib/workers/repository/process/lookup/filter.ts index c83f207f366e7de04540d83ff441fd40b2fddd26..4b495e735a6810b8f92faa6e3742ebb0a22b229b 100644 --- a/lib/workers/repository/process/lookup/filter.ts +++ b/lib/workers/repository/process/lookup/filter.ts @@ -3,6 +3,7 @@ import { logger } from '../../../../logger'; import * as versioning from '../../../../versioning'; import { Release } from '../../../../datasource'; import { CONFIG_VALIDATION } from '../../../../constants/error-messages'; +import { VERSION_SCHEME_NPM } from '../../../../constants/version-schemes'; export interface FilterConfig { allowedVersions?: string; @@ -58,7 +59,10 @@ export function filterVersions( filteredVersions = filteredVersions.filter(v => version.matches(v, allowedVersions) ); - } else if (versionScheme !== 'npm' && semver.validRange(allowedVersions)) { + } else if ( + versionScheme !== VERSION_SCHEME_NPM && + semver.validRange(allowedVersions) + ) { logger.debug( { depName: config.depName }, 'Falling back to npm semver syntax for allowedVersions' diff --git a/test/datasource/maven.spec.ts b/test/datasource/maven.spec.ts index d1b910638717e053cde657b5c19c7fadff56e99d..d5af7816b6a6a948856a6655b768eaff2f5524b3 100644 --- a/test/datasource/maven.spec.ts +++ b/test/datasource/maven.spec.ts @@ -2,6 +2,7 @@ import nock from 'nock'; import fs from 'fs'; import * as datasource from '../../lib/datasource'; import { DATASOURCE_FAILURE } from '../../lib/constants/error-messages'; +import { VERSION_SCHEME_LOOSE } from '../../lib/constants/version-schemes'; import { DATASOURCE_MAVEN } from '../../lib/constants/data-binary-source'; const hostRules = require('../../lib/util/host-rules'); @@ -27,8 +28,8 @@ const MYSQL_MAVEN_MYSQL_POM = fs.readFileSync( ); const config = { + versionScheme: VERSION_SCHEME_LOOSE, datasource: DATASOURCE_MAVEN, - versionScheme: 'loose', }; describe('datasource/maven', () => { diff --git a/test/datasource/packagist.spec.ts b/test/datasource/packagist.spec.ts index 482968deb5b9d351be4fd00fb89e7bd72cd0d3ac..9d36d8a77f330945eb498812b025486050c21134 100644 --- a/test/datasource/packagist.spec.ts +++ b/test/datasource/packagist.spec.ts @@ -2,6 +2,7 @@ import fs from 'fs'; import _got from '../../lib/util/got'; import * as datasource from '../../lib/datasource'; import * as _hostRules from '../../lib/util/host-rules'; +import { VERSION_SCHEME_COMPOSER } from '../../lib/constants/version-schemes'; import { DATASOURCE_PACKAGIST } from '../../lib/constants/data-binary-source'; jest.mock('../../lib/util/got'); @@ -29,8 +30,8 @@ describe('datasource/packagist', () => { hostRules.hosts = jest.fn(() => []); global.repoCache = {}; config = { + versionScheme: VERSION_SCHEME_COMPOSER, datasource: DATASOURCE_PACKAGIST, - versionScheme: 'composer', registryUrls: [ 'https://composer.renovatebot.com', 'https://packagist.org', diff --git a/test/datasource/sbt/index.spec.ts b/test/datasource/sbt/index.spec.ts index 66a3c2b6e6f4cc02f3d936156f9f98dc6ed44b11..5582b84e843c09f486326cbf85e8cbf6c54f00a1 100644 --- a/test/datasource/sbt/index.spec.ts +++ b/test/datasource/sbt/index.spec.ts @@ -7,6 +7,7 @@ import { parseIndexDir, SBT_PLUGINS_REPO, } from '../../../lib/datasource/sbt/util'; +import { VERSION_SCHEME_IVY } from '../../../lib/constants/version-schemes'; import { DATASOURCE_SBT } from '../../../lib/constants/data-binary-source'; const mavenIndexHtml = fs.readFileSync( @@ -103,16 +104,16 @@ describe('datasource/sbt', () => { it('returns null in case of errors', async () => { expect( await getPkgReleases({ + versionScheme: VERSION_SCHEME_IVY, datasource: DATASOURCE_SBT, - versionScheme: 'ivy', lookupName: 'org.scalatest:scalatest', registryUrls: ['https://failed_repo/maven'], }) ).toEqual(null); expect( await getPkgReleases({ + versionScheme: VERSION_SCHEME_IVY, datasource: DATASOURCE_SBT, - versionScheme: 'ivy', lookupName: 'org.scalatest:scalaz', depType: 'plugin', registryUrls: [SBT_PLUGINS_REPO], @@ -122,8 +123,8 @@ describe('datasource/sbt', () => { it('fetches releases from Maven', async () => { expect( await getPkgReleases({ + versionScheme: VERSION_SCHEME_IVY, datasource: DATASOURCE_SBT, - versionScheme: 'ivy', lookupName: 'org.scalatest:scalatest', registryUrls: [ 'https://failed_repo/maven', @@ -140,8 +141,8 @@ describe('datasource/sbt', () => { }); expect( await getPkgReleases({ + versionScheme: VERSION_SCHEME_IVY, datasource: DATASOURCE_SBT, - versionScheme: 'ivy', lookupName: 'org.scalatest:scalatest_2.12', registryUrls: [DEFAULT_MAVEN_REPO, SBT_PLUGINS_REPO], }) @@ -156,8 +157,8 @@ describe('datasource/sbt', () => { it('fetches sbt plugins', async () => { expect( await getPkgReleases({ + versionScheme: VERSION_SCHEME_IVY, datasource: DATASOURCE_SBT, - versionScheme: 'ivy', lookupName: 'org.foundweekends:sbt-bintray', depType: 'plugin', registryUrls: [DEFAULT_MAVEN_REPO, SBT_PLUGINS_REPO], @@ -172,8 +173,8 @@ describe('datasource/sbt', () => { }); expect( await getPkgReleases({ + versionScheme: VERSION_SCHEME_IVY, datasource: DATASOURCE_SBT, - versionScheme: 'ivy', lookupName: 'org.foundweekends:sbt-bintray_2.12', depType: 'plugin', registryUrls: [DEFAULT_MAVEN_REPO, SBT_PLUGINS_REPO], diff --git a/test/versioning/index.spec.ts b/test/versioning/index.spec.ts index 4a47f0427d9ba9afc343bf3fcc06aa6e542e3b9c..1574c38bb9ba93daaf6487518c13a3a59caf2ea6 100644 --- a/test/versioning/index.spec.ts +++ b/test/versioning/index.spec.ts @@ -4,6 +4,7 @@ import { GenericVersioningApi, GenericVersion, } from '../../lib/versioning/loose/generic'; +import { VERSION_SCHEME_SEMVER } from '../../lib/constants/version-schemes'; const supportedSchemes = getOptions().find( option => option.name === 'versionScheme' @@ -15,8 +16,12 @@ describe('versioning.get(versionScheme)', () => { }); it('should fallback to semver', () => { - expect(versioning.get(undefined)).toBe(versioning.get('semver')); - expect(versioning.get('unknown')).toBe(versioning.get('semver')); + expect(versioning.get(undefined)).toBe( + versioning.get(VERSION_SCHEME_SEMVER) + ); + expect(versioning.get('unknown')).toBe( + versioning.get(VERSION_SCHEME_SEMVER) + ); }); it('should accept config', () => { @@ -36,7 +41,7 @@ describe('versioning.get(versionScheme)', () => { 'toString', 'valueOf', ]; - const npmApi = Object.keys(versioning.get('semver')) + const npmApi = Object.keys(versioning.get(VERSION_SCHEME_SEMVER)) .filter(val => !optionalFunctions.includes(val)) .sort(); diff --git a/test/workers/pr/changelog/index.spec.ts b/test/workers/pr/changelog/index.spec.ts index 8a44a6fc39381403d7c2a0bc0ef29914d3f00595..1ae66afec7ddcb16e8b90381bb0fae719d9ea7c7 100644 --- a/test/workers/pr/changelog/index.spec.ts +++ b/test/workers/pr/changelog/index.spec.ts @@ -5,6 +5,7 @@ import { ChangeLogConfig, } from '../../../../lib/workers/pr/changelog'; import { mocked } from '../../../util'; +import { VERSION_SCHEME_SEMVER } from '../../../../lib/constants/version-schemes'; jest.mock('../../../../lib/platform/github/gh-got-wrapper'); jest.mock('../../../../lib/datasource/npm'); @@ -14,7 +15,7 @@ const ghGot = mocked(api).get; const upgrade: ChangeLogConfig = { endpoint: 'https://api.github.com/', depName: 'renovate', - versionScheme: 'semver', + versionScheme: VERSION_SCHEME_SEMVER, fromVersion: '1.0.0', toVersion: '3.0.0', sourceUrl: 'https://github.com/chalk/chalk', diff --git a/test/workers/pr/changelog/releases.spec.ts b/test/workers/pr/changelog/releases.spec.ts index bd0bafb498bbf2c339835cf7c9e38b29fa8da0cd..dad684faccdeda5a503e652a5a5d2af69c8abb7a 100644 --- a/test/workers/pr/changelog/releases.spec.ts +++ b/test/workers/pr/changelog/releases.spec.ts @@ -1,6 +1,10 @@ import * as releases from '../../../../lib/workers/pr/changelog/releases'; import * as datasource from '../../../../lib/datasource'; import { mocked } from '../../../util'; +import { + VERSION_SCHEME_DOCKER, + VERSION_SCHEME_NPM, +} from '../../../../lib/constants/version-schemes'; jest.mock('../../../../lib/datasource'); @@ -40,7 +44,7 @@ describe('workers/pr/changelog/releases', () => { }); it('should contain only stable', async () => { const config = { - versionScheme: 'npm', + versionScheme: VERSION_SCHEME_NPM, fromVersion: '1.0.0', toVersion: '1.1.0', }; @@ -50,7 +54,7 @@ describe('workers/pr/changelog/releases', () => { }); it('should contain fromVersion unstable', async () => { const config = { - versionScheme: 'npm', + versionScheme: VERSION_SCHEME_NPM, fromVersion: '1.0.1-rc0', toVersion: '1.1.0', }; @@ -60,7 +64,7 @@ describe('workers/pr/changelog/releases', () => { }); it('should contain toVersion unstable', async () => { const config = { - versionScheme: 'npm', + versionScheme: VERSION_SCHEME_NPM, fromVersion: '1.0.1', toVersion: '1.2.0-rc1', }; @@ -70,7 +74,7 @@ describe('workers/pr/changelog/releases', () => { }); it('should contain both fromVersion toVersion unstable', async () => { const config = { - versionScheme: 'npm', + versionScheme: VERSION_SCHEME_NPM, fromVersion: '1.0.1-rc0', toVersion: '1.2.0-rc1', }; @@ -80,7 +84,7 @@ describe('workers/pr/changelog/releases', () => { }); it('should valueToVersion', async () => { const config = { - versionScheme: 'docker', + versionScheme: VERSION_SCHEME_DOCKER, fromVersion: '1.0.1-rc0', toVersion: '1.2.0-rc0', }; diff --git a/test/workers/repository/process/lookup/index.spec.ts b/test/workers/repository/process/lookup/index.spec.ts index f01f306054cf4c40aaa423d36c0801c25d654d2a..7d7c694fb74e076f7bc3bc97d842696eb30443ad 100644 --- a/test/workers/repository/process/lookup/index.spec.ts +++ b/test/workers/repository/process/lookup/index.spec.ts @@ -11,6 +11,13 @@ import * as _docker from '../../../../../lib/datasource/docker'; import * as _gitSubmodules from '../../../../../lib/datasource/git-submodules'; import { mocked, getConfig } from '../../../../util'; import { CONFIG_VALIDATION } from '../../../../../lib/constants/error-messages'; +import { + VERSION_SCHEME_DOCKER, + VERSION_SCHEME_GIT, + VERSION_SCHEME_NPM, + VERSION_SCHEME_PEP440, +} from '../../../../../lib/constants/version-schemes'; + import { MANAGER_PIP_REQUIREMENTS } from '../../../../../lib/constants/managers'; import { DATASOURCE_DOCKER, @@ -35,7 +42,7 @@ describe('workers/repository/process/lookup', () => { beforeEach(() => { config = getConfig(); config.manager = 'npm'; - config.versionScheme = 'npm'; + config.versionScheme = VERSION_SCHEME_NPM; config.rangeStrategy = 'replace'; global.repoCache = {}; jest.resetAllMocks(); @@ -173,8 +180,8 @@ describe('workers/repository/process/lookup', () => { config.currentValue = '0.4.0'; config.allowedVersions = '<1'; config.depName = 'q'; - config.datasource = DATASOURCE_NPM; - config.versionScheme = 'docker'; // this doesn't make sense but works for this test + config.versionScheme = VERSION_SCHEME_DOCKER; // this doesn't make sense but works for this test + config.datasource = DATASOURCE_NPM; // this doesn't make sense but works for this test nock('https://registry.npmjs.org') .get('/q') .reply(200, qJson); @@ -1022,6 +1029,8 @@ describe('workers/repository/process/lookup', () => { expect((await lookup.lookupUpdates(config)).updates).toMatchSnapshot(); }); it('handles PEP440', async () => { + config.manager = 'pip_requirements'; + config.versionScheme = VERSION_SCHEME_PEP440; config.manager = MANAGER_PIP_REQUIREMENTS; config.versionScheme = 'pep440'; config.rangeStrategy = 'pin'; @@ -1116,8 +1125,8 @@ describe('workers/repository/process/lookup', () => { it('skips uncompatible versions for ' + currentValue, async () => { config.currentValue = currentValue; config.depName = 'node'; + config.versionScheme = VERSION_SCHEME_DOCKER; config.datasource = DATASOURCE_DOCKER; - config.versionScheme = 'docker'; docker.getPkgReleases.mockResolvedValueOnce({ releases: [ { version: '8.1.0' }, @@ -1243,8 +1252,8 @@ describe('workers/repository/process/lookup', () => { expect(res).toMatchSnapshot(); }); it('handles git submodule update', async () => { + config.versionScheme = VERSION_SCHEME_GIT; config.datasource = DATASOURCE_GIT_SUBMODULES; - config.versionScheme = 'git'; gitSubmodules.getPkgReleases.mockResolvedValueOnce({ releases: [ {