diff --git a/.github/workflows/test-push.yml b/.github/workflows/test-push.yml index 90e010c2..d93a7d93 100644 --- a/.github/workflows/test-push.yml +++ b/.github/workflows/test-push.yml @@ -10,7 +10,7 @@ jobs: strategy: fail-fast: false matrix: - version: [8.6.0-jdk17] + version: [8.7.0-jdk17] runs-on: ubuntu-22.04 container: image: gradle:${{ matrix.version }} @@ -39,7 +39,7 @@ jobs: runs-on: ubuntu-22.04 container: - image: gradle:8.6.0-jdk17 + image: gradle:8.7.0-jdk17 options: --user root steps: @@ -58,7 +58,7 @@ jobs: strategy: fail-fast: false matrix: - version: [8.6.0-jdk17] + version: [8.7.0-jdk17] test: ${{ fromJson(needs.prepare_test_matrix.outputs.matrix) }} runs-on: ubuntu-22.04 diff --git a/bootstrap/src/main/java/net/fabricmc/loom/bootstrap/LoomGradlePluginBootstrap.java b/bootstrap/src/main/java/net/fabricmc/loom/bootstrap/LoomGradlePluginBootstrap.java index 8fbf513d..4f4a7625 100644 --- a/bootstrap/src/main/java/net/fabricmc/loom/bootstrap/LoomGradlePluginBootstrap.java +++ b/bootstrap/src/main/java/net/fabricmc/loom/bootstrap/LoomGradlePluginBootstrap.java @@ -14,7 +14,7 @@ import org.gradle.util.GradleVersion; */ @SuppressWarnings("unused") public class LoomGradlePluginBootstrap implements Plugin { - private static final String MIN_SUPPORTED_GRADLE_VERSION = "8.6"; + private static final String MIN_SUPPORTED_GRADLE_VERSION = "8.7"; private static final int MIN_SUPPORTED_MAJOR_JAVA_VERSION = 17; private static final int MIN_SUPPORTED_MAJOR_IDEA_VERSION = 2021; diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index b1923d2d..ee879b16 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,5 +1,5 @@ [versions] -kotlin = "1.9.20" +kotlin = "1.9.22" asm = "9.6" commons-io = "2.15.1" gson = "2.10.1" diff --git a/gradle/runtime.libs.versions.toml b/gradle/runtime.libs.versions.toml index cf2a01c7..450fd12d 100644 --- a/gradle/runtime.libs.versions.toml +++ b/gradle/runtime.libs.versions.toml @@ -2,7 +2,7 @@ # Decompilers fernflower = "2.0.0" cfr = "0.2.2" -vineflower = "1.9.3" +vineflower = "1.10.0" # Runtime depedencies mixin-compile-extensions = "0.6.0" diff --git a/gradle/test.libs.versions.toml b/gradle/test.libs.versions.toml index 3498517b..16835b3f 100644 --- a/gradle/test.libs.versions.toml +++ b/gradle/test.libs.versions.toml @@ -1,14 +1,14 @@ [versions] spock = "2.3-groovy-3.0" junit = "5.10.2" -javalin = "6.1.0" -mockito = "5.10.0" -java-debug = "0.51.0" +javalin = "6.1.3" +mockito = "5.11.0" +java-debug = "0.52.0" mixin = "0.12.5+mixin.0.8.5" -gradle-nightly = "8.8-20240224001421+0000" -fabric-loader = "0.15.6" -fabric-installer = "1.0.0" +gradle-nightly = "8.9-20240413002319+0000" +fabric-loader = "0.15.9" +fabric-installer = "1.0.1" [libraries] spock = { module = "org.spockframework:spock-core", version.ref = "spock" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 7f93135c..d64cd491 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 2ea3535d..e7646dea 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-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index 0adc8e1a..1aa94a42 100755 --- a/gradlew +++ b/gradlew @@ -145,7 +145,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then case $MAX_FD in #( max*) # In POSIX sh, ulimit -H is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 MAX_FD=$( ulimit -H -n ) || warn "Could not query maximum file descriptor limit" esac @@ -153,7 +153,7 @@ if ! "$cygwin" && ! "$darwin" && ! "$nonstop" ; then '' | soft) :;; #( *) # In POSIX sh, ulimit -n is undefined. That's why the result is checked to see if it worked. - # shellcheck disable=SC3045 + # shellcheck disable=SC2039,SC3045 ulimit -n "$MAX_FD" || warn "Could not set maximum file descriptor limit to $MAX_FD" esac @@ -202,11 +202,11 @@ fi # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' -# Collect all arguments for the java command; -# * $DEFAULT_JVM_OPTS, $JAVA_OPTS, and $GRADLE_OPTS can contain fragments of -# shell script including quotes and variable substitutions, so put them in -# double quotes to make sure that they get re-expanded; and -# * put everything else in single quotes, so that it's not re-expanded. +# Collect all arguments for the java command: +# * DEFAULT_JVM_OPTS, JAVA_OPTS, JAVA_OPTS, and optsEnvironmentVar are not allowed to contain shell fragments, +# and any embedded shellness will be escaped. +# * For example: A user cannot expect ${Hostname} to be expanded, as it is an environment variable and will be +# treated as '${Hostname}' itself on the command line. set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ diff --git a/gradlew.bat b/gradlew.bat index 93e3f59f..25da30db 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -43,11 +43,11 @@ set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 if %ERRORLEVEL% equ 0 goto execute -echo. -echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail @@ -57,11 +57,11 @@ set JAVA_EXE=%JAVA_HOME%/bin/java.exe if exist "%JAVA_EXE%" goto execute -echo. -echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% -echo. -echo Please set the JAVA_HOME variable in your environment to match the -echo location of your Java installation. +echo. 1>&2 +echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 1>&2 +echo. 1>&2 +echo Please set the JAVA_HOME variable in your environment to match the 1>&2 +echo location of your Java installation. 1>&2 goto fail diff --git a/src/main/java/net/fabricmc/loom/configuration/DependencyInfo.java b/src/main/java/net/fabricmc/loom/configuration/DependencyInfo.java index f186476d..bef7b526 100644 --- a/src/main/java/net/fabricmc/loom/configuration/DependencyInfo.java +++ b/src/main/java/net/fabricmc/loom/configuration/DependencyInfo.java @@ -34,6 +34,8 @@ import org.gradle.api.artifacts.Dependency; import org.gradle.api.artifacts.DependencySet; import org.gradle.api.artifacts.FileCollectionDependency; import org.gradle.api.artifacts.ResolvedDependency; +import org.gradle.api.artifacts.component.ComponentIdentifier; +import org.gradle.api.artifacts.component.ModuleComponentIdentifier; import net.fabricmc.loom.LoomGradleExtension; import net.fabricmc.loom.util.gradle.SelfResolvingDependencyUtils; @@ -104,8 +106,21 @@ public class DependencyInfo { return sourceConfiguration; } + private boolean matches(ComponentIdentifier identifier) { + if (identifier instanceof ModuleComponentIdentifier moduleComponentIdentifier) { + return moduleComponentIdentifier.getGroup().equals(dependency.getGroup()) + && moduleComponentIdentifier.getModule().equals(dependency.getName()) + && moduleComponentIdentifier.getVersion().equals(dependency.getVersion()); + } + + return false; + } + public Set resolve() { - return sourceConfiguration.files(dependency); + return sourceConfiguration.getIncoming() + .artifactView(view -> view.componentFilter(this::matches)) + .getFiles() + .getFiles(); } public Optional resolveFile() { diff --git a/src/test/resources/projects/mixinApAutoRefmap/build.gradle b/src/test/resources/projects/mixinApAutoRefmap/build.gradle index 058aef16..d7bad2b2 100644 --- a/src/test/resources/projects/mixinApAutoRefmap/build.gradle +++ b/src/test/resources/projects/mixinApAutoRefmap/build.gradle @@ -1,6 +1,5 @@ plugins { id 'fabric-loom' - id 'com.github.johnrengelman.shadow' version '7.0.0' id 'maven-publish' } @@ -83,9 +82,8 @@ loom { } } -shadowJar { +task shadowJar(type: Jar) { archiveClassifier.set("universal-dev") - configurations = [] from(sourceSets["main"].output) from(sourceSets["mixin"].output)