From c21029ecbbb0445fa33357d97de53d04f270ce97 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Mon, 4 Jun 2018 06:03:21 +0200 Subject: [PATCH] refactor: rename some versioning interface (#2078) isPinnedVersion -> isVersion rangify -> getNewValue --- lib/datasource/github.js | 4 ++-- lib/manager/buildkite/extract.js | 4 ++-- lib/manager/nvm/extract.js | 2 +- lib/manager/pip_requirements/package.js | 7 +++---- lib/manager/travis/package.js | 7 ++----- lib/versioning/pep440/index.js | 10 +++++----- lib/versioning/pep440/range.js | 4 ++-- lib/versioning/semver/index.js | 12 ++++++------ lib/versioning/semver/range.js | 6 +++--- lib/workers/pr/changelog/manager-pip.js | 4 ++-- lib/workers/pr/changelog/source-github.js | 4 ++-- lib/workers/repository/process/lookup/index.js | 4 ++-- lib/workers/repository/process/lookup/rollback.js | 4 ++-- test/versioning/semver.spec.js | 11 ++++++++--- 14 files changed, 42 insertions(+), 41 deletions(-) diff --git a/lib/datasource/github.js b/lib/datasource/github.js index 25fd0d44ad..65f89bfdad 100644 --- a/lib/datasource/github.js +++ b/lib/datasource/github.js @@ -1,7 +1,7 @@ const ghGot = require('../platform/github/gh-got-wrapper'); const versioning = require('../versioning'); -const { isPinnedVersion } = versioning('semver'); +const { isVersion } = versioning('semver'); module.exports = { getDependency, @@ -50,7 +50,7 @@ async function getDependency(repo, options = {}) { if (!versions) { return null; } - versions = versions.filter(version => isPinnedVersion(version)); + versions = versions.filter(version => isVersion(version)); if (clean) { versions = versions.map(version => version.replace(/^v/, '')); } diff --git a/lib/manager/buildkite/extract.js b/lib/manager/buildkite/extract.js index fd93aa7a0e..10cbce2e81 100644 --- a/lib/manager/buildkite/extract.js +++ b/lib/manager/buildkite/extract.js @@ -1,6 +1,6 @@ const versioning = require('../../versioning'); -const { isPinnedVersion } = versioning('semver'); +const { isVersion } = versioning('semver'); module.exports = { extractDependencies, @@ -29,7 +29,7 @@ function extractDependencies(content) { if (depName.startsWith('https://') || depName.startsWith('git@')) { logger.debug({ depName }, 'Skipping git plugin'); skipReason = 'git-plugin'; - } else if (!isPinnedVersion(currentValue)) { + } else if (!isVersion(currentValue)) { logger.debug( { currentValue }, 'Skipping non-pinned current version' diff --git a/lib/manager/nvm/extract.js b/lib/manager/nvm/extract.js index 8c228815e8..1f598f0a61 100644 --- a/lib/manager/nvm/extract.js +++ b/lib/manager/nvm/extract.js @@ -11,7 +11,7 @@ function extractDependencies(content) { purl: 'pkg:github/nodejs/node?clean=true', versionScheme: 'semver', }; - if (!semver.isPinnedVersion(dep.currentValue)) { + if (!semver.isVersion(dep.currentValue)) { dep.skipReason = 'unsupported-version'; } return { deps: [dep] }; diff --git a/lib/manager/pip_requirements/package.js b/lib/manager/pip_requirements/package.js index 4fe9090532..5f2d735000 100644 --- a/lib/manager/pip_requirements/package.js +++ b/lib/manager/pip_requirements/package.js @@ -2,7 +2,7 @@ const got = require('got'); const { isGreaterThan, sortVersions, - isPinnedVersion, + isVersion, getMajor, } = require('../../versioning/semver'); @@ -14,7 +14,7 @@ async function getPackageUpdates(config) { try { logger.debug('pip_requirements.getPackageUpdates()'); const { currentValue, depName } = config; - if (!isPinnedVersion(currentValue)) { + if (!isVersion(currentValue)) { return []; } const { releases } = (await got(`https://pypi.org/pypi/${depName}/json`, { @@ -22,8 +22,7 @@ async function getPackageUpdates(config) { })).body; const newVersions = Object.keys(releases) .filter( - release => - isPinnedVersion(release) && isGreaterThan(release, currentValue) + release => isVersion(release) && isGreaterThan(release, currentValue) ) .sort(sortVersions); diff --git a/lib/manager/travis/package.js b/lib/manager/travis/package.js index 65029bd650..59c2b52970 100644 --- a/lib/manager/travis/package.js +++ b/lib/manager/travis/package.js @@ -2,7 +2,7 @@ const { isEqual } = require('lodash'); const { getDependency } = require('../../datasource/github'); const versioning = require('../../versioning'); -const { isPinnedVersion, maxSatisfyingVersion } = versioning('semver'); +const { isVersion, maxSatisfyingVersion } = versioning('semver'); module.exports = { getPackageUpdates, @@ -36,10 +36,7 @@ async function getPackageUpdates(config) { .sort() // sort combined array .reverse() // we want to order latest to oldest .map(version => `${version}`); // convert to strings - if ( - config.rangeStrategy === 'pin' || - isPinnedVersion(config.currentValue[0]) - ) { + if (config.rangeStrategy === 'pin' || isVersion(config.currentValue[0])) { const releases = Object.keys( (await getDependency('nodejs/node', { clean: 'true' })).versions ); diff --git a/lib/versioning/pep440/index.js b/lib/versioning/pep440/index.js index cc103596d2..a273053d3b 100644 --- a/lib/versioning/pep440/index.js +++ b/lib/versioning/pep440/index.js @@ -1,11 +1,11 @@ const pep440 = require('@renovate/pep440'); const { filter } = require('@renovate/pep440/lib/specifier'); -const { rangify } = require('./range'); +const { getNewValue } = require('./range'); const { compare: sortVersions, satisfies: matches, - valid: isPinnedVersion, + valid: isVersion, validRange, explain, gt: isGreaterThan, @@ -22,7 +22,7 @@ const isStable = input => { return !version.is_prerelease; }; -const isRange = input => isValid(input) && !isPinnedVersion(input); +const isRange = input => isValid(input) && !isVersion(input); // If this is left as an alias, inputs like "17.04.0" throw errors const isValid = input => validRange(input); @@ -42,13 +42,13 @@ module.exports = { getMajor, getMinor, isGreaterThan, - isPinnedVersion, + isVersion, isRange, isStable, isValid, matches, maxSatisfyingVersion, minSatisfyingVersion, - rangify, + getNewValue, sortVersions, }; diff --git a/lib/versioning/pep440/range.js b/lib/versioning/pep440/range.js index 2f5669b01f..092de87e74 100644 --- a/lib/versioning/pep440/range.js +++ b/lib/versioning/pep440/range.js @@ -1,8 +1,8 @@ module.exports = { - rangify, + getNewValue, }; -function rangify(config, currentValue, fromVersion, toVersion) { +function getNewValue(config, currentValue, fromVersion, toVersion) { const { rangeStrategy } = config; // istanbul ignore if if (rangeStrategy !== 'pin') { diff --git a/lib/versioning/semver/index.js b/lib/versioning/semver/index.js index 87aa711870..2e9064b43c 100644 --- a/lib/versioning/semver/index.js +++ b/lib/versioning/semver/index.js @@ -1,6 +1,6 @@ const semver = require('semver'); const stable = require('semver-stable'); -const { rangify } = require('./range'); +const { getNewValue } = require('./range'); const { is: isStable } = stable; @@ -10,7 +10,7 @@ const { minSatisfying: minSatisfyingVersion, minor: getMinor, satisfies: matches, - valid: isPinnedVersion, + valid: isVersion, validRange, ltr: isLessThanRange, gt: isGreaterThan, @@ -20,11 +20,11 @@ const { const padRange = range => range + '.0'.repeat(3 - range.split('.').length); const getMajor = input => { - const version = isPinnedVersion(input) ? input : padRange(input); + const version = isVersion(input) ? input : padRange(input); return semver.major(version); }; -const isRange = input => isValid(input) && !isPinnedVersion(input); +const isRange = input => isValid(input) && !isVersion(input); // If this is left as an alias, inputs like "17.04.0" throw errors const isValid = input => validRange(input); @@ -35,13 +35,13 @@ module.exports = { getMinor, isGreaterThan, isLessThanRange, - isPinnedVersion, isRange, isStable, isValid, + isVersion, matches, maxSatisfyingVersion, minSatisfyingVersion, - rangify, + getNewValue, sortVersions, }; diff --git a/lib/versioning/semver/range.js b/lib/versioning/semver/range.js index e395a61225..5a04714150 100644 --- a/lib/versioning/semver/range.js +++ b/lib/versioning/semver/range.js @@ -2,10 +2,10 @@ const { inc: increment, major, minor, valid } = require('semver'); const { parseRange } = require('semver-utils'); module.exports = { - rangify, + getNewValue, }; -function rangify(config, currentValue, fromVersion, toVersion) { +function getNewValue(config, currentValue, fromVersion, toVersion) { const { rangeStrategy } = config; if (rangeStrategy === 'pin' || valid(currentValue)) { return toVersion; @@ -13,7 +13,7 @@ function rangify(config, currentValue, fromVersion, toVersion) { const parsedRange = parseRange(currentValue); const element = parsedRange[parsedRange.length - 1]; if (rangeStrategy === 'widen') { - const newValue = rangify( + const newValue = getNewValue( { ...config, rangeStrategy: 'replace' }, currentValue, fromVersion, diff --git a/lib/workers/pr/changelog/manager-pip.js b/lib/workers/pr/changelog/manager-pip.js index 2ef4059c5e..66e390fcfb 100644 --- a/lib/workers/pr/changelog/manager-pip.js +++ b/lib/workers/pr/changelog/manager-pip.js @@ -7,7 +7,7 @@ module.exports = { async function getPackage({ versionScheme, depName }) { try { - const { sortVersions, isPinnedVersion } = versioning(versionScheme); + const { sortVersions, isVersion } = versioning(versionScheme); logger.debug({ depName }, 'fetching pip package versions'); const rep = await got(`https://pypi.org/pypi/${depName}/json`, { json: true, @@ -18,7 +18,7 @@ async function getPackage({ versionScheme, depName }) { logger.debug({ depName }, 'pip package not found'); return null; } - const releases = Object.keys(dep.releases).filter(isPinnedVersion); + const releases = Object.keys(dep.releases).filter(isVersion); releases.sort(sortVersions); const versions = releases.map(release => ({ version: release, diff --git a/lib/workers/pr/changelog/source-github.js b/lib/workers/pr/changelog/source-github.js index 38c627b692..f04a0c8b6a 100644 --- a/lib/workers/pr/changelog/source-github.js +++ b/lib/workers/pr/changelog/source-github.js @@ -6,7 +6,7 @@ module.exports = { }; async function getTags(versionScheme, repository) { - const { isPinnedVersion } = versioning(versionScheme); + const { isVersion } = versioning(versionScheme); try { const versions = {}; @@ -21,7 +21,7 @@ async function getTags(versionScheme, repository) { } tags.forEach(tag => { - const version = isPinnedVersion(tag.name); + const version = isVersion(tag.name); if (version) { versions[version] = { gitHead: tag.name }; } diff --git a/lib/workers/repository/process/lookup/index.js b/lib/workers/repository/process/lookup/index.js index fce079b984..1947b5da3b 100644 --- a/lib/workers/repository/process/lookup/index.js +++ b/lib/workers/repository/process/lookup/index.js @@ -19,7 +19,7 @@ async function lookupUpdates(config) { isGreaterThan, isRange, matches, - rangify, + getNewValue, } = versioning(versionScheme); logger.debug({ depName, currentValue }, 'lookupUpdates'); let dependency; @@ -101,7 +101,7 @@ async function lookupUpdates(config) { const buckets = {}; for (const toVersion of filteredVersions) { const update = { fromVersion, toVersion }; - update.newValue = rangify(config, currentValue, fromVersion, toVersion); + update.newValue = getNewValue(config, currentValue, fromVersion, toVersion); if (!update.newValue || update.newValue === currentValue) { continue; // eslint-disable-line no-continue } diff --git a/lib/workers/repository/process/lookup/rollback.js b/lib/workers/repository/process/lookup/rollback.js index 28ded9a12d..3e6fed8a4d 100644 --- a/lib/workers/repository/process/lookup/rollback.js +++ b/lib/workers/repository/process/lookup/rollback.js @@ -6,7 +6,7 @@ module.exports = { function getRollbackUpdate(config, versions) { const { packageFile, versionScheme, depName, currentValue } = config; - const { getMajor, isLessThanRange, rangify, sortVersions } = versioning( + const { getMajor, isLessThanRange, getNewValue, sortVersions } = versioning( versionScheme ); // istanbul ignore if @@ -35,7 +35,7 @@ function getRollbackUpdate(config, versions) { lessThanVersions.sort(sortVersions); const toVersion = lessThanVersions.pop(); let fromVersion; - const newValue = rangify(config, currentValue, fromVersion, toVersion); + const newValue = getNewValue(config, currentValue, fromVersion, toVersion); return { type: 'rollback', branchName: diff --git a/test/versioning/semver.spec.js b/test/versioning/semver.spec.js index f45cf7f739..3f5d5d7218 100644 --- a/test/versioning/semver.spec.js +++ b/test/versioning/semver.spec.js @@ -37,15 +37,20 @@ describe('semver.isRange(input)', () => { expect(!!semver.isRange('^1.2.3')).toBe(true); }); }); -describe('semver.rangify()', () => { +describe('semver.getNewValue()', () => { it('bumps equals', () => { expect( - semver.rangify({ rangeStrategy: 'bump' }, '=1.0.0', '1.0.0', '1.1.0') + semver.getNewValue({ rangeStrategy: 'bump' }, '=1.0.0', '1.0.0', '1.1.0') ).toEqual('=1.1.0'); }); it('replaces equals', () => { expect( - semver.rangify({ rangeStrategy: 'replace' }, '=1.0.0', '1.0.0', '1.1.0') + semver.getNewValue( + { rangeStrategy: 'replace' }, + '=1.0.0', + '1.0.0', + '1.1.0' + ) ).toEqual('=1.1.0'); }); }); -- GitLab