From b38df44b1861e52d746c206ca6d5609bbf95ca7f Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Mon, 30 Apr 2018 07:16:34 +0200 Subject: [PATCH] refactor: rename parentManager -> language (#1890) Closes #1888 --- docs/adding-a-package-manager.md | 6 +-- lib/manager/circleci/index.js | 4 +- lib/manager/docker-compose/index.js | 4 +- lib/manager/index.js | 17 ++++---- lib/manager/nvm/index.js | 4 +- lib/manager/pip_requirements/index.js | 4 +- lib/manager/travis/index.js | 4 +- test/manager/index.spec.js | 2 +- .../2017-10-05-configuration-options.md | 40 +++++++++---------- 9 files changed, 41 insertions(+), 44 deletions(-) diff --git a/docs/adding-a-package-manager.md b/docs/adding-a-package-manager.md index d7c6a56375..41048820af 100644 --- a/docs/adding-a-package-manager.md +++ b/docs/adding-a-package-manager.md @@ -24,15 +24,15 @@ module.exports = { extractDependencies, filePattern, getPackageUpdates, - parentManager, + language, resolvePackageFile, updateDependency, }; ``` -##### parentManager (optional) +##### language (optional) -This is used when more than one package manager share common characteristics. e.g. docker-compose, circleci and gitlabci all specify "docker" as their parent manager and inherit all config settings from there. +This is used when more than one package manager share settings from a common language. e.g. docker-compose, circleci and gitlabci all specify "docker" as their language and inherit all config settings from there. ##### filePattern diff --git a/lib/manager/circleci/index.js b/lib/manager/circleci/index.js index 068d2f113c..2b674babc7 100644 --- a/lib/manager/circleci/index.js +++ b/lib/manager/circleci/index.js @@ -4,13 +4,13 @@ const { updateDependency } = require('./update'); const filePattern = new RegExp('^.circleci/config.yml$'); const contentPattern = new RegExp('(^|\\n)\\s*- image: '); -const parentManager = 'docker'; +const language = 'docker'; module.exports = { contentPattern, extractDependencies, filePattern, getPackageUpdates, - parentManager, + language, updateDependency, }; diff --git a/lib/manager/docker-compose/index.js b/lib/manager/docker-compose/index.js index 3f5ed7f32a..0618fe466e 100644 --- a/lib/manager/docker-compose/index.js +++ b/lib/manager/docker-compose/index.js @@ -5,14 +5,14 @@ const { updateDependency } = require('./update'); const filePattern = new RegExp('(^|/)docker-compose[^/]*\\.ya?ml$'); const contentPattern = new RegExp('(^|\\n)\\s*image:'); -const parentManager = 'docker'; +const language = 'docker'; module.exports = { contentPattern, extractDependencies, filePattern, getPackageUpdates, - parentManager, + language, resolvePackageFile, updateDependency, }; diff --git a/lib/manager/index.js b/lib/manager/index.js index ef1a9e19bf..295aa70b19 100644 --- a/lib/manager/index.js +++ b/lib/manager/index.js @@ -41,14 +41,14 @@ async function detectPackageFiles(config) { ); for (const manager of managerList) { logger.debug(`Detecting package files (${manager})`); - const { parentManager } = managers[manager]; + const { language } = managers[manager]; // Check if the user has a whitelist of managers if ( config.enabledManagers && config.enabledManagers.length && !( config.enabledManagers.includes(manager) || - config.enabledManagers.includes(parentManager) + config.enabledManagers.includes(language) ) ) { logger.debug(manager + ' is not on the enabledManagers list'); @@ -60,8 +60,8 @@ async function detectPackageFiles(config) { continue; // eslint-disable-line no-continue } // Check if the parent is manually disabled - if (parentManager && config[parentManager].enabled === false) { - logger.debug(manager + ' parentManager is disabled'); + if (language && config[language].enabled === false) { + logger.debug(manager + ' language is disabled'); continue; // eslint-disable-line no-continue } const files = []; @@ -194,12 +194,9 @@ async function resolvePackageFiles(config) { if (managers[manager].resolvePackageFile) { return managers[manager].resolvePackageFile(config, packageFile); } - const { parentManager } = managers[manager]; - const parentManagerConfig = parentManager ? config[parentManager] : {}; - const managerConfig = mergeChildConfig( - parentManagerConfig, - config[manager] - ); + const { language } = managers[manager]; + const languageConfig = language ? config[language] : {}; + const managerConfig = mergeChildConfig(languageConfig, config[manager]); packageFile = mergeChildConfig(managerConfig, packageFile); logger.debug( `Resolving packageFile ${JSON.stringify(packageFile.packageFile)}` diff --git a/lib/manager/nvm/index.js b/lib/manager/nvm/index.js index 57f3860c91..abcd005bc5 100644 --- a/lib/manager/nvm/index.js +++ b/lib/manager/nvm/index.js @@ -3,12 +3,12 @@ const { getPackageUpdates } = require('./package'); const { updateDependency } = require('./update'); const filePattern = new RegExp('^.nvmrc$'); -const parentManager = 'node'; +const language = 'node'; module.exports = { extractDependencies, filePattern, getPackageUpdates, - parentManager, + language, updateDependency, }; diff --git a/lib/manager/pip_requirements/index.js b/lib/manager/pip_requirements/index.js index a405b6d489..96ffb634fa 100644 --- a/lib/manager/pip_requirements/index.js +++ b/lib/manager/pip_requirements/index.js @@ -4,13 +4,13 @@ const { updateDependency } = require('./update'); const filePattern = /(^|\/)([\w-]*)requirements.(txt|pip)$/; const contentPattern = new RegExp(`^${packagePattern}==`); -const parentManager = 'python'; +const language = 'python'; module.exports = { contentPattern, extractDependencies, filePattern, getPackageUpdates, - parentManager, + language, updateDependency, }; diff --git a/lib/manager/travis/index.js b/lib/manager/travis/index.js index 4feb1b8da0..4752f04cc8 100644 --- a/lib/manager/travis/index.js +++ b/lib/manager/travis/index.js @@ -4,13 +4,13 @@ const { updateDependency } = require('./update'); const filePattern = new RegExp('^.travis.yml$'); const contentPattern = new RegExp('(^|\\n)node_js:\\n'); -const parentManager = 'node'; +const language = 'node'; module.exports = { contentPattern, extractDependencies, filePattern, getPackageUpdates, - parentManager, + language, updateDependency, }; diff --git a/test/manager/index.spec.js b/test/manager/index.spec.js index d4fff3a8e1..7c6edbe566 100644 --- a/test/manager/index.spec.js +++ b/test/manager/index.spec.js @@ -29,7 +29,7 @@ describe('manager', () => { const res = await manager.detectPackageFiles(config); expect(res).toHaveLength(0); }); - it('skips if parentManager is disabled', async () => { + it('skips if language is disabled', async () => { platform.getFileList.mockReturnValueOnce([ 'package.json', '.circleci/config.yml', diff --git a/website/docs/_posts/2017-10-05-configuration-options.md b/website/docs/_posts/2017-10-05-configuration-options.md index 8131783615..dfaac12bad 100644 --- a/website/docs/_posts/2017-10-05-configuration-options.md +++ b/website/docs/_posts/2017-10-05-configuration-options.md @@ -172,11 +172,11 @@ Set this value to 'patch', 'minor' or 'major' to have Renovate update the versio Configuration object for CircleCI yaml file renovation. Also inherits settings from `docker` object. -| name | value | -| ------------- | ------ | -| type | object | -| default | {} | -| parentManager | docker | +| name | value | +| -------- | ------ | +| type | object | +| default | {} | +| language | docker | ## commitBody @@ -327,11 +327,11 @@ Configuration specific for Dockerfile updates. Configuration object for Docker Compose yaml file renovation. Also inherits settings from `docker` object. -| name | value | -| ------------- | ------ | -| type | object | -| default | {} | -| parentManager | docker | +| name | value | +| -------- | ------ | +| type | object | +| default | {} | +| language | docker | ## enabled @@ -716,11 +716,11 @@ See https://renovateapp.com/docs/deep-dives/private-modules for details on how t Configuration specific for `.nvmrc` files. -| name | value | -| ------------- | ------ | -| type | object | -| default | { } | -| parentManager | node | +| name | value | +| -------- | ------ | +| type | object | +| default | { } | +| language | node | For settings common to all node.js version updates (e.g. travis, nvm, etc) you can use the `node` object instead. @@ -1221,11 +1221,11 @@ It is only recommended to set this field if you wish to use the `schedules` feat Configuration specific for `.travis.yml` files. -| name | value | -| ------------- | ------------------ | -| type | object | -| default | { enabled: false } | -| parentManager | node | +| name | value | +| -------- | ------------------ | +| type | object | +| default | { enabled: false } | +| language | node | For settings common to all node.js version updates (e.g. travis, nvm, etc) you can use the `node` object instead. -- GitLab