diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index fd25dfa970..9aa94ca97d 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -5,7 +5,7 @@ jobs: strategy: matrix: java: [21-jdk] - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 container: image: eclipse-temurin:${{ matrix.java }} options: --user root @@ -24,7 +24,7 @@ jobs: path: build/libs/ test-build-logic: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 container: image: eclipse-temurin:21-jdk options: --user root diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index d8a92393ec..026206d12e 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -4,7 +4,7 @@ concurrency: ci-${{ github.ref }} jobs: publish: if: ${{ github.repository_owner == 'FabricMC' }} - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 container: image: eclipse-temurin:21-jdk options: --user root diff --git a/.github/workflows/release-filament.yml b/.github/workflows/release-filament.yml index 3d60b327d6..ebde0e3094 100644 --- a/.github/workflows/release-filament.yml +++ b/.github/workflows/release-filament.yml @@ -2,7 +2,7 @@ name: Release Filament on: [workflow_dispatch] # Manual trigger jobs: build: - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 container: image: eclipse-temurin:21-jdk options: --user root diff --git a/.github/workflows/update-base.yml b/.github/workflows/update-base.yml index f23ceeda2f..9563dad0ee 100644 --- a/.github/workflows/update-base.yml +++ b/.github/workflows/update-base.yml @@ -7,7 +7,7 @@ on: jobs: update: if: ${{ github.event.label.name == 'update-base' }} - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: FabricMC/fabric-action-scripts@v2 with: diff --git a/.github/workflows/version-label.yml b/.github/workflows/version-label.yml index a00e1442ea..64f15fd6c7 100644 --- a/.github/workflows/version-label.yml +++ b/.github/workflows/version-label.yml @@ -7,7 +7,7 @@ on: jobs: update: if: ${{ github.event.label.name == 'update-base' }} - runs-on: ubuntu-22.04 + runs-on: ubuntu-24.04 steps: - uses: FabricMC/fabric-action-scripts@v2 with: diff --git a/filament/build.gradle b/filament/build.gradle index 36b4ed3716..c0f584dee8 100644 --- a/filament/build.gradle +++ b/filament/build.gradle @@ -36,12 +36,11 @@ dependencies { implementation "net.fabricmc.unpick:unpick-format-utils:$properties.unpick_version" implementation "net.fabricmc.unpick:unpick-cli:$properties.unpick_version" implementation "net.fabricmc:tiny-remapper:$properties.tiny_remapper_version" - implementation 'com.fasterxml.jackson.core:jackson-databind:2.13.4.2' - implementation 'net.fabricmc:mapping-io:0.5.1' + implementation 'net.fabricmc:mapping-io:0.6.1' implementation 'net.fabricmc:javapoet:0.1.1' // Contains a number of useful utilities we can re-use. - implementation ("net.fabricmc:fabric-loom:1.5.7") { + implementation ("net.fabricmc:fabric-loom:1.7.3") { transitive = false } diff --git a/filament/src/main/java/net/fabricmc/filament/FilamentGradlePlugin.java b/filament/src/main/java/net/fabricmc/filament/FilamentGradlePlugin.java index 64705e5c22..140aaa4150 100644 --- a/filament/src/main/java/net/fabricmc/filament/FilamentGradlePlugin.java +++ b/filament/src/main/java/net/fabricmc/filament/FilamentGradlePlugin.java @@ -1,7 +1,7 @@ package net.fabricmc.filament; -import com.fasterxml.jackson.databind.DeserializationFeature; -import com.fasterxml.jackson.databind.ObjectMapper; +import com.google.gson.Gson; +import com.google.gson.GsonBuilder; import org.gradle.api.Plugin; import org.gradle.api.Project; import org.gradle.api.artifacts.Dependency; @@ -24,7 +24,7 @@ import net.fabricmc.loom.util.gradle.GradleUtils; public final class FilamentGradlePlugin implements Plugin { - public static final ObjectMapper OBJECT_MAPPER = new ObjectMapper().configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false); + public static final Gson GSON = new GsonBuilder().setPrettyPrinting().create(); @Override public void apply(Project project) { diff --git a/filament/src/main/java/net/fabricmc/filament/util/MinecraftVersionMetaHelper.java b/filament/src/main/java/net/fabricmc/filament/util/MinecraftVersionMetaHelper.java index e1bffc8f7a..aafadbe704 100644 --- a/filament/src/main/java/net/fabricmc/filament/util/MinecraftVersionMetaHelper.java +++ b/filament/src/main/java/net/fabricmc/filament/util/MinecraftVersionMetaHelper.java @@ -1,7 +1,6 @@ package net.fabricmc.filament.util; import java.io.IOException; -import java.io.UncheckedIOException; import java.net.URISyntaxException; import java.nio.file.Path; @@ -12,8 +11,8 @@ import net.fabricmc.filament.FilamentExtension; import net.fabricmc.filament.FilamentGradlePlugin; -import net.fabricmc.loom.configuration.providers.minecraft.ManifestVersion; import net.fabricmc.loom.configuration.providers.minecraft.MinecraftVersionMeta; +import net.fabricmc.loom.configuration.providers.minecraft.VersionsManifest; import net.fabricmc.loom.util.download.Download; public abstract class MinecraftVersionMetaHelper { @@ -42,9 +41,9 @@ public MinecraftVersionMeta setup() throws IOException, URISyntaxException { .defaultCache() .downloadString(versionManifestPath); - final ManifestVersion mcManifest = FilamentGradlePlugin.OBJECT_MAPPER.readValue(versionManifest, ManifestVersion.class); + final VersionsManifest mcManifest = FilamentGradlePlugin.GSON.fromJson(versionManifest, VersionsManifest.class); - ManifestVersion.Versions version = mcManifest.versions().stream() + VersionsManifest.Version version = mcManifest.versions().stream() .filter(versions -> versions.id.equalsIgnoreCase(getMinecraftVersion().get())) .findFirst() .orElse(null); @@ -57,10 +56,6 @@ public MinecraftVersionMeta setup() throws IOException, URISyntaxException { .sha1(version.sha1) .downloadString(versionMetadataPath); - try { - return FilamentGradlePlugin.OBJECT_MAPPER.readValue(versionMetadata, MinecraftVersionMeta.class); - } catch (IOException e) { - throw new UncheckedIOException(e); - } + return FilamentGradlePlugin.GSON.fromJson(versionMetadata, MinecraftVersionMeta.class); } } diff --git a/gradle.properties b/gradle.properties index ba62378f5d..ebcf7ab07d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -6,14 +6,14 @@ org.gradle.configuration-cache=true enigma_version=2.5.0 unpick_version=2.3.0 cfr_version=0.2.2 -vineflower_version=1.9.3 +vineflower_version=1.10.1 asm_version=9.6 # Javadoc generation/linking -fabric_loader_version=0.15.10 +fabric_loader_version=0.16.2 jetbrains_annotations_version=24.1.0 # Build logic -tiny_remapper_version=0.10.3 -junit_version=5.10.2 -assertj_version=3.25.3 +tiny_remapper_version=0.10.4 +junit_version=5.11.0 +assertj_version=3.26.3 diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index d64cd49177..a4b76b9530 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a80b22ce5c..9355b41557 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-8.6-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.10-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 1aa94a4269..f5feea6d6b 100755 --- a/gradlew +++ b/gradlew @@ -15,6 +15,8 @@ # See the License for the specific language governing permissions and # limitations under the License. # +# SPDX-License-Identifier: Apache-2.0 +# ############################################################################## # @@ -55,7 +57,7 @@ # Darwin, MinGW, and NonStop. # # (3) This script is generated from the Groovy template -# https://github.com/gradle/gradle/blob/HEAD/subprojects/plugins/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt +# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt # within the Gradle project. # # You can find Gradle at https://github.com/gradle/gradle/. @@ -84,7 +86,8 @@ done # shellcheck disable=SC2034 APP_BASE_NAME=${0##*/} # Discard cd standard output in case $CDPATH is set (https://github.com/gradle/gradle/issues/25036) -APP_HOME=$( cd "${APP_HOME:-./}" > /dev/null && pwd -P ) || exit +APP_HOME=$( cd -P "${APP_HOME:-./}" > /dev/null && printf '%s +' "$PWD" ) || exit # Use the maximum available, or set MAX_FD != -1 to use that value. MAX_FD=maximum diff --git a/gradlew.bat b/gradlew.bat index 25da30dbde..9d21a21834 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -13,6 +13,8 @@ @rem See the License for the specific language governing permissions and @rem limitations under the License. @rem +@rem SPDX-License-Identifier: Apache-2.0 +@rem @if "%DEBUG%"=="" @echo off @rem ##########################################################################