From e6fdecdf43d2b5832b45066efa34f6af98e42438 Mon Sep 17 00:00:00 2001 From: Rhys Arkins <rhys@arkins.net> Date: Mon, 2 Oct 2023 15:36:04 +0200 Subject: [PATCH] fix(versionCompatibility): fix compatibility suffix (#24954) --- .../repository/process/lookup/generate.ts | 2 +- .../repository/process/lookup/index.spec.ts | 21 +++++++++++++++++++ .../repository/process/lookup/index.ts | 1 + 3 files changed, 23 insertions(+), 1 deletion(-) diff --git a/lib/workers/repository/process/lookup/generate.ts b/lib/workers/repository/process/lookup/generate.ts index 21f6a3170c..81c46edb3e 100644 --- a/lib/workers/repository/process/lookup/generate.ts +++ b/lib/workers/repository/process/lookup/generate.ts @@ -10,6 +10,7 @@ import { getUpdateType } from './update-type'; export async function generateUpdate( config: LookupUpdateConfig, + currentValue: string | undefined, versioning: VersioningApi, rangeStrategy: RangeStrategy, currentVersion: string, @@ -49,7 +50,6 @@ export async function generateUpdate( update.registryUrl = release.registryUrl; } - const { currentValue } = config; if (currentValue) { try { update.newValue = versioning.getNewValue({ diff --git a/lib/workers/repository/process/lookup/index.spec.ts b/lib/workers/repository/process/lookup/index.spec.ts index 3b0ea3fa6b..b36a452e43 100644 --- a/lib/workers/repository/process/lookup/index.spec.ts +++ b/lib/workers/repository/process/lookup/index.spec.ts @@ -11,6 +11,7 @@ import { GithubTagsDatasource } from '../../../../modules/datasource/github-tags import { NpmDatasource } from '../../../../modules/datasource/npm'; import { PackagistDatasource } from '../../../../modules/datasource/packagist'; import { PypiDatasource } from '../../../../modules/datasource/pypi'; +import { id as debianVersioningId } from '../../../../modules/versioning/debian'; import { id as dockerVersioningId } from '../../../../modules/versioning/docker'; import { id as gitVersioningId } from '../../../../modules/versioning/git'; import { id as nodeVersioningId } from '../../../../modules/versioning/node'; @@ -1782,6 +1783,26 @@ describe('workers/repository/process/lookup/index', () => { }); }); + it('applies versionCompatibility for debian codenames with suffix', async () => { + config.currentValue = 'bullseye-slim'; + config.packageName = 'debian'; + config.versioning = debianVersioningId; + config.versionCompatibility = '^(?<version>[^-]+)(?<compatibility>-.*)?$'; + config.datasource = DockerDatasource.id; + getDockerReleases.mockResolvedValueOnce({ + releases: [ + { version: 'bullseye' }, + { version: 'bullseye-slim' }, + { version: 'bookworm' }, + { version: 'bookworm-slim' }, + ], + }); + const res = await lookup.lookupUpdates(config); + expect(res).toMatchObject({ + updates: [{ newValue: 'bookworm-slim', updateType: 'major' }], + }); + }); + it('handles digest pin for up to date version', async () => { config.currentValue = '8.1.0'; config.packageName = 'node'; diff --git a/lib/workers/repository/process/lookup/index.ts b/lib/workers/repository/process/lookup/index.ts index c8a5ed8be9..9fd1f96a44 100644 --- a/lib/workers/repository/process/lookup/index.ts +++ b/lib/workers/repository/process/lookup/index.ts @@ -346,6 +346,7 @@ export async function lookupUpdates( const newVersion = release.version; const update = await generateUpdate( config, + compareValue, versioning, // TODO #22198 -- GitLab