diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 1c04957f..86e39edf 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,13 +14,13 @@ jobs: strategy: fail-fast: false matrix: - version: [7.5.0-jdk17] + version: [7.5.1-jdk17] runs-on: ubuntu-22.04 container: image: gradle:${{ matrix.version }} options: --user root steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - uses: gradle/wrapper-validation-action@v1 - run: gradle build check -x test --stacktrace --warning-mode fail - uses: Juuxel/publish-checkstyle-report@v1 @@ -36,15 +36,15 @@ jobs: runs-on: ubuntu-22.04 container: - image: gradle:7.5.0-jdk17 + image: gradle:7.5.1-jdk17 options: --user root steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: gradle writeActionsTestMatrix --stacktrace --warning-mode fail - id: set-matrix - run: echo "::set-output name=matrix::$(cat build/test_matrix.json)" + run: echo "matrix=$(cat build/test_matrix.json)" >> $GITHUB_OUTPUT outputs: matrix: ${{ steps.set-matrix.outputs.matrix }} @@ -55,7 +55,7 @@ jobs: strategy: fail-fast: false matrix: - version: [7.4.0-jdk17] + version: [7.5.1-jdk17] test: ${{ fromJson(needs.prepare_test_matrix.outputs.matrix) }} runs-on: ubuntu-22.04 @@ -64,7 +64,7 @@ jobs: options: --user root steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - run: gradle printActionsTestName --name="${{ matrix.test }}" test --tests ${{ matrix.test }} --stacktrace --warning-mode fail env: TEST_WARNING_MODE: fail @@ -95,11 +95,12 @@ jobs: runs-on: windows-2022 steps: - - uses: actions/checkout@v2 + - uses: actions/checkout@v3 - name: setup jdk ${{ matrix.java }} - uses: actions/setup-java@v1 + uses: actions/setup-java@v3 with: java-version: ${{ matrix.java }} + distribution: 'temurin' - run: ./gradlew printActionsTestName --name="${{ matrix.test }}" test --tests ${{ matrix.test }} --stacktrace --warning-mode fail env: TEST_WARNING_MODE: fail @@ -112,7 +113,7 @@ jobs: path: build/test-results/**/*.xml retention-days: 1 - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v3 if: ${{ failure() }} with: name: ${{ steps.test.outputs.test }} (${{ matrix.java }}) Results (Windows) @@ -126,14 +127,15 @@ jobs: fail-fast: false matrix: java: [ 17, 18 ] - os: [ windows-2022, ubuntu-22.04, macos-11 ] + os: [ windows-2022, ubuntu-22.04, macos-12 ] runs-on: ${{ matrix.os }} steps: - - uses: actions/checkout@v2 - - uses: actions/setup-java@v1 + - uses: actions/checkout@v3 + - uses: actions/setup-java@v3 with: java-version: ${{ matrix.java }} + distribution: 'temurin' - run: ./gradlew test --tests *ReproducibleBuildTest --stacktrace --warning-mode fail - name: Publish test results for report @@ -144,7 +146,7 @@ jobs: path: build/test-results/**/*.xml retention-days: 1 - - uses: actions/upload-artifact@v2 + - uses: actions/upload-artifact@v3 if: ${{ failure() }} with: name: Reproducible Build ${{ matrix.os }} (${{ matrix.java }}) Results diff --git a/bootstrap/build.gradle b/bootstrap/build.gradle index 8a62397c..a92baf40 100644 --- a/bootstrap/build.gradle +++ b/bootstrap/build.gradle @@ -19,7 +19,7 @@ dependencies { implementation gradleApi() testImplementation(gradleTestKit()) - testImplementation('org.spockframework:spock-core:2.1-groovy-3.0') { + testImplementation('org.spockframework:spock-core:2.3-groovy-3.0') { exclude module: 'groovy-all' } } diff --git a/build.gradle b/build.gradle index 20e59ddc..76f1c854 100644 --- a/build.gradle +++ b/build.gradle @@ -9,7 +9,7 @@ plugins { id 'jacoco' id 'codenarc' id "org.jetbrains.kotlin.jvm" version "1.6.10" // Must match the version included with gradle. - id "com.diffplug.spotless" version "6.8.0" + id "com.diffplug.spotless" version "6.11.0" id "org.gradle.test-retry" version "1.4.1" } @@ -81,14 +81,14 @@ dependencies { // libraries implementation ('commons-io:commons-io:2.11.0') - implementation ('com.google.code.gson:gson:2.9.0') - implementation ('com.fasterxml.jackson.core:jackson-databind:2.13.3') + implementation ('com.google.code.gson:gson:2.10') + implementation ('com.fasterxml.jackson.core:jackson-databind:2.13.4.2') implementation ('com.google.guava:guava:31.1-jre') - implementation ('org.ow2.asm:asm:9.3') - implementation ('org.ow2.asm:asm-analysis:9.3') - implementation ('org.ow2.asm:asm-commons:9.3') - implementation ('org.ow2.asm:asm-tree:9.3') - implementation ('org.ow2.asm:asm-util:9.3') + implementation ('org.ow2.asm:asm:9.4') + implementation ('org.ow2.asm:asm-analysis:9.4') + implementation ('org.ow2.asm:asm-commons:9.4') + implementation ('org.ow2.asm:asm-tree:9.4') + implementation ('org.ow2.asm:asm-util:9.4') implementation ('me.tongfei:progressbar:0.9.0') // game handling utils @@ -108,14 +108,14 @@ dependencies { implementation "dev.architectury:refmap-remapper:1.0.5" // decompilers - implementation ('net.fabricmc:fabric-fernflower:1.5.0') - implementation ('net.fabricmc:cfr:0.1.1') + implementation ('net.fabricmc:fabric-fernflower:2.0.0') + implementation ('net.fabricmc:cfr:0.2.0') // source code remapping implementation ('dev.architectury:mercury:0.1.2.15') // Kotlin - implementation('org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.4.2') { + implementation('org.jetbrains.kotlinx:kotlinx-metadata-jvm:0.5.0') { transitive = false } @@ -132,15 +132,15 @@ dependencies { // Testing testImplementation(gradleTestKit()) - testImplementation('org.spockframework:spock-core:2.1-groovy-3.0') { + testImplementation('org.spockframework:spock-core:2.3-groovy-3.0') { exclude module: 'groovy-all' } - testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.8.2' - testImplementation ('io.javalin:javalin:4.6.1') { + testImplementation 'org.junit.jupiter:junit-jupiter-engine:5.9.0' + testImplementation ('io.javalin:javalin:5.1.2') { exclude group: 'org.jetbrains.kotlin' } testImplementation 'net.fabricmc:fabric-installer:0.9.0' - testImplementation 'org.mockito:mockito-core:4.6.1' + testImplementation 'org.mockito:mockito-core:4.8.0' compileOnly 'org.jetbrains:annotations:23.0.0' testCompileOnly 'org.jetbrains:annotations:23.0.0' @@ -183,7 +183,7 @@ spotless { checkstyle { configFile = file('checkstyle.xml') - toolVersion = '10.3.1' + toolVersion = '10.3.4' } codenarc { @@ -201,7 +201,7 @@ gradlePlugin { } jacoco { - toolVersion = "0.8.7" + toolVersion = "0.8.8" } // Run to get test coverage. @@ -385,6 +385,6 @@ class PrintActionsTestName extends DefaultTask { @TaskAction def run() { def sanitised = testName.replace('*', '_') - println "::set-output name=test::$sanitised" + new File(System.getenv().GITHUB_OUTPUT) << "\ntest=$sanitised" } } diff --git a/checkstyle.xml b/checkstyle.xml index c25f340f..279b740b 100644 --- a/checkstyle.xml +++ b/checkstyle.xml @@ -160,10 +160,5 @@ - - - - - - \ No newline at end of file + diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 41d9927a..249e5832 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 2ec77e51..8fad3f5a 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.5-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/gradlew b/gradlew index 1b6c7873..a69d9cb6 100755 --- a/gradlew +++ b/gradlew @@ -205,6 +205,12 @@ set -- \ org.gradle.wrapper.GradleWrapperMain \ "$@" +# Stop when "xargs" is not available. +if ! command -v xargs >/dev/null 2>&1 +then + die "xargs is not available" +fi + # Use "xargs" to parse quoted args. # # With -n1 it outputs one arg per line, with the quotes and backslashes removed. diff --git a/gradlew.bat b/gradlew.bat index 107acd32..f127cfd4 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -14,7 +14,7 @@ @rem limitations under the License. @rem -@if "%DEBUG%" == "" @echo off +@if "%DEBUG%"=="" @echo off @rem ########################################################################## @rem @rem Gradle startup script for Windows @@ -25,7 +25,7 @@ if "%OS%"=="Windows_NT" setlocal set DIRNAME=%~dp0 -if "%DIRNAME%" == "" set DIRNAME=. +if "%DIRNAME%"=="" set DIRNAME=. set APP_BASE_NAME=%~n0 set APP_HOME=%DIRNAME% @@ -40,7 +40,7 @@ if defined JAVA_HOME goto findJavaFromJavaHome set JAVA_EXE=java.exe %JAVA_EXE% -version >NUL 2>&1 -if "%ERRORLEVEL%" == "0" goto execute +if %ERRORLEVEL% equ 0 goto execute echo. echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. @@ -75,13 +75,15 @@ set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar :end @rem End local scope for the variables with windows NT shell -if "%ERRORLEVEL%"=="0" goto mainEnd +if %ERRORLEVEL% equ 0 goto mainEnd :fail rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of rem the _cmd.exe /c_ return code! -if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 -exit /b 1 +set EXIT_CODE=%ERRORLEVEL% +if %EXIT_CODE% equ 0 set EXIT_CODE=1 +if not ""=="%GRADLE_EXIT_CONSOLE%" exit %EXIT_CODE% +exit /b %EXIT_CODE% :mainEnd if "%OS%"=="Windows_NT" endlocal diff --git a/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java b/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java index 350cb71c..3acab27f 100644 --- a/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java +++ b/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java @@ -89,6 +89,14 @@ public interface LoomGradleExtensionAPI { NamedDomainObjectContainer getRunConfigs(); + /** + * {@return the value of {@link #getRunConfigs}} + * This is an alias for it that matches {@link #runs}. + */ + default NamedDomainObjectContainer getRuns() { + return getRunConfigs(); + } + void mixin(Action action); /** diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/ProcessedNamedMinecraftProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/ProcessedNamedMinecraftProvider.java index d4668ff7..f7b9f458 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/ProcessedNamedMinecraftProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/minecraft/mapped/ProcessedNamedMinecraftProvider.java @@ -57,7 +57,8 @@ public abstract class ProcessedNamedMinecraftProvider getMinecraftJars() { return getParentMinecraftProvider().getMinecraftJars().stream() - .map(this::getProcessedPath) + .map(this::getProcessedJar) .toList(); } @@ -147,9 +148,13 @@ public abstract class ProcessedNamedMinecraftProvider implements Merged { @@ -159,7 +164,7 @@ public abstract class ProcessedNamedMinecraftProvider - config.enableDevLogging() }.start(9081) def cleanupSpec() { diff --git a/src/test/groovy/net/fabricmc/loom/test/util/GradleProjectTestTrait.groovy b/src/test/groovy/net/fabricmc/loom/test/util/GradleProjectTestTrait.groovy index 7cf121b7..2fdc5d4a 100644 --- a/src/test/groovy/net/fabricmc/loom/test/util/GradleProjectTestTrait.groovy +++ b/src/test/groovy/net/fabricmc/loom/test/util/GradleProjectTestTrait.groovy @@ -244,11 +244,11 @@ trait GradleProjectTestTrait { } File getGeneratedSources(String mappings) { - return new File(getGradleHomeDir(), "caches/fabric-loom/${mappings}/minecraft-merged-named-sources.jar") + return new File(getGradleHomeDir(), "caches/fabric-loom/minecraftMaven/net/minecraft/minecraft-merged/${mappings}/minecraft-merged-${mappings}-sources.jar") } File getGeneratedLocalSources(String mappings) { - return new File(getProjectDir(), ".gradle/loom-cache/${mappings}/minecraft-project-@-merged-named-sources.jar") + return new File(getProjectDir(), ".gradle/loom-cache/minecraftMaven/net/minecraft/minecraft-merged-project-root/${mappings}/minecraft-merged-project-root-${mappings}-sources.jar") } void buildSrc(String name) { diff --git a/src/test/groovy/net/fabricmc/loom/test/util/MockMavenServerTrait.groovy b/src/test/groovy/net/fabricmc/loom/test/util/MockMavenServerTrait.groovy index 7021c58e..0d8c07a2 100644 --- a/src/test/groovy/net/fabricmc/loom/test/util/MockMavenServerTrait.groovy +++ b/src/test/groovy/net/fabricmc/loom/test/util/MockMavenServerTrait.groovy @@ -37,7 +37,6 @@ trait MockMavenServerTrait { println "Maven server path: ${testMavenDir.absolutePath}" server = Javalin.create { config -> - config.enableDevLogging() }.start(mavenServerPort) /** @@ -61,7 +60,7 @@ trait MockMavenServerTrait { file.parentFile.mkdirs() file.withOutputStream { - IOUtils.copy(ctx.bodyAsInputStream(), it) + IOUtils.copy(ctx.bodyInputStream(), it) } } } diff --git a/src/test/groovy/net/fabricmc/loom/test/util/ServerRunner.groovy b/src/test/groovy/net/fabricmc/loom/test/util/ServerRunner.groovy index 66420e55..b2883abe 100644 --- a/src/test/groovy/net/fabricmc/loom/test/util/ServerRunner.groovy +++ b/src/test/groovy/net/fabricmc/loom/test/util/ServerRunner.groovy @@ -34,7 +34,7 @@ class ServerRunner { "1.16.5": "https://github.com/FabricMC/fabric/releases/download/0.37.1%2B1.16/fabric-api-0.37.1+1.16.jar", "1.17.1": "https://github.com/FabricMC/fabric/releases/download/0.37.1%2B1.17/fabric-api-0.37.1+1.17.jar" ] - static final String FABRIC_LANG_KOTLIN = "https://maven.fabricmc.net/net/fabricmc/fabric-language-kotlin/1.7.3%2Bkotlin.1.6.20/fabric-language-kotlin-1.7.3%2Bkotlin.1.6.20.jar" + static final String FABRIC_LANG_KOTLIN = "https://maven.fabricmc.net/net/fabricmc/fabric-language-kotlin/1.8.5%2Bkotlin.1.7.20/fabric-language-kotlin-1.8.5%2Bkotlin.1.7.20.jar" final File serverDir final String minecraftVersion diff --git a/src/test/resources/projects/kotlin/build.gradle.kts b/src/test/resources/projects/kotlin/build.gradle.kts index a2ef63b8..ee0aa8d6 100644 --- a/src/test/resources/projects/kotlin/build.gradle.kts +++ b/src/test/resources/projects/kotlin/build.gradle.kts @@ -1,8 +1,8 @@ import java.util.Properties plugins { - kotlin("jvm") version "1.6.20" - kotlin("plugin.serialization") version "1.6.20" + kotlin("jvm") version "1.7.20" + kotlin("plugin.serialization") version "1.7.20" id("dev.architectury.loom") } @@ -17,5 +17,5 @@ dependencies { minecraft(group = "com.mojang", name = "minecraft", version = "1.16.5") mappings(group = "net.fabricmc", name = "yarn", version = "1.16.5+build.5", classifier = "v2") modImplementation("net.fabricmc:fabric-loader:0.12.12") - modImplementation(group = "net.fabricmc", name = "fabric-language-kotlin", version = "1.7.3+kotlin.1.6.20") + modImplementation(group = "net.fabricmc", name = "fabric-language-kotlin", version = "1.8.5+kotlin.1.7.20") } \ No newline at end of file