diff --git a/lib/workers/repository/process/lookup/bucket.ts b/lib/workers/repository/process/lookup/bucket.ts index 3c50a95f67ec43dd7854dc7ec1a9afd9023095b7..ba12098d001249833a924788e4a704b9dffd8a3b 100644 --- a/lib/workers/repository/process/lookup/bucket.ts +++ b/lib/workers/repository/process/lookup/bucket.ts @@ -19,23 +19,60 @@ export function getBucket( } const fromMajor = versioning.getMajor(currentVersion); const toMajor = versioning.getMajor(newVersion); - // istanbul ignore if + + // istanbul ignore if: error case if (toMajor === null) { return null; } + + // Check for major update type first if (fromMajor !== toMajor) { if (separateMultipleMajor) { - return `major-${toMajor}`; + return `v${toMajor}`; } + // default path for major updates is not to separate them return 'major'; } - if (separateMinorPatch) { - if ( - versioning.getMinor(currentVersion) === versioning.getMinor(newVersion) - ) { - return 'patch'; + + // If we reach here then we know it's non-major + + const fromMinor = versioning.getMinor(currentVersion); + const toMinor = versioning.getMinor(newVersion); + + // istanbul ignore if: error case + if (fromMinor === null || toMinor === null) { + return 'non-major'; + } + + // Check the minor update type first + if (fromMinor !== toMinor) { + /* future option + if (separateMultipleMinor) { + return `v${toMajor}.${toMinor}`; } - return 'minor'; + */ + + if (separateMinorPatch) { + return 'minor'; + } + // default path for minor updates is not to separate them from patch + return 'non-major'; + } + + // If we reach here then we know it's a patch release + + /* future option + if (separateMultiplePatch) { + const toPatch = versioning.getPatch(newVersion); + if (toPatch !== null && separateMultiplePatch) { + return `v${toMajor}.${toMinor}.${toPatch}`; + } + } + */ + + if (separateMinorPatch) { + return 'patch'; } + // default path for patch updates is not to separate them from minor return 'non-major'; }