Skip to content

Commit 21e91c8

Browse files
authored
Add replacement rules to make MC versions correctly comparable for Renovate (#313)
[skip ci]
1 parent 1e923c9 commit 21e91c8

File tree

3 files changed

+13
-9
lines changed

3 files changed

+13
-9
lines changed

.github/renovate.json

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
"minecraft-versions": {
1212
"defaultRegistryUrlTemplate": "https://piston-meta.mojang.com/mc/game/version_manifest_v2.json",
1313
"transformTemplates": [
14-
"{\"releases\": versions.{ \"version\": id, \"releaseTimestamp\": releaseTime }}"
14+
"{\"releases\": versions.{ \"version\": $replace($replace(id, \"-snapshot-\", \"-alpha-\"), \"-pre-\", \"-beta-\"), \"releaseTimestamp\": releaseTime }}"
1515
]
1616
}
1717
},
@@ -23,7 +23,7 @@
2323
"/MinecraftVersionList\\.java$/"
2424
],
2525
"matchStrings": [
26-
"public static final List<String> VERSIONS = List\\.of\\(\"(?<currentValue>[\\w\\.]+)\""
26+
"// renovate-mc-version: (?<currentValue>[\\w\\.-]+)"
2727
],
2828
"depNameTemplate": "minecraft-version-list",
2929
"datasourceTemplate": "custom.minecraft-versions"
@@ -55,6 +55,7 @@
5555
"matchDatasources": [
5656
"custom.minecraft-versions"
5757
],
58+
"versioning": "maven",
5859
"dependencyDashboardApproval": false,
5960
"addLabels": [
6061
"generated-files"

build.gradle

Lines changed: 8 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,7 @@ abstract class GenerateVersionOrder extends DefaultTask {
264264
Comparator<String> BY_LENGTH_REVERSED = Comparator.comparingInt { it.length() }.reversed()
265265
var indicesByLength = versions.stream().sorted(BY_LENGTH_REVERSED).map(versions::indexOf).map(String::valueOf).toList()
266266

267+
// The special renovate-mc-version line contains the latest minecraft version with -snapshot turning into -alpha and -pre into -beta to satisfy snapshot<pre<rc (even though s>p>r). Renovate is configured to do the same replacement.
267268
final clazz = """
268269
package net.neoforged.moddevgradle.internal.generated;
269270
@@ -273,6 +274,7 @@ public final class MinecraftVersionList {
273274
private MinecraftVersionList() {
274275
}
275276
277+
// renovate-mc-version: ${versions[0].replace('-snapshot-', '-alpha-').replace('-pre-', '-beta-')}
276278
/**
277279
* Released Minecraft Versions as of ${java.time.Instant.now()} from latest to oldest.
278280
*/
@@ -286,13 +288,13 @@ public final class MinecraftVersionList {
286288
* Prefix matches must terminate with one of the given separator characters to be found valid.
287289
*/
288290
public static int indexOfByPrefix(String version, String separators) {
289-
for (var versionIdx : BY_LENGTH) {
290-
var versionText = VERSIONS.get(versionIdx);
291-
if (version.startsWith(versionText) && (versionText.length() == version.length() || separators.indexOf(version.charAt(versionText.length())) != -1)) {
292-
return versionIdx;
291+
for (var versionIdx : BY_LENGTH) {
292+
var versionText = VERSIONS.get(versionIdx);
293+
if (version.startsWith(versionText) && (versionText.length() == version.length() || separators.indexOf(version.charAt(versionText.length())) != -1)) {
294+
return versionIdx;
295+
}
293296
}
294-
}
295-
return -1;
297+
return -1;
296298
}
297299
}
298300
"""

src/generated/java/net/neoforged/moddevgradle/internal/generated/MinecraftVersionList.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,9 @@
66
public final class MinecraftVersionList {
77
private MinecraftVersionList() {}
88

9+
// renovate-mc-version: 1.21.11
910
/**
10-
* Released Minecraft Versions as of 2025-12-09T16:10:51.424270312Z from latest to oldest.
11+
* Released Minecraft Versions as of 2025-12-16T22:59:41.029838819Z from latest to oldest.
1112
*/
1213
public static final List<String> VERSIONS = List.of("1.21.11", "1.21.11-rc3", "1.21.11-rc2", "1.21.11-rc1", "1.21.11-pre5", "1.21.11-pre4", "1.21.11-pre3", "1.21.11-pre2", "1.21.11-pre1", "25w46a", "25w45a", "25w44a", "25w43a", "25w42a", "25w41a", "1.21.10", "1.21.10-rc1", "1.21.9", "1.21.9-rc1", "1.21.9-pre4", "1.21.9-pre3", "1.21.9-pre2", "1.21.9-pre1", "25w37a", "25w36b", "25w36a", "25w35a", "25w34b", "25w34a", "25w33a", "25w32a", "25w31a", "1.21.8", "1.21.8-rc1", "1.21.7", "1.21.7-rc2", "1.21.7-rc1", "1.21.6", "1.21.6-rc1", "1.21.6-pre4", "1.21.6-pre3", "1.21.6-pre2", "1.21.6-pre1", "25w21a", "25w20a", "25w19a", "25w18a", "25w17a", "25w16a", "25w15a", "25w14craftmine", "1.21.5", "1.21.5-rc2", "1.21.5-rc1", "1.21.5-pre3", "1.21.5-pre2", "1.21.5-pre1", "25w10a", "25w09b", "25w09a", "25w08a", "25w07a", "25w06a", "25w05a", "25w04a", "25w03a", "25w02a", "1.21.4", "1.21.4-rc3", "1.21.4-rc2", "1.21.4-rc1", "1.21.4-pre3", "1.21.4-pre2", "1.21.4-pre1", "24w46a", "24w45a", "24w44a",
1314
"1.21.3", "1.21.2", "1.21.2-rc2", "1.21.2-rc1", "1.21.2-pre5", "1.21.2-pre4", "1.21.2-pre3", "1.21.2-pre2", "1.21.2-pre1", "24w40a", "24w39a", "24w38a", "24w37a", "24w36a", "24w35a", "24w34a", "24w33a", "1.21.1", "1.21.1-rc1", "1.21", "1.21-rc1", "1.21-pre4", "1.21-pre3", "1.21-pre2", "1.21-pre1", "24w21b", "24w21a", "24w20a", "24w19b", "24w19a", "24w18a", "1.20.6", "1.20.6-rc1", "1.20.5", "1.20.5-rc3", "1.20.5-rc2", "1.20.5-rc1", "1.20.5-pre4", "1.20.5-pre3", "1.20.5-pre2", "1.20.5-pre1", "24w14a", "24w14potato", "24w13a", "24w12a", "24w11a", "24w10a", "24w09a", "24w07a", "24w06a", "24w05b", "24w05a", "24w04a", "24w03b", "24w03a", "23w51b", "23w51a", "1.20.4", "1.20.4-rc1", "1.20.3", "1.20.3-rc1", "1.20.3-pre4", "1.20.3-pre3", "1.20.3-pre2", "1.20.3-pre1", "23w46a", "23w45a", "23w44a", "23w43b", "23w43a", "23w42a", "23w41a", "23w40a", "1.20.2", "1.20.2-rc2", "1.20.2-rc1", "1.20.2-pre4", "1.20.2-pre3", "1.20.2-pre2", "1.20.2-pre1", "23w35a", "23w33a", "23w32a", "23w31a",

0 commit comments

Comments
 (0)