From 0bd52e52320379b9eb703e5175b9ceb99f4602cb Mon Sep 17 00:00:00 2001 From: Big-Iron-Cheems <52252627+Big-Iron-Cheems@users.noreply.github.com> Date: Mon, 17 Nov 2025 15:58:19 +0100 Subject: [PATCH 1/2] Refactor build configuration to use version catalog and update dependencies --- build.gradle.kts | 16 ++++++------- gradle.properties | 7 ------ gradle/libs.versions.toml | 29 ++++++++++++++++++++++++ gradle/wrapper/gradle-wrapper.properties | 2 +- settings.gradle | 10 -------- settings.gradle.kts | 12 ++++++++++ 6 files changed, 50 insertions(+), 26 deletions(-) create mode 100644 gradle/libs.versions.toml delete mode 100644 settings.gradle create mode 100644 settings.gradle.kts diff --git a/build.gradle.kts b/build.gradle.kts index 70c1dea..7f65a4b 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,11 +1,11 @@ plugins { - id("fabric-loom") version "1.11-SNAPSHOT" - id("org.ajoberstar.grgit") version "5.0.0" + alias(libs.plugins.fabric.loom) + alias(libs.plugins.grgit) } base { archivesName = properties["archives_base_name"] as String - version = "${properties["mod_version"] as String}+mc${properties["minecraft_version"] as String}-${getVersionMetadata()}" + version = "${libs.versions.mod.version.get()}+mc${libs.versions.minecraft.get()}-${getVersionMetadata()}" group = properties["maven_group"] as String } @@ -26,19 +26,19 @@ repositories { dependencies { // Fabric - minecraft("com.mojang:minecraft:${properties["minecraft_version"] as String}") - mappings("net.fabricmc:yarn:${properties["yarn_mappings"] as String}:v2") - modImplementation("net.fabricmc:fabric-loader:${properties["loader_version"] as String}") + minecraft(libs.minecraft) + mappings(variantOf(libs.yarn) { classifier("v2") }) + modImplementation(libs.fabric.loader) // Meteor - modImplementation("meteordevelopment:meteor-client:${properties["minecraft_version"] as String}-SNAPSHOT") + modImplementation(libs.meteor.client) } tasks { processResources { val propertyMap = mapOf( "version" to project.version, - "mc_version" to project.property("minecraft_version"), + "mc_version" to libs.versions.minecraft.get(), ) filesMatching("fabric.mod.json") { diff --git a/gradle.properties b/gradle.properties index c77745e..1481b52 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,12 +1,5 @@ org.gradle.jvmargs=-Xmx4G -# Fabric (https://fabricmc.net/versions.html) -minecraft_version=1.21.10 -yarn_mappings=1.21.10+build.2 -loader_version=0.17.3 -loom_version=1.11-SNAPSHOT - # Mod Properties -mod_version=1.4.17 maven_group=maxsuperman.addons archives_base_name=villager-roller diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml new file mode 100644 index 0000000..20f86dd --- /dev/null +++ b/gradle/libs.versions.toml @@ -0,0 +1,29 @@ +[versions] +mod-version = "1.4.17" + +# Fabric (https://fabricmc.net/develop) +minecraft = "1.21.10" +yarn-mappings = "1.21.10+build.2" +fabric-loader = "0.17.3" + +# Plugins +# Loom (https://github.com/FabricMC/fabric-loom) +loom = "1.12-SNAPSHOT" +# Grgit (https://git.sr.ht/~ajoberstar/grgit) +grgit = "5.0.0" + +# Meteor (https://github.com/MeteorDevelopment/meteor-client) +meteor = "1.21.10-SNAPSHOT" + +[libraries] +# Fabric base +minecraft = { module = "com.mojang:minecraft", version.ref = "minecraft" } +yarn = { module = "net.fabricmc:yarn", version.ref = "yarn-mappings" } +fabric-loader = { module = "net.fabricmc:fabric-loader", version.ref = "fabric-loader" } + +# Meteor client +meteor-client = { module = "meteordevelopment:meteor-client", version.ref = "meteor" } + +[plugins] +fabric-loom = { id = "fabric-loom", version.ref = "loom" } +grgit = { id = "org.ajoberstar.grgit", version.ref = "grgit" } diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 2e11132..bad7c24 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-9.1.0-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/settings.gradle b/settings.gradle deleted file mode 100644 index e8f0bb5..0000000 --- a/settings.gradle +++ /dev/null @@ -1,10 +0,0 @@ -pluginManagement { - repositories { - maven { - name = 'Fabric' - url = 'https://maven.fabricmc.net/' - } - gradlePluginPortal() - mavenCentral() - } -} diff --git a/settings.gradle.kts b/settings.gradle.kts new file mode 100644 index 0000000..00ce0a2 --- /dev/null +++ b/settings.gradle.kts @@ -0,0 +1,12 @@ +pluginManagement { + repositories { + maven { + name = "Fabric" + url = uri("https://maven.fabricmc.net/") + } + gradlePluginPortal() + mavenCentral() + } +} + +rootProject.name = "meteor-villager-roller" From c5a9d642d1fa888b4b3d82d15dbffb7795719dc6 Mon Sep 17 00:00:00 2001 From: Big-Iron-Cheems <52252627+Big-Iron-Cheems@users.noreply.github.com> Date: Mon, 17 Nov 2025 16:40:01 +0100 Subject: [PATCH 2/2] Remove Grgit dependency, replace with Git commands --- build.gradle.kts | 41 ++++++++++++++++++++++++++++----------- gradle/libs.versions.toml | 3 --- 2 files changed, 30 insertions(+), 14 deletions(-) diff --git a/build.gradle.kts b/build.gradle.kts index 7f65a4b..7ca9de6 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -1,6 +1,7 @@ +import java.util.concurrent.TimeUnit + plugins { alias(libs.plugins.fabric.loom) - alias(libs.plugins.grgit) } base { @@ -70,23 +71,41 @@ configurations.modImplementation { fun getVersionMetadata(): String { val buildId = System.getenv("GITHUB_RUN_NUMBER") - - // CI builds only if (buildId != null) { - return "build.${buildId}" + return "build.$buildId" } return try { - val head = grgit.head() - var id = head.abbreviatedId + val headHash = executeGitCommand("git", "rev-parse", "--short", "HEAD").trim() - // Flag the build if the build tree is not clean - if (!grgit.status().isClean) { - id += "-dirty" - } + val status = executeGitCommand("git", "status", "--porcelain").trim() + val isClean = status.isEmpty() + + val id = if (isClean) headHash else "$headHash-dirty" "rev.$id" } catch (e: Exception) { - // No tracking information could be found about the build + logger.warn("Unable to determine Git metadata: ${e.message}") "unknown" } } + +fun executeGitCommand(vararg command: String): String { + val process = ProcessBuilder(*command) + .directory(project.rootDir) + .redirectOutput(ProcessBuilder.Redirect.PIPE) + .redirectError(ProcessBuilder.Redirect.PIPE) + .start() + + val finished = process.waitFor(10, TimeUnit.SECONDS) + if (!finished) { + process.destroyForcibly() + throw RuntimeException("Git command timed out: ${command.joinToString(" ")}") + } + + if (process.exitValue() != 0) { + val err = process.errorStream.bufferedReader().readText() + throw RuntimeException("Git command failed: $err") + } + + return process.inputStream.bufferedReader().readText() +} diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 20f86dd..7a387da 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -9,8 +9,6 @@ fabric-loader = "0.17.3" # Plugins # Loom (https://github.com/FabricMC/fabric-loom) loom = "1.12-SNAPSHOT" -# Grgit (https://git.sr.ht/~ajoberstar/grgit) -grgit = "5.0.0" # Meteor (https://github.com/MeteorDevelopment/meteor-client) meteor = "1.21.10-SNAPSHOT" @@ -26,4 +24,3 @@ meteor-client = { module = "meteordevelopment:meteor-client", version.ref = "met [plugins] fabric-loom = { id = "fabric-loom", version.ref = "loom" } -grgit = { id = "org.ajoberstar.grgit", version.ref = "grgit" }