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