From e3e6de9f1d3a667b60a6c1547c1a7a5dc6b099c8 Mon Sep 17 00:00:00 2001 From: cjtim <47479090+cjtim@users.noreply.github.com> Date: Fri, 5 May 2023 02:19:00 +0700 Subject: [PATCH] fix(managers/gradle): allow dot annotation in version.ref (#21820) Signed-off-by: Jinna C Co-authored-by: Johannes Feichtner <343448+Churro@users.noreply.github.com> --- .../gradle/__fixtures__/1/libs.versions.toml | 2 +- .../gradle/__fixtures__/3/libs.versions.toml | 2 +- lib/modules/manager/gradle/extract/catalog.ts | 13 +++++++++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/lib/modules/manager/gradle/__fixtures__/1/libs.versions.toml b/lib/modules/manager/gradle/__fixtures__/1/libs.versions.toml index fccce61156ba5a..8aac96c8ed1b95 100644 --- a/lib/modules/manager/gradle/__fixtures__/1/libs.versions.toml +++ b/lib/modules/manager/gradle/__fixtures__/1/libs.versions.toml @@ -17,5 +17,5 @@ kotest = [ "kotest-runner-junit5", "kotest-assertions-core-jvm" ] [plugins] detekt = { id = "io.gitlab.arturbosch.detekt", version.ref = "detekt" } -publish-on-central = { id = "org.danilopianini.publish-on-central", version.ref = "publish-on-central" } +publish-on-central = { id = "org.danilopianini.publish-on-central", version.ref = "publish.on.central" } grgit = { id = "org.ajoberstar.grgit", version.unknown = "this will fail" } diff --git a/lib/modules/manager/gradle/__fixtures__/3/libs.versions.toml b/lib/modules/manager/gradle/__fixtures__/3/libs.versions.toml index bddeb5947dfe1d..7188d1a6c6b443 100644 --- a/lib/modules/manager/gradle/__fixtures__/3/libs.versions.toml +++ b/lib/modules/manager/gradle/__fixtures__/3/libs.versions.toml @@ -7,4 +7,4 @@ junit = "1.4.9" [libraries] junit-legacy = { module = "junit:junit", version.ref = "junit" } -mocha-junit = { module = "mocha-junit:mocha-junit", version.ref = "mocha-junit-reporter" } +mocha-junit = { module = "mocha-junit:mocha-junit", version.ref = "mocha.junit.reporter" } diff --git a/lib/modules/manager/gradle/extract/catalog.ts b/lib/modules/manager/gradle/extract/catalog.ts index 49b21ccceea7bc..16483dcb895d30 100644 --- a/lib/modules/manager/gradle/extract/catalog.ts +++ b/lib/modules/manager/gradle/extract/catalog.ts @@ -55,6 +55,10 @@ function isVersionPointer( return hasKey('ref', obj); } +function normalizeVersionPointer(versionPointer: string): string { + return versionPointer.replace(regEx(/[._]/g), '-'); +} + interface VersionExtract { currentValue?: string; fileReplacePosition?: number; @@ -79,12 +83,13 @@ function extractVersion({ versionSubContent: string; }): VersionExtract { if (isVersionPointer(version)) { + const parsedVersion = normalizeVersionPointer(version.ref); // everything else is ignored return extractLiteralVersion({ - version: versions[version.ref], + version: versions[parsedVersion], depStartIndex: versionStartIndex, depSubContent: versionSubContent, - sectionKey: version.ref, + sectionKey: parsedVersion, }); } else { return extractLiteralVersion({ @@ -205,7 +210,7 @@ function extractDependency({ }; } const versionRef = isVersionPointer(descriptor.version) - ? descriptor.version.ref + ? normalizeVersionPointer(descriptor.version.ref) : null; if (isArtifactDescriptor(descriptor)) { const { group, name } = descriptor; @@ -284,7 +289,7 @@ export function parseCatalog( dependency.skipReason = skipReason; } if (isVersionPointer(version) && dependency.commitMessageTopic) { - dependency.groupName = version.ref; + dependency.groupName = normalizeVersionPointer(version.ref); delete dependency.commitMessageTopic; }