From a0e2a18e7a78ed919362f28f51d46e8b667506eb Mon Sep 17 00:00:00 2001
From: Rhys Arkins <rhys@arkins.net>
Date: Sat, 21 Jul 2018 19:40:50 +0200
Subject: [PATCH] refactor(docker): rename docker manager to dockerfile (#2298)

"docker" in config now refers to the Docker "language", which is the parent of dockerfile, docker-compose and circleci managers.
---
 lib/config/definitions.js                     | 14 ++++++--
 lib/manager/circleci/extract.js               |  2 +-
 lib/manager/circleci/update.js                |  2 +-
 lib/manager/docker-compose/extract.js         |  2 +-
 lib/manager/docker-compose/update.js          |  2 +-
 lib/manager/{docker => dockerfile}/extract.js |  0
 lib/manager/{docker => dockerfile}/index.js   |  3 ++
 lib/manager/{docker => dockerfile}/update.js  |  0
 lib/manager/index.js                          |  2 +-
 .../onboarding/pr/config-description.js       |  4 ++-
 .../__snapshots__/extract.spec.js.snap        | 32 +++++++++----------
 .../__snapshots__/update.spec.js.snap         |  8 ++---
 .../{docker => dockerfile}/extract.spec.js    |  6 ++--
 .../{docker => dockerfile}/update.spec.js     |  4 +--
 test/manager/index.spec.js                    |  4 +--
 .../extract/__snapshots__/index.spec.js.snap  |  4 +--
 .../onboarding/pr/config-description.spec.js  |  2 +-
 .../__snapshots__/flatten.spec.js.snap        |  2 +-
 .../repository/updates/flatten.spec.js        |  2 +-
 website/docs/configuration-options.md         |  2 ++
 20 files changed, 58 insertions(+), 39 deletions(-)
 rename lib/manager/{docker => dockerfile}/extract.js (100%)
 rename lib/manager/{docker => dockerfile}/index.js (80%)
 rename lib/manager/{docker => dockerfile}/update.js (100%)
 rename test/manager/{docker => dockerfile}/__snapshots__/extract.spec.js.snap (86%)
 rename test/manager/{docker => dockerfile}/__snapshots__/update.spec.js.snap (55%)
 rename test/manager/{docker => dockerfile}/extract.spec.js (96%)
 rename test/manager/{docker => dockerfile}/update.spec.js (96%)

diff --git a/lib/config/definitions.js b/lib/config/definitions.js
index 838f47a157..2ec3dbb7e4 100644
--- a/lib/config/definitions.js
+++ b/lib/config/definitions.js
@@ -946,11 +946,10 @@ const options = [
   },
   {
     name: 'docker',
-    description: 'Configuration object for Dockerfile renovation',
+    description: 'Configuration object for Docker language',
     stage: 'package',
     type: 'json',
     default: {
-      fileMatch: ['(^|/)Dockerfile$'],
       managerBranchPrefix: 'docker-',
       commitMessageTopic: '{{{depName}}} Docker tag',
       prBody: template('prBody', 'docker'),
@@ -995,6 +994,17 @@ const options = [
     mergeable: true,
     cli: false,
   },
+  {
+    name: 'dockerfile',
+    description: 'Configuration object for Dockerfile renovation',
+    stage: 'package',
+    type: 'json',
+    default: {
+      fileMatch: ['(^|/)Dockerfile$'],
+    },
+    mergeable: true,
+    cli: false,
+  },
   {
     name: 'circleci',
     description:
diff --git a/lib/manager/circleci/extract.js b/lib/manager/circleci/extract.js
index d9c77c2ba6..ed7ae9fb5e 100644
--- a/lib/manager/circleci/extract.js
+++ b/lib/manager/circleci/extract.js
@@ -1,4 +1,4 @@
-const { getDep } = require('../docker/extract');
+const { getDep } = require('../dockerfile/extract');
 
 module.exports = {
   extractDependencies,
diff --git a/lib/manager/circleci/update.js b/lib/manager/circleci/update.js
index a2eeefe5b1..91e50b10ce 100644
--- a/lib/manager/circleci/update.js
+++ b/lib/manager/circleci/update.js
@@ -1,4 +1,4 @@
-const { getNewFrom } = require('../docker/update');
+const { getNewFrom } = require('../dockerfile/update');
 
 module.exports = {
   updateDependency,
diff --git a/lib/manager/docker-compose/extract.js b/lib/manager/docker-compose/extract.js
index 47aa49054c..75d7569ba3 100644
--- a/lib/manager/docker-compose/extract.js
+++ b/lib/manager/docker-compose/extract.js
@@ -1,4 +1,4 @@
-const { getDep } = require('../docker/extract');
+const { getDep } = require('../dockerfile/extract');
 
 module.exports = {
   extractDependencies,
diff --git a/lib/manager/docker-compose/update.js b/lib/manager/docker-compose/update.js
index a5f303ab7a..8e8779633e 100644
--- a/lib/manager/docker-compose/update.js
+++ b/lib/manager/docker-compose/update.js
@@ -1,4 +1,4 @@
-const { getNewFrom } = require('../docker/update');
+const { getNewFrom } = require('../dockerfile/update');
 
 module.exports = {
   updateDependency,
diff --git a/lib/manager/docker/extract.js b/lib/manager/dockerfile/extract.js
similarity index 100%
rename from lib/manager/docker/extract.js
rename to lib/manager/dockerfile/extract.js
diff --git a/lib/manager/docker/index.js b/lib/manager/dockerfile/index.js
similarity index 80%
rename from lib/manager/docker/index.js
rename to lib/manager/dockerfile/index.js
index 75e547b3e9..5549e42b60 100644
--- a/lib/manager/docker/index.js
+++ b/lib/manager/dockerfile/index.js
@@ -1,7 +1,10 @@
 const { extractDependencies } = require('./extract');
 const { updateDependency } = require('./update');
 
+const language = 'docker';
+
 module.exports = {
   extractDependencies,
+  language,
   updateDependency,
 };
diff --git a/lib/manager/docker/update.js b/lib/manager/dockerfile/update.js
similarity index 100%
rename from lib/manager/docker/update.js
rename to lib/manager/dockerfile/update.js
diff --git a/lib/manager/index.js b/lib/manager/index.js
index ba990736aa..4d3c3f686c 100644
--- a/lib/manager/index.js
+++ b/lib/manager/index.js
@@ -3,8 +3,8 @@ const managerList = [
   'buildkite',
   'circleci',
   'composer',
-  'docker',
   'docker-compose',
+  'dockerfile',
   'meteor',
   'npm',
   'nvm',
diff --git a/lib/workers/repository/onboarding/pr/config-description.js b/lib/workers/repository/onboarding/pr/config-description.js
index ee7ce645a7..3f96ad6da4 100644
--- a/lib/workers/repository/onboarding/pr/config-description.js
+++ b/lib/workers/repository/onboarding/pr/config-description.js
@@ -25,7 +25,9 @@ function getConfigDesc(config, packageFiles) {
   }
   logger.debug({ length: descriptionArr.length }, 'Found description array');
   const managers = packageFiles ? Object.keys(packageFiles) : [];
-  if (!(managers.includes('docker') || managers.includes('docker-compose'))) {
+  if (
+    !(managers.includes('dockerfile') || managers.includes('docker-compose'))
+  ) {
     descriptionArr = descriptionArr.filter(val => !val.includes('Docker-only'));
   }
   let desc = `\n## Configuration Summary\n\nBased on the currently configured presets, Renovate will:\n\n`;
diff --git a/test/manager/docker/__snapshots__/extract.spec.js.snap b/test/manager/dockerfile/__snapshots__/extract.spec.js.snap
similarity index 86%
rename from test/manager/docker/__snapshots__/extract.spec.js.snap
rename to test/manager/dockerfile/__snapshots__/extract.spec.js.snap
index 2fab76e736..e4c22b5fa5 100644
--- a/test/manager/docker/__snapshots__/extract.spec.js.snap
+++ b/test/manager/dockerfile/__snapshots__/extract.spec.js.snap
@@ -1,6 +1,6 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
-exports[`lib/manager/docker/extract extractDependencies() extracts images on adjacent lines 1`] = `
+exports[`lib/manager/dockerfile/extract extractDependencies() extracts images on adjacent lines 1`] = `
 Array [
   Object {
     "commitMessageTopic": "Node.js",
@@ -38,7 +38,7 @@ Array [
 ]
 `;
 
-exports[`lib/manager/docker/extract extractDependencies() extracts multiple FROM tags 1`] = `
+exports[`lib/manager/dockerfile/extract extractDependencies() extracts multiple FROM tags 1`] = `
 Array [
   Object {
     "commitMessageTopic": "Node.js",
@@ -76,7 +76,7 @@ Array [
 ]
 `;
 
-exports[`lib/manager/docker/extract extractDependencies() handles abnoral spacing 1`] = `
+exports[`lib/manager/dockerfile/extract extractDependencies() handles abnoral spacing 1`] = `
 Array [
   Object {
     "commitMessageTopic": "Node.js",
@@ -98,7 +98,7 @@ Array [
 ]
 `;
 
-exports[`lib/manager/docker/extract extractDependencies() handles comments 1`] = `
+exports[`lib/manager/dockerfile/extract extractDependencies() handles comments 1`] = `
 Array [
   Object {
     "commitMessageTopic": "Node.js",
@@ -120,7 +120,7 @@ Array [
 ]
 `;
 
-exports[`lib/manager/docker/extract extractDependencies() handles custom hosts 1`] = `
+exports[`lib/manager/dockerfile/extract extractDependencies() handles custom hosts 1`] = `
 Array [
   Object {
     "commitMessageTopic": "Node.js",
@@ -142,7 +142,7 @@ Array [
 ]
 `;
 
-exports[`lib/manager/docker/extract extractDependencies() handles custom hosts and suffix 1`] = `
+exports[`lib/manager/dockerfile/extract extractDependencies() handles custom hosts and suffix 1`] = `
 Array [
   Object {
     "commitMessageTopic": "Node.js",
@@ -164,7 +164,7 @@ Array [
 ]
 `;
 
-exports[`lib/manager/docker/extract extractDependencies() handles custom hosts with namespace 1`] = `
+exports[`lib/manager/dockerfile/extract extractDependencies() handles custom hosts with namespace 1`] = `
 Array [
   Object {
     "commitMessageTopic": "Node.js",
@@ -186,7 +186,7 @@ Array [
 ]
 `;
 
-exports[`lib/manager/docker/extract extractDependencies() handles custom hosts with port 1`] = `
+exports[`lib/manager/dockerfile/extract extractDependencies() handles custom hosts with port 1`] = `
 Array [
   Object {
     "commitMessageTopic": "Node.js",
@@ -208,7 +208,7 @@ Array [
 ]
 `;
 
-exports[`lib/manager/docker/extract extractDependencies() handles digest 1`] = `
+exports[`lib/manager/dockerfile/extract extractDependencies() handles digest 1`] = `
 Array [
   Object {
     "commitMessageTopic": "Node.js",
@@ -230,7 +230,7 @@ Array [
 ]
 `;
 
-exports[`lib/manager/docker/extract extractDependencies() handles from as 1`] = `
+exports[`lib/manager/dockerfile/extract extractDependencies() handles from as 1`] = `
 Array [
   Object {
     "commitMessageTopic": "Node.js",
@@ -252,7 +252,7 @@ Array [
 ]
 `;
 
-exports[`lib/manager/docker/extract extractDependencies() handles naked dep 1`] = `
+exports[`lib/manager/dockerfile/extract extractDependencies() handles naked dep 1`] = `
 Array [
   Object {
     "commitMessageTopic": "Node.js",
@@ -274,7 +274,7 @@ Array [
 ]
 `;
 
-exports[`lib/manager/docker/extract extractDependencies() handles namespaced images 1`] = `
+exports[`lib/manager/dockerfile/extract extractDependencies() handles namespaced images 1`] = `
 Array [
   Object {
     "commitMessageTopic": "Node.js",
@@ -296,7 +296,7 @@ Array [
 ]
 `;
 
-exports[`lib/manager/docker/extract extractDependencies() handles tag 1`] = `
+exports[`lib/manager/dockerfile/extract extractDependencies() handles tag 1`] = `
 Array [
   Object {
     "commitMessageTopic": "Node.js",
@@ -318,7 +318,7 @@ Array [
 ]
 `;
 
-exports[`lib/manager/docker/extract extractDependencies() handles tag and digest 1`] = `
+exports[`lib/manager/dockerfile/extract extractDependencies() handles tag and digest 1`] = `
 Array [
   Object {
     "commitMessageTopic": "Node.js",
@@ -340,7 +340,7 @@ Array [
 ]
 `;
 
-exports[`lib/manager/docker/extract extractDependencies() is case insensitive 1`] = `
+exports[`lib/manager/dockerfile/extract extractDependencies() is case insensitive 1`] = `
 Array [
   Object {
     "commitMessageTopic": "Node.js",
@@ -362,7 +362,7 @@ Array [
 ]
 `;
 
-exports[`lib/manager/docker/extract extractDependencies() skips named multistage FROM tags 1`] = `
+exports[`lib/manager/dockerfile/extract extractDependencies() skips named multistage FROM tags 1`] = `
 Array [
   Object {
     "commitMessageTopic": "Node.js",
diff --git a/test/manager/docker/__snapshots__/update.spec.js.snap b/test/manager/dockerfile/__snapshots__/update.spec.js.snap
similarity index 55%
rename from test/manager/docker/__snapshots__/update.spec.js.snap
rename to test/manager/dockerfile/__snapshots__/update.spec.js.snap
index de3f74481d..8e9dd8c5b3 100644
--- a/test/manager/docker/__snapshots__/update.spec.js.snap
+++ b/test/manager/dockerfile/__snapshots__/update.spec.js.snap
@@ -1,27 +1,27 @@
 // Jest Snapshot v1, https://goo.gl/fbAQLP
 
-exports[`manager/docker/update updateDependency handles similar FROM 1`] = `
+exports[`manager/dockerfile/update updateDependency handles similar FROM 1`] = `
 "FROM debian:wheezy@sha256:abcdefghijklmnop as stage-1
 RUN something
 FROM debian:wheezy@sha256:abcdefghijklmnop
 RUN something else"
 `;
 
-exports[`manager/docker/update updateDependency handles strange whitespace 1`] = `
+exports[`manager/dockerfile/update updateDependency handles strange whitespace 1`] = `
 "# comment FROM node:8
 FROM node:8@sha256:abcdefghijklmnop as base
 RUN something
 "
 `;
 
-exports[`manager/docker/update updateDependency replaces existing value 1`] = `
+exports[`manager/dockerfile/update updateDependency replaces existing value 1`] = `
 "# comment FROM node:8
 FROM node:8-alpine@sha256:abcdefghijklmnop
 RUN something
 "
 `;
 
-exports[`manager/docker/update updateDependency replaces existing value with suffix 1`] = `
+exports[`manager/dockerfile/update updateDependency replaces existing value with suffix 1`] = `
 "# comment FROM node:8
 FROM node:8@sha256:abcdefghijklmnop as base
 RUN something
diff --git a/test/manager/docker/extract.spec.js b/test/manager/dockerfile/extract.spec.js
similarity index 96%
rename from test/manager/docker/extract.spec.js
rename to test/manager/dockerfile/extract.spec.js
index 40226fd05b..48340cf147 100644
--- a/test/manager/docker/extract.spec.js
+++ b/test/manager/dockerfile/extract.spec.js
@@ -1,9 +1,11 @@
 const fs = require('fs');
-const { extractDependencies } = require('../../../lib/manager/docker/extract');
+const {
+  extractDependencies,
+} = require('../../../lib/manager/dockerfile/extract');
 
 const d1 = fs.readFileSync('test/_fixtures/docker/Dockerfile1', 'utf8');
 
-describe('lib/manager/docker/extract', () => {
+describe('lib/manager/dockerfile/extract', () => {
   describe('extractDependencies()', () => {
     let config;
     beforeEach(() => {
diff --git a/test/manager/docker/update.spec.js b/test/manager/dockerfile/update.spec.js
similarity index 96%
rename from test/manager/docker/update.spec.js
rename to test/manager/dockerfile/update.spec.js
index 4ff90fb7c5..b24c7654c3 100644
--- a/test/manager/docker/update.spec.js
+++ b/test/manager/dockerfile/update.spec.js
@@ -1,6 +1,6 @@
-const dockerfile = require('../../../lib/manager/docker/update');
+const dockerfile = require('../../../lib/manager/dockerfile/update');
 
-describe('manager/docker/update', () => {
+describe('manager/dockerfile/update', () => {
   describe('updateDependency', () => {
     it('replaces existing value', () => {
       const fileContent = '# comment FROM node:8\nFROM node:8\nRUN something\n';
diff --git a/test/manager/index.spec.js b/test/manager/index.spec.js
index 6e67b20a61..b427a93477 100644
--- a/test/manager/index.spec.js
+++ b/test/manager/index.spec.js
@@ -3,7 +3,7 @@ const manager = require('../../lib/manager');
 describe('manager', () => {
   describe('get()', () => {
     it('gets something', () => {
-      expect(manager.get('docker', 'extractDependencies')).not.toBe(null);
+      expect(manager.get('dockerfile', 'extractDependencies')).not.toBe(null);
     });
   });
   describe('getLanguageList()', () => {
@@ -18,7 +18,7 @@ describe('manager', () => {
   });
   describe('postExtract()', () => {
     it('returns null', () => {
-      expect(manager.postExtract('docker', [])).toBe(null);
+      expect(manager.postExtract('dockerfile', [])).toBe(null);
     });
     it('returns postExtract', () => {
       expect(manager.postExtract('npm', [])).not.toBe(null);
diff --git a/test/workers/repository/extract/__snapshots__/index.spec.js.snap b/test/workers/repository/extract/__snapshots__/index.spec.js.snap
index dbc6dd67a3..707924ce03 100644
--- a/test/workers/repository/extract/__snapshots__/index.spec.js.snap
+++ b/test/workers/repository/extract/__snapshots__/index.spec.js.snap
@@ -14,10 +14,10 @@ Object {
   "composer": Array [
     Object {},
   ],
-  "docker": Array [
+  "docker-compose": Array [
     Object {},
   ],
-  "docker-compose": Array [
+  "dockerfile": Array [
     Object {},
   ],
   "meteor": Array [
diff --git a/test/workers/repository/onboarding/pr/config-description.spec.js b/test/workers/repository/onboarding/pr/config-description.spec.js
index 781c8c969c..dbd3b7a022 100644
--- a/test/workers/repository/onboarding/pr/config-description.spec.js
+++ b/test/workers/repository/onboarding/pr/config-description.spec.js
@@ -21,7 +21,7 @@ describe('workers/repository/onboarding/pr/config-description', () => {
     it('returns a full list', () => {
       const packageFiles = {
         npm: [],
-        docker: [],
+        dockerfile: [],
       };
       config.description = [
         'description 1',
diff --git a/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap b/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap
index 356878a107..dd8883cb05 100644
--- a/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap
+++ b/test/workers/repository/updates/__snapshots__/flatten.spec.js.snap
@@ -222,7 +222,7 @@ Array [
     "labels": Array [],
     "language": "docker",
     "lazyGrouping": true,
-    "manager": "docker",
+    "manager": "dockerfile",
     "managerBranchPrefix": "",
     "newValue": "10.0.1",
     "npmToken": null,
diff --git a/test/workers/repository/updates/flatten.spec.js b/test/workers/repository/updates/flatten.spec.js
index e5ba3ea8be..3b227cc29f 100644
--- a/test/workers/repository/updates/flatten.spec.js
+++ b/test/workers/repository/updates/flatten.spec.js
@@ -30,7 +30,7 @@ describe('workers/repository/updates/flatten', () => {
             ],
           },
         ],
-        docker: [
+        dockerfile: [
           {
             packageFile: 'Dockerfile',
             deps: [
diff --git a/website/docs/configuration-options.md b/website/docs/configuration-options.md
index 0e0bc1d076..8739e891eb 100644
--- a/website/docs/configuration-options.md
+++ b/website/docs/configuration-options.md
@@ -144,6 +144,8 @@ Add to this object if you wish to define rules that apply only to PRs that pin D
 
 ## docker-compose
 
+## dockerfile
+
 ## enabled
 
 Renovate is enabled for all packages by default, but this setting allows you to disable Renovate for specific packages, dependency types, package files, or even for the whole repository.
-- 
GitLab