Skip to content

Commit 9e3f2d4

Browse files
committed
Fix latest label updates
1 parent 4197392 commit 9e3f2d4

File tree

2 files changed

+34
-28
lines changed

2 files changed

+34
-28
lines changed

tests/tck-build-logic/src/main/java/org/graalvm/internal/tck/ContributionTask.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ private void loadQuestions() throws IOException {
6161
@TaskAction
6262
void run() throws IOException {
6363
InteractiveTaskUtils.printUserInfo("Hello! This task will help you contributing to metadata repository." +
64-
" Please answer the following contributingQuestions. In case you don't know the answer on the question, type \"help\" for more information");
64+
" Please answer the following questions. In case you don't know the answer on the question, type \"help\" for more information");
6565

6666
loadQuestions();
6767

tests/tck-build-logic/src/main/java/org/graalvm/internal/tck/ScaffoldTask.java

Lines changed: 33 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212
import org.gradle.api.tasks.Input;
1313
import org.gradle.api.tasks.TaskAction;
1414
import org.gradle.api.tasks.options.Option;
15+
import org.gradle.util.internal.VersionNumber;
1516

1617
import java.io.File;
1718
import java.io.IOException;
@@ -82,8 +83,6 @@ void run() throws IOException {
8283
writeCoordinatesMetadataVersionJsons(coordinatesMetadataVersionRoot, coordinates);
8384
addToMetadataIndexJson(coordinates);
8485

85-
86-
8786
// Tests
8887
writeTestScaffold(coordinatesTestRoot, coordinates);
8988
addToTestIndexJson(coordinates);
@@ -246,40 +245,47 @@ private void writeCoordinatesMetadataRootJson(Path metadataRoot, Coordinates coo
246245
private void updateCoordinatesMetadataRootJson(Path metadataRoot, Coordinates coordinates) throws IOException {
247246
File metadataIndex = metadataRoot.resolve("index.json").toFile();
248247
List<MetadataVersionsIndexEntry> entries = objectMapper.readValue(metadataIndex, new TypeReference<>() {});
249-
int deleteIndex = -1;
250-
for (int i = 0; i < entries.size(); i++) {
251-
MetadataVersionsIndexEntry nextEntry = entries.get(i);
252-
if (nextEntry.latest() == null || nextEntry.latest()) {
253-
deleteIndex = i;
254-
}
255-
}
256248

257-
// replace entry that was previously marked with latest: true
258-
if (deleteIndex != -1) {
259-
MetadataVersionsIndexEntry deletedEntry = entries.remove(deleteIndex);
260-
MetadataVersionsIndexEntry replaceEntry = new MetadataVersionsIndexEntry(null,
261-
deletedEntry.override(),
262-
deletedEntry.module(),
263-
deletedEntry.defaultFor(),
264-
deletedEntry.metadataVersion(),
265-
deletedEntry.testedVersions());
266-
entries.add(replaceEntry);
267-
}
268-
269-
// create new latest entry
270-
MetadataVersionsIndexEntry newEntry = new MetadataVersionsIndexEntry(true,
249+
// add new entry
250+
MetadataVersionsIndexEntry newEntry = new MetadataVersionsIndexEntry(null,
271251
null,
272252
coordinates.group() + ":" + coordinates.artifact(),
273253
null,
274254
coordinates.version(),
275255
List.of(coordinates.version()));
276256

277257
entries.add(newEntry);
278-
List<MetadataVersionsIndexEntry> sortedEntries = entries.stream()
279-
.sorted(Comparator.comparing(MetadataVersionsIndexEntry::module))
280-
.toList();
281258

282-
objectMapper.writeValue(metadataIndex, sortedEntries);
259+
// determine updates
260+
int previousLatest = -1;
261+
int newLatest = -1;
262+
VersionNumber latestVersion = VersionNumber.parse(entries.get(0).metadataVersion());
263+
for (int i = 0; i < entries.size(); i++) {
264+
if (entries.get(i).latest() != null && entries.get(i).latest()) {
265+
previousLatest = i;
266+
}
267+
268+
VersionNumber nextVersion = VersionNumber.parse(entries.get(i).metadataVersion());
269+
if (latestVersion.compareTo(nextVersion) < 0){
270+
newLatest = i;
271+
}
272+
}
273+
274+
if (previousLatest != -1) {
275+
setLatest(entries, previousLatest, null);
276+
}
277+
278+
if (newLatest != -1) {
279+
setLatest(entries, newLatest, true);
280+
}
281+
282+
entries.sort(Comparator.comparing(MetadataVersionsIndexEntry::module));
283+
objectMapper.writeValue(metadataIndex, entries);
284+
}
285+
286+
private void setLatest( List<MetadataVersionsIndexEntry> list, int index, Boolean newValue) {
287+
MetadataVersionsIndexEntry oldEntry = list.remove(index);
288+
list.add(new MetadataVersionsIndexEntry(newValue, oldEntry.override(), oldEntry.module(), oldEntry.defaultFor(), oldEntry.metadataVersion(), oldEntry.testedVersions()));
283289
}
284290

285291
private String getEmptyJsonArray() {

0 commit comments

Comments
 (0)