From 9555b27d9e47ea85f7c2e96976bfc96ec96c8135 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Wed, 25 Jul 2018 08:58:17 +0200 Subject: [PATCH] fix(lookup): use major/minor/patch updateType instead of bump Helps https://github.com/renovatebot/config-help/issues/67 and https://github.com/renovatebot/config-help/issues/70#issuecomment-407595535 --- lib/util/package-rules.js | 5 +++- .../repository/process/lookup/index.js | 13 +++++++++ .../lookup/__snapshots__/index.spec.js.snap | 27 ++++++++++++++++--- .../repository/process/lookup/index.spec.js | 10 +++++++ 4 files changed, 51 insertions(+), 4 deletions(-) diff --git a/lib/util/package-rules.js b/lib/util/package-rules.js index ae27459df2..eecdbeb4e4 100644 --- a/lib/util/package-rules.js +++ b/lib/util/package-rules.js @@ -17,6 +17,7 @@ function applyPackageRules(inputConfig) { currentValue, fromVersion, updateType, + isBump, } = config; const packageRules = config.packageRules || []; logger.trace( @@ -66,7 +67,9 @@ function applyPackageRules(inputConfig) { negativeMatch = negativeMatch || !isMatch; } if (updateTypes.length) { - const isMatch = updateTypes.includes(updateType); + const isMatch = + updateTypes.includes(updateType) || + (isBump && updateTypes.includes('bump')); positiveMatch = positiveMatch || isMatch; negativeMatch = negativeMatch || !isMatch; } diff --git a/lib/workers/repository/process/lookup/index.js b/lib/workers/repository/process/lookup/index.js index 54205c6d6a..32ce512ff5 100644 --- a/lib/workers/repository/process/lookup/index.js +++ b/lib/workers/repository/process/lookup/index.js @@ -190,6 +190,19 @@ async function lookupUpdates(config) { } } } + for (const update of res.updates) { + const { updateType, fromVersion, toVersion } = update; + if (updateType === 'bump') { + update.isBump = true; + if (getMajor(toVersion) > getMajor(fromVersion)) { + update.updateType = 'major'; + } else if (getMinor(toVersion) > getMinor(fromVersion)) { + update.updateType = 'minor'; + } else { + update.updateType = 'patch'; + } + } + } // Strip out any non-changed ones res.updates = res.updates .filter(update => update.newDigest !== null) diff --git a/test/workers/repository/process/lookup/__snapshots__/index.spec.js.snap b/test/workers/repository/process/lookup/__snapshots__/index.spec.js.snap index 2b079c4146..e8bd7a702f 100644 --- a/test/workers/repository/process/lookup/__snapshots__/index.spec.js.snap +++ b/test/workers/repository/process/lookup/__snapshots__/index.spec.js.snap @@ -819,6 +819,7 @@ Array [ Object { "canBeUnpublished": false, "fromVersion": "1.0.0", + "isBump": true, "isRange": true, "isSingleVersion": false, "newMajor": 1, @@ -826,7 +827,7 @@ Array [ "newValue": "^1.4.1", "releaseTimestamp": "2015-05-17T04:25:07.299Z", "toVersion": "1.4.1", - "updateType": "bump", + "updateType": "minor", }, ] `; @@ -836,6 +837,7 @@ Array [ Object { "canBeUnpublished": false, "fromVersion": "1.0.0", + "isBump": true, "isRange": true, "isSingleVersion": false, "newMajor": 1, @@ -843,7 +845,7 @@ Array [ "newValue": ">=1.4.1", "releaseTimestamp": "2015-05-17T04:25:07.299Z", "toVersion": "1.4.1", - "updateType": "bump", + "updateType": "minor", }, ] `; @@ -853,6 +855,7 @@ Array [ Object { "canBeUnpublished": false, "fromVersion": "1.0.0", + "isBump": true, "isRange": true, "isSingleVersion": false, "newMajor": 1, @@ -860,7 +863,7 @@ Array [ "newValue": "~1.0.1", "releaseTimestamp": "2014-03-11T18:47:17.560Z", "toVersion": "1.0.1", - "updateType": "bump", + "updateType": "patch", }, Object { "canBeUnpublished": false, @@ -877,6 +880,24 @@ Array [ ] `; +exports[`manager/npm/lookup .lookupUpdates() supports majorgte updates 1`] = ` +Array [ + Object { + "canBeUnpublished": false, + "fromVersion": "0.9.0", + "isBump": true, + "isRange": true, + "isSingleVersion": false, + "newMajor": 1, + "newMinor": 4, + "newValue": ">=1.4.1", + "releaseTimestamp": "2015-05-17T04:25:07.299Z", + "toVersion": "1.4.1", + "updateType": "major", + }, +] +`; + exports[`manager/npm/lookup .lookupUpdates() supports minor and major upgrades for ranged versions 1`] = ` Array [ Object { diff --git a/test/workers/repository/process/lookup/index.spec.js b/test/workers/repository/process/lookup/index.spec.js index 98f1822ed1..7be07b707d 100644 --- a/test/workers/repository/process/lookup/index.spec.js +++ b/test/workers/repository/process/lookup/index.spec.js @@ -756,6 +756,16 @@ describe('manager/npm/lookup', () => { .reply(200, qJson); expect((await lookup.lookupUpdates(config)).updates).toMatchSnapshot(); }); + it('supports majorgte updates', async () => { + config.rangeStrategy = 'bump'; + config.currentValue = '>=0.9.0'; + config.depName = 'q'; + config.purl = 'pkg:npm/q'; + nock('https://registry.npmjs.org') + .get('/q') + .reply(200, qJson); + expect((await lookup.lookupUpdates(config)).updates).toMatchSnapshot(); + }); it('rejects in-range unsupported operator', async () => { config.rangeStrategy = 'bump'; config.currentValue = '>1.0.0'; -- GitLab