From f55fcf117bd5b9fc8496a044d863c044e111ba9e Mon Sep 17 00:00:00 2001 From: jvukicev Date: Tue, 9 Dec 2025 10:53:28 +0100 Subject: [PATCH] Filter out already tested versions when fetching newer versions of libraries --- .../mssql-jdbc/index.json | 4 -- metadata/io.netty/netty-transport/index.json | 9 +--- ...stingLibrariesWithNewerVersionsTask.groovy | 43 +++++++++++++------ 3 files changed, 32 insertions(+), 24 deletions(-) diff --git a/metadata/com.microsoft.sqlserver/mssql-jdbc/index.json b/metadata/com.microsoft.sqlserver/mssql-jdbc/index.json index 67d692554..148546413 100644 --- a/metadata/com.microsoft.sqlserver/mssql-jdbc/index.json +++ b/metadata/com.microsoft.sqlserver/mssql-jdbc/index.json @@ -37,7 +37,6 @@ "12.8.0.jre11", "12.8.0.jre8", "12.8.1.jre11", - "12.8.1.jre11", "12.8.1.jre8", "12.10.1.jre11", "12.10.1.jre8", @@ -46,13 +45,10 @@ "13.1.1.jre11-preview", "13.1.1.jre8-preview", "13.2.0.jre11", - "13.2.0.jre11", "13.2.0.jre8", "13.2.1.jre11", - "13.2.1.jre11", "13.2.1.jre8", "13.3.0.jre11-preview", - "13.3.0.jre11-preview", "13.3.0.jre8-preview" ] } diff --git a/metadata/io.netty/netty-transport/index.json b/metadata/io.netty/netty-transport/index.json index 9469ca94f..14216d690 100644 --- a/metadata/io.netty/netty-transport/index.json +++ b/metadata/io.netty/netty-transport/index.json @@ -6,14 +6,7 @@ "metadata-version" : "4.1.115.Final", "tested-versions" : [ "4.1.115.Final", - "4.1.116.Final", - "4.2.0.Alpha1", - "4.2.0.Alpha2", - "4.2.0.Alpha3", - "4.2.0.RC1", - "4.2.0.RC4", - "4.2.1.Final", - "4.2.2.Final" + "4.1.116.Final" ] }, { diff --git a/tests/tck-build-logic/src/main/groovy/org/graalvm/internal/tck/harness/tasks/FetchExistingLibrariesWithNewerVersionsTask.groovy b/tests/tck-build-logic/src/main/groovy/org/graalvm/internal/tck/harness/tasks/FetchExistingLibrariesWithNewerVersionsTask.groovy index 95410ede3..89adeabbd 100644 --- a/tests/tck-build-logic/src/main/groovy/org/graalvm/internal/tck/harness/tasks/FetchExistingLibrariesWithNewerVersionsTask.groovy +++ b/tests/tck-build-logic/src/main/groovy/org/graalvm/internal/tck/harness/tasks/FetchExistingLibrariesWithNewerVersionsTask.groovy @@ -97,6 +97,10 @@ abstract class FetchExistingLibrariesWithNewerVersionsTask extends DefaultTask { List newerVersions = getNewerVersionsFromLibraryIndex(data, startingVersion, library) + // filter out already tested versions + List testedVersions = getTestedVersions(library); + newerVersions.removeAll(testedVersions); + // filter pre-release versions if full release exists return filterPreReleases(newerVersions) } @@ -147,30 +151,45 @@ abstract class FetchExistingLibrariesWithNewerVersionsTask extends DefaultTask { } static String getLatestLibraryVersion(String libraryModule) { + try { + List testedVersions = getTestedVersions(libraryModule); + if (testedVersions.isEmpty()) { + throw new IllegalStateException("Cannot find any tested version for: " + libraryModule); + } + + testedVersions.sort(Comparator.comparing(VersionNumber::parse)); + return testedVersions.get(testedVersions.size() - 1); + } catch (IOException e) { + throw new RuntimeException(e); + } + } + + /** + * Reads the tested versions of a given library from its metadata index file. + */ + static List getTestedVersions(String libraryModule) { try { String[] coordinates = libraryModule.split(":"); String group = coordinates[0]; String artifact = coordinates[1]; - File coordinatesMetadataIndex = new File("metadata/" + group + "/" + artifact +"/index.json"); + File indexFile = new File("metadata/" + group + "/" + artifact + "/index.json"); + if (!indexFile.exists()) { + return Collections.emptyList(); + } + ObjectMapper objectMapper = new ObjectMapper() .enable(SerializationFeature.INDENT_OUTPUT) .setSerializationInclusion(JsonInclude.Include.NON_NULL); - List entries = objectMapper.readValue(coordinatesMetadataIndex, new TypeReference>() { - }); + List entries = objectMapper.readValue(indexFile, + new TypeReference>() {}); - List allTested = new ArrayList<>(); + List testedVersions = new ArrayList<>(); for (MetadataVersionsIndexEntry entry : entries) { - allTested.addAll(entry.testedVersions()); + testedVersions.addAll(entry.testedVersions()); } - - if (allTested.isEmpty()) { - throw new IllegalStateException("Cannot find any tested version for: " + libraryModule); - } - - allTested.sort(Comparator.comparing(VersionNumber::parse)); - return allTested.get(allTested.size() - 1); + return testedVersions; } catch (IOException e) { throw new RuntimeException(e); }