From f5ceba085b3ef1ad604265c6dd9ec50b5665d07c Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Fri, 12 Feb 2021 23:27:48 +0100 Subject: [PATCH] refactor: add bucket to update --- lib/manager/common.ts | 1 + .../lookup/__snapshots__/index.spec.ts.snap | 98 +++++++++++++++++++ .../repository/process/lookup/index.ts | 23 +++-- 3 files changed, 116 insertions(+), 6 deletions(-) diff --git a/lib/manager/common.ts b/lib/manager/common.ts index 578b7eceb2..eee1db6479 100644 --- a/lib/manager/common.ts +++ b/lib/manager/common.ts @@ -129,6 +129,7 @@ export interface Package<T> extends ManagerData<T> { } export interface LookupUpdate { + bucket?: string; blockedByPin?: boolean; branchName?: string; commitMessageAction?: string; diff --git a/lib/workers/repository/process/lookup/__snapshots__/index.spec.ts.snap b/lib/workers/repository/process/lookup/__snapshots__/index.spec.ts.snap index 4e39cee3d1..fd70b9e161 100644 --- a/lib/workers/repository/process/lookup/__snapshots__/index.spec.ts.snap +++ b/lib/workers/repository/process/lookup/__snapshots__/index.spec.ts.snap @@ -10,6 +10,7 @@ Array [ }, Object { "blockedByPin": true, + "bucket": "latest", "fromVersion": "0.4.4", "isSingleVersion": true, "newMajor": 1, @@ -65,6 +66,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() disables major release separation (minor) 1`] = ` Array [ Object { + "bucket": "latest", "fromVersion": "1.0.0", "isSingleVersion": true, "newMajor": 1, @@ -97,6 +99,7 @@ Array [ }, Object { "blockedByPin": true, + "bucket": "non-major", "fromVersion": "0.9.4", "isRange": true, "isSingleVersion": true, @@ -113,6 +116,7 @@ Array [ }, Object { "blockedByPin": true, + "bucket": "major", "fromVersion": "0.9.4", "isRange": true, "isSingleVersion": true, @@ -147,6 +151,7 @@ Object { "updates": Array [ Object { "blockedByPin": true, + "bucket": "non-major", "fromVersion": "8.0.0", "isSingleVersion": true, "newDigest": "sha256:abcdef1234567890", @@ -210,6 +215,7 @@ Object { "sourceUrl": "https://github.com/nodejs/node", "updates": Array [ Object { + "bucket": "non-major", "fromVersion": "8.0.0", "isSingleVersion": true, "newDigest": "sha256:abcdef1234567890", @@ -275,6 +281,7 @@ Object { "sourceUrl": "https://github.com/kriskowal/q", "updates": Array [ Object { + "bucket": "major", "fromVersion": "0.9.99", "isSingleVersion": true, "newMajor": 1, @@ -314,6 +321,7 @@ Marking the latest version of an npm package as deprecated results in the entire "sourceUrl": "https://github.com/kriskowal/q", "updates": Array [ Object { + "bucket": "non-major", "fromVersion": "1.3.0", "isSingleVersion": true, "newMajor": 1, @@ -338,6 +346,7 @@ Array [ }, Object { "blockedByPin": true, + "bucket": "major", "fromVersion": "0.9.7", "isSingleVersion": true, "newMajor": 1, @@ -371,6 +380,7 @@ Object { "sourceUrl": "https://github.com/kriskowal/q", "updates": Array [ Object { + "bucket": "non-major", "fromVersion": "1.3.0", "isSingleVersion": true, "newMajor": 1, @@ -410,6 +420,7 @@ exports[`workers/repository/process/lookup .lookupUpdates() rejects reverse orde exports[`workers/repository/process/lookup .lookupUpdates() replaces major complex ranged versions if configured 1`] = ` Array [ Object { + "bucket": "major", "fromVersion": "2.7.0", "isRange": true, "isSingleVersion": false, @@ -445,6 +456,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() replaces minor complex ranged versions if configured 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "1.3.0", "isRange": true, "isSingleVersion": false, @@ -464,6 +476,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() replaces non-range in-range updates 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "1.0.0", "isSingleVersion": true, "newMajor": 1, @@ -489,6 +502,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() returns additional update if grouping but separateMinorPatch=true 1`] = ` Array [ Object { + "bucket": "patch", "fromVersion": "0.4.0", "isSingleVersion": true, "newMajor": 0, @@ -503,6 +517,7 @@ Array [ "updateType": "patch", }, Object { + "bucket": "minor", "fromVersion": "0.4.0", "isSingleVersion": true, "newMajor": 0, @@ -543,6 +558,7 @@ Array [ "updateType": "minor", }, Object { + "bucket": "major", "fromVersion": "0.4.0", "isSingleVersion": true, "newMajor": 1, @@ -576,6 +592,7 @@ Array [ }, Object { "blockedByPin": true, + "bucket": "non-major", "fromVersion": "0.4.4", "isSingleVersion": true, "newMajor": 0, @@ -617,6 +634,7 @@ Array [ }, Object { "blockedByPin": true, + "bucket": "major", "fromVersion": "0.4.4", "isSingleVersion": true, "newMajor": 1, @@ -649,6 +667,7 @@ Object { "sourceUrl": "https://github.com/kriskowal/q", "updates": Array [ Object { + "bucket": "non-major", "fromVersion": "1.3.0", "isSingleVersion": true, "newMajor": 1, @@ -669,6 +688,7 @@ Object { exports[`workers/repository/process/lookup .lookupUpdates() returns minor update if automerging both patch and minor 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "0.9.0", "isSingleVersion": true, "newMajor": 0, @@ -687,6 +707,7 @@ Array [ "updateType": "minor", }, Object { + "bucket": "major", "fromVersion": "0.9.0", "isSingleVersion": true, "newMajor": 1, @@ -713,6 +734,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() returns minor update if separate patches not configured 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "0.9.0", "isSingleVersion": true, "newMajor": 0, @@ -731,6 +753,7 @@ Array [ "updateType": "minor", }, Object { + "bucket": "major", "fromVersion": "0.9.0", "isSingleVersion": true, "newMajor": 1, @@ -757,6 +780,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() returns multiple updates if grouping but separateMajorMinor=true 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "0.4.0", "isSingleVersion": true, "newMajor": 0, @@ -800,6 +824,7 @@ Array [ "updateType": "minor", }, Object { + "bucket": "major", "fromVersion": "0.4.0", "isSingleVersion": true, "newMajor": 1, @@ -826,6 +851,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() returns one update if grouping and separateMajorMinor=false 1`] = ` Array [ Object { + "bucket": "latest", "fromVersion": "0.4.0", "isSingleVersion": true, "newMajor": 1, @@ -884,6 +910,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() returns patch minor and major 1`] = ` Array [ Object { + "bucket": "patch", "fromVersion": "0.8.0", "isSingleVersion": true, "newMajor": 0, @@ -907,6 +934,7 @@ Array [ "updateType": "patch", }, Object { + "bucket": "minor", "fromVersion": "0.8.0", "isSingleVersion": true, "newMajor": 0, @@ -926,6 +954,7 @@ Array [ "updateType": "minor", }, Object { + "bucket": "major", "fromVersion": "0.8.0", "isSingleVersion": true, "newMajor": 1, @@ -952,6 +981,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() returns patch update if automerging patch 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "0.9.0", "isSingleVersion": true, "newMajor": 0, @@ -970,6 +1000,7 @@ Array [ "updateType": "patch", }, Object { + "bucket": "major", "fromVersion": "0.9.0", "isSingleVersion": true, "newMajor": 1, @@ -996,6 +1027,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() returns patch update if separateMinorPatch 1`] = ` Array [ Object { + "bucket": "patch", "fromVersion": "0.9.0", "isSingleVersion": true, "newMajor": 0, @@ -1014,6 +1046,7 @@ Array [ "updateType": "patch", }, Object { + "bucket": "major", "fromVersion": "0.9.0", "isSingleVersion": true, "newMajor": 1, @@ -1049,6 +1082,7 @@ Array [ "updateType": "rollback", }, Object { + "bucket": "major", "fromVersion": "0.9.99", "isSingleVersion": true, "newMajor": 1, @@ -1089,6 +1123,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() should allow unstable versions if the current version is unstable 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "3.1.0-dev.20180731", "isSingleVersion": true, "newMajor": 3, @@ -1114,6 +1149,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() should allow unstable versions if the ignoreUnstable=false 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "2.5.16", "isSingleVersion": true, "newMajor": 2, @@ -1141,6 +1177,7 @@ Object { exports[`workers/repository/process/lookup .lookupUpdates() should follow dist-tag even if newer version exists 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "3.0.1-insiders.20180713", "isSingleVersion": true, "newMajor": 3, @@ -1156,6 +1193,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() should ignore unstable versions from datasource 1`] = ` Array [ Object { + "bucket": "major", "fromVersion": "1.4.4", "isSingleVersion": true, "newMajor": 2, @@ -1170,6 +1208,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() should jump unstable versions if followTag 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "3.0.0-insiders.20180706", "isSingleVersion": true, "newMajor": 3, @@ -1185,6 +1224,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() should not jump unstable versions 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "3.0.1-insiders.20180726", "isSingleVersion": true, "newMajor": 3, @@ -1214,6 +1254,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() should treat zero zero caret ranges as pinned 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "0.0.34", "isRange": true, "isSingleVersion": false, @@ -1238,6 +1279,7 @@ Object { "sourceUrl": "https://github.com/nodejs/node", "updates": Array [ Object { + "bucket": "major", "fromVersion": "8", "isSingleVersion": true, "newMajor": 9, @@ -1261,6 +1303,7 @@ Object { "sourceUrl": "https://github.com/nodejs/node", "updates": Array [ Object { + "bucket": "non-major", "fromVersion": "8.1", "isSingleVersion": true, "newMajor": 8, @@ -1271,6 +1314,7 @@ Object { "updateType": "minor", }, Object { + "bucket": "major", "fromVersion": "8.1", "isSingleVersion": true, "newMajor": 9, @@ -1294,6 +1338,7 @@ Object { "sourceUrl": "https://github.com/nodejs/node", "updates": Array [ Object { + "bucket": "non-major", "fromVersion": "8.1.0", "isSingleVersion": true, "newMajor": 8, @@ -1331,6 +1376,7 @@ Object { exports[`workers/repository/process/lookup .lookupUpdates() supports > latest versions if configured 1`] = ` Array [ Object { + "bucket": "major", "fromVersion": "1.4.1", "isSingleVersion": true, "newMajor": 2, @@ -1351,6 +1397,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() supports complex major hyphen ranges 1`] = ` Array [ Object { + "bucket": "major", "fromVersion": "2.7.0", "isRange": true, "isSingleVersion": false, @@ -1386,6 +1433,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() supports complex major ranges 1`] = ` Array [ Object { + "bucket": "major", "fromVersion": "2.7.0", "isRange": true, "isSingleVersion": false, @@ -1420,6 +1468,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() supports complex ranges 1`] = ` Object { + "bucket": "non-major", "fromVersion": "0.8.12", "isRange": true, "isSingleVersion": false, @@ -1444,6 +1493,7 @@ Object { exports[`workers/repository/process/lookup .lookupUpdates() supports complex tilde ranges 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "1.3.0", "isRange": true, "isSingleVersion": false, @@ -1463,6 +1513,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() supports in-range caret updates 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "1.0.0", "isBump": true, "isRange": true, @@ -1490,6 +1541,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() supports in-range gte updates 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "1.0.0", "isBump": true, "isRange": true, @@ -1517,6 +1569,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() supports in-range tilde patch updates 1`] = ` Array [ Object { + "bucket": "patch", "fromVersion": "1.0.0", "isBump": true, "isRange": true, @@ -1529,6 +1582,7 @@ Array [ "updateType": "patch", }, Object { + "bucket": "minor", "fromVersion": "1.0.0", "isRange": true, "isSingleVersion": false, @@ -1554,6 +1608,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() supports in-range tilde updates 1`] = ` Array [ Object { + "bucket": "patch", "fromVersion": "1.0.0", "isBump": true, "isRange": true, @@ -1566,6 +1621,7 @@ Array [ "updateType": "patch", }, Object { + "bucket": "minor", "fromVersion": "1.0.0", "isRange": true, "isSingleVersion": false, @@ -1591,6 +1647,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() supports lock file updates mixed with regular updates 1`] = ` Array [ Object { + "bucket": "patch", "displayFrom": "0.4.0", "displayTo": "0.4.4", "fromVersion": "0.4.0", @@ -1609,6 +1666,7 @@ Array [ "updateType": "patch", }, Object { + "bucket": "minor", "fromVersion": "0.4.4", "isRange": true, "isSingleVersion": false, @@ -1650,6 +1708,7 @@ Array [ "updateType": "minor", }, Object { + "bucket": "major", "fromVersion": "0.4.4", "isRange": true, "isSingleVersion": false, @@ -1677,6 +1736,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() supports majorgte updates 1`] = ` Array [ Object { + "bucket": "latest", "fromVersion": "0.9.0", "isBump": true, "isRange": true, @@ -1719,6 +1779,7 @@ Array [ }, Object { "blockedByPin": true, + "bucket": "non-major", "fromVersion": "0.4.4", "isSingleVersion": true, "newMajor": 0, @@ -1760,6 +1821,7 @@ Array [ }, Object { "blockedByPin": true, + "bucket": "major", "fromVersion": "0.4.4", "isSingleVersion": true, "newMajor": 1, @@ -1793,6 +1855,7 @@ Array [ }, Object { "blockedByPin": true, + "bucket": "non-major", "fromVersion": "0.4.4", "isSingleVersion": true, "newMajor": 0, @@ -1834,6 +1897,7 @@ Array [ }, Object { "blockedByPin": true, + "bucket": "major", "fromVersion": "0.4.4", "isSingleVersion": true, "newMajor": 1, @@ -1860,6 +1924,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades .x complex minor ranges without pinning 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "1.3.0", "isRange": true, "isSingleVersion": false, @@ -1879,6 +1944,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades .x major ranges without pinning 1`] = ` Array [ Object { + "bucket": "major", "fromVersion": "0.9.7", "isRange": true, "isSingleVersion": false, @@ -1913,6 +1979,7 @@ Array [ }, Object { "blockedByPin": true, + "bucket": "non-major", "fromVersion": "1.3.0", "isSingleVersion": true, "newMajor": 1, @@ -1931,6 +1998,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades .x minor ranges without pinning 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "1.3.0", "isRange": true, "isSingleVersion": false, @@ -1950,6 +2018,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades equal minor ranges 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "1.3.1", "isRange": true, "isSingleVersion": true, @@ -1969,6 +2038,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades less than equal major ranges 1`] = ` Array [ Object { + "bucket": "major", "fromVersion": "1.4.1", "isRange": true, "isSingleVersion": false, @@ -1990,6 +2060,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades less than equal minor ranges 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "1.3.0", "isRange": true, "isSingleVersion": false, @@ -2009,6 +2080,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades less than equal ranges without pinning 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "0.7.2", "isRange": true, "isSingleVersion": false, @@ -2042,6 +2114,7 @@ Array [ "updateType": "minor", }, Object { + "bucket": "major", "fromVersion": "0.7.2", "isRange": true, "isSingleVersion": false, @@ -2069,6 +2142,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades less than major ranges 1`] = ` Array [ Object { + "bucket": "major", "fromVersion": "0.9.7", "isRange": true, "isSingleVersion": false, @@ -2096,6 +2170,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades less than ranges without pinning 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "0.7.1", "isRange": true, "isSingleVersion": false, @@ -2130,6 +2205,7 @@ Array [ "updateType": "minor", }, Object { + "bucket": "major", "fromVersion": "0.7.1", "isRange": true, "isSingleVersion": false, @@ -2157,6 +2233,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades major greater than less than ranges without pinning 1`] = ` Array [ Object { + "bucket": "major", "fromVersion": "0.9.7", "isRange": true, "isSingleVersion": false, @@ -2184,6 +2261,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades major less than equal ranges 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "1.0.0", "isRange": true, "isSingleVersion": false, @@ -2210,6 +2288,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades major less than ranges without pinning 1`] = ` Array [ Object { + "bucket": "major", "fromVersion": "0.9.7", "isRange": true, "isSingleVersion": false, @@ -2237,6 +2316,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades minor greater than less than equals ranges without pinning 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "0.8.0", "isRange": true, "isSingleVersion": false, @@ -2269,6 +2349,7 @@ Array [ "updateType": "minor", }, Object { + "bucket": "major", "fromVersion": "0.8.0", "isRange": true, "isSingleVersion": false, @@ -2296,6 +2377,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades minor greater than less than ranges without pinning 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "0.7.2", "isRange": true, "isSingleVersion": false, @@ -2329,6 +2411,7 @@ Array [ "updateType": "minor", }, Object { + "bucket": "major", "fromVersion": "0.7.2", "isRange": true, "isSingleVersion": false, @@ -2363,6 +2446,7 @@ Array [ }, Object { "blockedByPin": true, + "bucket": "non-major", "fromVersion": "1.0.1", "isSingleVersion": true, "newMajor": 1, @@ -2387,6 +2471,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades multiple caret ranges without pinning 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "0.7.2", "isRange": true, "isSingleVersion": false, @@ -2420,6 +2505,7 @@ Array [ "updateType": "minor", }, Object { + "bucket": "major", "fromVersion": "0.7.2", "isRange": true, "isSingleVersion": false, @@ -2447,6 +2533,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades multiple tilde ranges without pinning 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "0.7.2", "isRange": true, "isSingleVersion": false, @@ -2480,6 +2567,7 @@ Array [ "updateType": "minor", }, Object { + "bucket": "major", "fromVersion": "0.7.2", "isRange": true, "isSingleVersion": false, @@ -2507,6 +2595,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades shorthand major ranges without pinning 1`] = ` Array [ Object { + "bucket": "major", "fromVersion": "0.9.7", "isRange": true, "isSingleVersion": false, @@ -2534,6 +2623,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades shorthand minor ranges without pinning 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "1.3.0", "isRange": true, "isSingleVersion": false, @@ -2560,6 +2650,7 @@ Array [ }, Object { "blockedByPin": true, + "bucket": "non-major", "fromVersion": "1.3.0", "isSingleVersion": true, "newMajor": 1, @@ -2578,6 +2669,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() upgrades tilde ranges without pinning 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "1.3.0", "isRange": true, "isSingleVersion": false, @@ -2597,6 +2689,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() uses minimum version for vulnerabilityAlerts 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "1.0.0", "isSingleVersion": true, "newMajor": 1, @@ -2619,6 +2712,7 @@ Array [ }, Object { "blockedByPin": true, + "bucket": "non-major", "fromVersion": "1.0.0", "isSingleVersion": true, "newMajor": 1, @@ -2644,6 +2738,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() widens .x OR ranges 1`] = ` Array [ Object { + "bucket": "major", "fromVersion": "2.7.0", "isRange": true, "isSingleVersion": false, @@ -2679,6 +2774,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() widens major ranged versions if configured 1`] = ` Array [ Object { + "bucket": "major", "fromVersion": "2.7.0", "isRange": true, "isSingleVersion": false, @@ -2714,6 +2810,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() widens minor ranged versions if configured 1`] = ` Array [ Object { + "bucket": "non-major", "fromVersion": "1.3.0", "isRange": true, "isSingleVersion": false, @@ -2733,6 +2830,7 @@ Array [ exports[`workers/repository/process/lookup .lookupUpdates() widens stanndalone major OR ranges 1`] = ` Array [ Object { + "bucket": "major", "fromVersion": "2.7.0", "isRange": true, "isSingleVersion": false, diff --git a/lib/workers/repository/process/lookup/index.ts b/lib/workers/repository/process/lookup/index.ts index 6be3071085..7524b3f2ac 100644 --- a/lib/workers/repository/process/lookup/index.ts +++ b/lib/workers/repository/process/lookup/index.ts @@ -113,15 +113,25 @@ function getFromVersion( } function getBucket(config: LookupUpdateConfig, update: LookupUpdate): string { - const { separateMajorMinor, separateMultipleMajor } = config; + const { + separateMajorMinor, + separateMultipleMajor, + separateMinorPatch, + } = config; const { updateType, newMajor } = update; - if (separateMultipleMajor && updateType === 'major') { - return `major-${newMajor}`; - } if (!separateMajorMinor) { return 'latest'; } - return updateType; + if (updateType === 'major') { + if (separateMultipleMajor) { + return `major-${newMajor}`; + } + return 'major'; + } + if (separateMinorPatch) { + return updateType; + } + return 'non-major'; } export async function lookupUpdates( @@ -338,11 +348,12 @@ export async function lookupUpdates( buckets[bucket] = [update]; } } - for (const updates of Object.values(buckets)) { + for (const [bucket, updates] of Object.entries(buckets)) { const sortedUpdates = updates.sort((u1, u2) => version.sortVersions(u1.toVersion, u2.toVersion) ); const update = sortedUpdates.pop(); + update.bucket = bucket; const { toVersion } = update; update.isSingleVersion = update.isSingleVersion || !!version.isSingleVersion(update.newValue); -- GitLab