From 0a38cfbc22a34542fbaba6b1f323ff8436f3802f Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Sat, 2 Jun 2018 10:19:36 +0200
Subject: [PATCH] chore: add versionScheme to purl extract

---
 lib/manager/bazel/extract.js                  |  2 +-
 lib/manager/buildkite/extract.js              |  1 +
 lib/manager/meteor/extract.js                 |  1 +
 lib/manager/npm/extract/index.js              |  1 +
 .../bazel/__snapshots__/extract.spec.js.snap  |  4 ++
 .../__snapshots__/extract.spec.js.snap        |  6 +++
 .../meteor/__snapshots__/extract.spec.js.snap |  6 +++
 .../extract/__snapshots__/index.spec.js.snap  | 39 +++++++++++++++++++
 8 files changed, 59 insertions(+), 1 deletion(-)

diff --git a/lib/manager/bazel/extract.js b/lib/manager/bazel/extract.js
index d4910d20ec..e97b6c68f5 100644
--- a/lib/manager/bazel/extract.js
+++ b/lib/manager/bazel/extract.js
@@ -16,7 +16,7 @@ function extractDependencies(content) {
   const deps = [];
   definitions.forEach(def => {
     logger.debug({ def }, 'Checking bazel definition');
-    const dep = { def };
+    const dep = { def, versionScheme: 'semver' };
     let depName;
     let remote;
     let currentVersion;
diff --git a/lib/manager/buildkite/extract.js b/lib/manager/buildkite/extract.js
index 45849232e9..0ce2783094 100644
--- a/lib/manager/buildkite/extract.js
+++ b/lib/manager/buildkite/extract.js
@@ -52,6 +52,7 @@ function extractDependencies(content) {
             lineNumber,
             depName,
             purl: repo ? 'pkg:github/' + repo : undefined,
+            semverScheme: 'semver',
             currentVersion,
             skipReason,
           });
diff --git a/lib/manager/meteor/extract.js b/lib/manager/meteor/extract.js
index b11a086419..6da6fac89d 100644
--- a/lib/manager/meteor/extract.js
+++ b/lib/manager/meteor/extract.js
@@ -25,6 +25,7 @@ function extractDependencies(content) {
           depName,
           currentVersion,
           purl: `pkg:npm/${depName.replace('@', '%40')}`,
+          versionScheme: 'semver',
         };
       })
       .filter(dep => dep.depName && dep.currentVersion);
diff --git a/lib/manager/npm/extract/index.js b/lib/manager/npm/extract/index.js
index 1d55191f9e..9c51ca68eb 100644
--- a/lib/manager/npm/extract/index.js
+++ b/lib/manager/npm/extract/index.js
@@ -107,6 +107,7 @@ async function extractDependencies(content, packageFile, config) {
           const dep = {
             depType,
             depName,
+            versionScheme: 'semver',
           };
           // TODO: do we need to remove the equals?
           dep.currentVersion = version.trim().replace(/^=/, '');
diff --git a/test/manager/bazel/__snapshots__/extract.spec.js.snap b/test/manager/bazel/__snapshots__/extract.spec.js.snap
index 72e84d0b72..0e61d0dcd9 100644
--- a/test/manager/bazel/__snapshots__/extract.spec.js.snap
+++ b/test/manager/bazel/__snapshots__/extract.spec.js.snap
@@ -14,6 +14,7 @@ Array [
     "depType": "git_repository",
     "purl": "pkg:github/bazelbuild/rules_nodejs",
     "remote": "https://github.com/bazelbuild/rules_nodejs.git",
+    "versionScheme": "semver",
   },
   Object {
     "currentVersion": "0.6.1",
@@ -27,6 +28,7 @@ Array [
     "depType": "git_repository",
     "purl": "pkg:github/bazelbuild/rules_typescript",
     "remote": "https://github.com/bazelbuild/rules_typescript.git",
+    "versionScheme": "semver",
   },
   Object {
     "currentVersion": "0.0.3",
@@ -40,6 +42,7 @@ Array [
     "depType": "git_repository",
     "purl": "pkg:github/bazelbuild/rules_sass",
     "remote": "https://github.com/bazelbuild/rules_sass.git",
+    "versionScheme": "semver",
   },
   Object {
     "currentVersion": "0.7.1",
@@ -53,6 +56,7 @@ Array [
     "depType": "http_archive",
     "purl": "pkg:github/bazelbuild/rules_go",
     "repo": "bazelbuild/rules_go",
+    "versionScheme": "semver",
   },
 ]
 `;
diff --git a/test/manager/buildkite/__snapshots__/extract.spec.js.snap b/test/manager/buildkite/__snapshots__/extract.spec.js.snap
index 3b26a6cffb..bbc858ba92 100644
--- a/test/manager/buildkite/__snapshots__/extract.spec.js.snap
+++ b/test/manager/buildkite/__snapshots__/extract.spec.js.snap
@@ -7,6 +7,7 @@ Array [
     "depName": "namespace/docker-compose",
     "lineNumber": 4,
     "purl": undefined,
+    "semverScheme": "semver",
     "skipReason": "invalid-version",
   },
   Object {
@@ -14,6 +15,7 @@ Array [
     "depName": "https://github.com/buildkite/plugin-docker-compose",
     "lineNumber": 15,
     "purl": undefined,
+    "semverScheme": "semver",
     "skipReason": "git-plugin",
   },
   Object {
@@ -21,6 +23,7 @@ Array [
     "depName": "github.com/buildkite/plugin-docker-compose",
     "lineNumber": 22,
     "purl": undefined,
+    "semverScheme": "semver",
     "skipReason": "unknown",
   },
 ]
@@ -33,6 +36,7 @@ Array [
     "depName": "docker-compose",
     "lineNumber": 4,
     "purl": "pkg:github/buildkite-plugins/docker-compose-buildkite-plugin",
+    "semverScheme": "semver",
     "skipReason": undefined,
   },
   Object {
@@ -40,6 +44,7 @@ Array [
     "depName": "docker-compose",
     "lineNumber": 15,
     "purl": "pkg:github/buildkite-plugins/docker-compose-buildkite-plugin",
+    "semverScheme": "semver",
     "skipReason": undefined,
   },
 ]
@@ -52,6 +57,7 @@ Array [
     "depName": "abc/detect-clowns",
     "lineNumber": 2,
     "purl": "pkg:github/abc/detect-clowns-buildkite-plugin",
+    "semverScheme": "semver",
     "skipReason": undefined,
   },
 ]
diff --git a/test/manager/meteor/__snapshots__/extract.spec.js.snap b/test/manager/meteor/__snapshots__/extract.spec.js.snap
index 0c42ca630c..503e784bf2 100644
--- a/test/manager/meteor/__snapshots__/extract.spec.js.snap
+++ b/test/manager/meteor/__snapshots__/extract.spec.js.snap
@@ -7,31 +7,37 @@ Object {
       "currentVersion": "0.2.0",
       "depName": "xml2js",
       "purl": "pkg:npm/xml2js",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "0.6.0",
       "depName": "xml-crypto",
       "purl": "pkg:npm/xml-crypto",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "0.1.19",
       "depName": "xmldom",
       "purl": "pkg:npm/xmldom",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "2.7.10",
       "depName": "connect",
       "purl": "pkg:npm/connect",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "2.6.4",
       "depName": "xmlbuilder",
       "purl": "pkg:npm/xmlbuilder",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "0.2.0",
       "depName": "querystring",
       "purl": "pkg:npm/querystring",
+      "versionScheme": "semver",
     },
   ],
 }
diff --git a/test/manager/npm/extract/__snapshots__/index.spec.js.snap b/test/manager/npm/extract/__snapshots__/index.spec.js.snap
index d948556309..535b6737e0 100644
--- a/test/manager/npm/extract/__snapshots__/index.spec.js.snap
+++ b/test/manager/npm/extract/__snapshots__/index.spec.js.snap
@@ -8,12 +8,14 @@ Object {
       "depName": "angular",
       "depType": "dependencies",
       "purl": "pkg:npm/angular",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "1.6.0",
       "depName": "@angular/cli",
       "depType": "devDependencies",
       "purl": "pkg:npm/%40angular/cli",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "*",
@@ -21,24 +23,28 @@ Object {
       "depType": "devDependencies",
       "purl": "pkg:npm/foo",
       "skipReason": "any-version",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "file:../foo/bar",
       "depName": "bar",
       "depType": "devDependencies",
       "skipReason": "file",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "latest",
       "depName": "other",
       "depType": "devDependencies",
       "skipReason": "unknown-version",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": ">=1.7.0 <2.0.0",
       "depName": "atom",
       "depType": "engines",
       "skipReason": "unknown-engines",
+      "versionScheme": "semver",
     },
     Object {
       "commitMessageTopic": "Node.js",
@@ -49,6 +55,7 @@ Object {
         "enabled": false,
       },
       "purl": "pkg:github/nodejs/node?clean=true",
+      "versionScheme": "semver",
     },
     Object {
       "commitMessageTopic": "npm",
@@ -56,6 +63,7 @@ Object {
       "depName": "npm",
       "depType": "engines",
       "purl": "pkg:npm/npm",
+      "versionScheme": "semver",
     },
     Object {
       "commitMessageTopic": "Yarn",
@@ -64,6 +72,7 @@ Object {
       "depType": "engines",
       "purl": "pkg:github/yarnpkg/yarn?clean=true",
       "skipReason": "unknown-version",
+      "versionScheme": "semver",
     },
   ],
   "lernaClient": undefined,
@@ -89,60 +98,70 @@ Object {
       "depName": "autoprefixer",
       "depType": "dependencies",
       "purl": "pkg:npm/autoprefixer",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "~1.6.0",
       "depName": "bower",
       "depType": "dependencies",
       "purl": "pkg:npm/bower",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "13.1.0",
       "depName": "browserify",
       "depType": "dependencies",
       "purl": "pkg:npm/browserify",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "0.9.2",
       "depName": "browserify-css",
       "depType": "dependencies",
       "purl": "pkg:npm/browserify-css",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "0.22.0",
       "depName": "cheerio",
       "depType": "dependencies",
       "purl": "pkg:npm/cheerio",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "1.21.0",
       "depName": "config",
       "depType": "dependencies",
       "purl": "pkg:npm/config",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "^1.5.8",
       "depName": "angular",
       "depType": "devDependencies",
       "purl": "pkg:npm/angular",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "1.5.8",
       "depName": "angular-touch",
       "depType": "devDependencies",
       "purl": "pkg:npm/angular-touch",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "1.5.8",
       "depName": "angular-sanitize",
       "depType": "devDependencies",
       "purl": "pkg:npm/angular-sanitize",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "4.0.0-beta.1",
       "depName": "@angular/core",
       "depType": "devDependencies",
       "purl": "pkg:npm/%40angular/core",
+      "versionScheme": "semver",
     },
   ],
   "lernaClient": undefined,
@@ -188,60 +207,70 @@ Object {
       "depName": "autoprefixer",
       "depType": "dependencies",
       "purl": "pkg:npm/autoprefixer",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "~1.6.0",
       "depName": "bower",
       "depType": "dependencies",
       "purl": "pkg:npm/bower",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "13.1.0",
       "depName": "browserify",
       "depType": "dependencies",
       "purl": "pkg:npm/browserify",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "0.9.2",
       "depName": "browserify-css",
       "depType": "dependencies",
       "purl": "pkg:npm/browserify-css",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "0.22.0",
       "depName": "cheerio",
       "depType": "dependencies",
       "purl": "pkg:npm/cheerio",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "1.21.0",
       "depName": "config",
       "depType": "dependencies",
       "purl": "pkg:npm/config",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "^1.5.8",
       "depName": "angular",
       "depType": "devDependencies",
       "purl": "pkg:npm/angular",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "1.5.8",
       "depName": "angular-touch",
       "depType": "devDependencies",
       "purl": "pkg:npm/angular-touch",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "1.5.8",
       "depName": "angular-sanitize",
       "depType": "devDependencies",
       "purl": "pkg:npm/angular-sanitize",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "4.0.0-beta.1",
       "depName": "@angular/core",
       "depType": "devDependencies",
       "purl": "pkg:npm/%40angular/core",
+      "versionScheme": "semver",
     },
   ],
   "lernaClient": "npm",
@@ -267,60 +296,70 @@ Object {
       "depName": "autoprefixer",
       "depType": "dependencies",
       "purl": "pkg:npm/autoprefixer",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "~1.6.0",
       "depName": "bower",
       "depType": "dependencies",
       "purl": "pkg:npm/bower",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "13.1.0",
       "depName": "browserify",
       "depType": "dependencies",
       "purl": "pkg:npm/browserify",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "0.9.2",
       "depName": "browserify-css",
       "depType": "dependencies",
       "purl": "pkg:npm/browserify-css",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "0.22.0",
       "depName": "cheerio",
       "depType": "dependencies",
       "purl": "pkg:npm/cheerio",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "1.21.0",
       "depName": "config",
       "depType": "dependencies",
       "purl": "pkg:npm/config",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "^1.5.8",
       "depName": "angular",
       "depType": "devDependencies",
       "purl": "pkg:npm/angular",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "1.5.8",
       "depName": "angular-touch",
       "depType": "devDependencies",
       "purl": "pkg:npm/angular-touch",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "1.5.8",
       "depName": "angular-sanitize",
       "depType": "devDependencies",
       "purl": "pkg:npm/angular-sanitize",
+      "versionScheme": "semver",
     },
     Object {
       "currentVersion": "4.0.0-beta.1",
       "depName": "@angular/core",
       "depType": "devDependencies",
       "purl": "pkg:npm/%40angular/core",
+      "versionScheme": "semver",
     },
   ],
   "lernaClient": undefined,
-- 
GitLab