Merge 1.7, part 4

This commit is contained in:
Juuz
2024-07-01 20:01:06 +03:00
19 changed files with 85 additions and 73 deletions

View File

@@ -6,11 +6,13 @@ on:
jobs: jobs:
build: build:
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
container:
image: eclipse-temurin:17-jdk
options: --user root
steps: steps:
- name: setup jdk
uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'temurin'
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2 - uses: gradle/wrapper-validation-action@v2

View File

@@ -1,5 +1,4 @@
name: Java CI name: Publish
on: on:
push: push:
branches: branches:
@@ -20,16 +19,15 @@ on:
jobs: jobs:
build: build:
runs-on: ubuntu-24.04
runs-on: ubuntu-latest
steps: steps:
- name: setup jdk
uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'temurin'
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2 - uses: gradle/wrapper-validation-action@v2
- name: Set up JDK 17
uses: actions/setup-java@v1
with:
java-version: 17
- name: Upload to Maven - name: Upload to Maven
run: ./gradlew publish --stacktrace run: ./gradlew publish --stacktrace
env: env:

View File

@@ -7,18 +7,16 @@ concurrency:
jobs: jobs:
build: build:
strategy: runs-on: ubuntu-24.04
fail-fast: false
matrix:
version: [8.7.0-jdk17]
runs-on: ubuntu-22.04
container:
image: gradle:${{ matrix.version }}
options: --user root
steps: steps:
- name: setup jdk
uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'temurin'
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- uses: gradle/wrapper-validation-action@v2 - uses: gradle/wrapper-validation-action@v2
- run: gradle build check -x test --stacktrace --warning-mode fail - run: ./gradlew build check -x test --stacktrace --warning-mode fail
- uses: Juuxel/publish-checkstyle-report@v1 - uses: Juuxel/publish-checkstyle-report@v1
if: ${{ failure() }} if: ${{ failure() }}
with: with:
@@ -32,7 +30,7 @@ jobs:
- name: setup jdk - name: setup jdk
uses: actions/setup-java@v4 uses: actions/setup-java@v4
with: with:
java-version: 17 java-version: 21
distribution: 'temurin' distribution: 'temurin'
- uses: gradle/wrapper-validation-action@v2 - uses: gradle/wrapper-validation-action@v2
- run: ./gradlew build check -x test --stacktrace --warning-mode fail - run: ./gradlew build check -x test --stacktrace --warning-mode fail
@@ -42,14 +40,16 @@ jobs:
# Lets wait to ensure it builds before going running tests # Lets wait to ensure it builds before going running tests
needs: build needs: build
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
container:
image: gradle:8.7.0-jdk17
options: --user root
steps: steps:
- name: setup jdk
uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'temurin'
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- run: gradle writeActionsTestMatrix --stacktrace --warning-mode fail - run: ./gradlew writeActionsTestMatrix --stacktrace --warning-mode fail
- -
id: set-matrix id: set-matrix
run: echo "matrix=$(cat build/test_matrix.json)" >> $GITHUB_OUTPUT run: echo "matrix=$(cat build/test_matrix.json)" >> $GITHUB_OUTPUT
@@ -63,17 +63,18 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
version: [8.7.0-jdk17]
test: ${{ fromJson(needs.prepare_test_matrix.outputs.matrix) }} test: ${{ fromJson(needs.prepare_test_matrix.outputs.matrix) }}
runs-on: ubuntu-22.04 runs-on: ubuntu-24.04
container:
image: gradle:${{ matrix.version }}
options: --user root
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- run: gradle printActionsTestName --name="${{ matrix.test }}" test --tests ${{ matrix.test }} --stacktrace --warning-mode fail - name: setup jdk
uses: actions/setup-java@v4
with:
java-version: 21
distribution: 'temurin'
- run: ./gradlew printActionsTestName --name="${{ matrix.test }}" test --tests ${{ matrix.test }} --stacktrace --warning-mode fail
env: env:
TEST_WARNING_MODE: fail TEST_WARNING_MODE: fail
id: test id: test
@@ -95,17 +96,16 @@ jobs:
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
java: [17]
test: ${{ fromJson(needs.prepare_test_matrix.outputs.matrix) }} test: ${{ fromJson(needs.prepare_test_matrix.outputs.matrix) }}
runs-on: windows-2022 runs-on: windows-2022
steps: steps:
- uses: actions/checkout@v4 - uses: actions/checkout@v4
- name: setup jdk ${{ matrix.java }} - name: setup jdk
uses: actions/setup-java@v4 uses: actions/setup-java@v4
with: with:
java-version: ${{ matrix.java }} java-version: 21
distribution: 'temurin' distribution: 'temurin'
- run: ./gradlew printActionsTestName --name="${{ matrix.test }}" test --tests ${{ matrix.test }} --stacktrace --warning-mode fail - run: ./gradlew printActionsTestName --name="${{ matrix.test }}" test --tests ${{ matrix.test }} --stacktrace --warning-mode fail
env: env:
@@ -131,7 +131,7 @@ jobs:
fail-fast: false fail-fast: false
matrix: matrix:
java: [ 17, 21 ] java: [ 17, 21 ]
os: [ windows-2022, ubuntu-22.04, macos-14 ] os: [ windows-2022, ubuntu-24.04, macos-14 ]
runs-on: ${{ matrix.os }} runs-on: ${{ matrix.os }}
steps: steps:

View File

@@ -14,7 +14,7 @@ import org.gradle.util.GradleVersion;
*/ */
@SuppressWarnings("unused") @SuppressWarnings("unused")
public class LoomGradlePluginBootstrap implements Plugin<PluginAware> { public class LoomGradlePluginBootstrap implements Plugin<PluginAware> {
private static final String MIN_SUPPORTED_GRADLE_VERSION = "8.7"; private static final String MIN_SUPPORTED_GRADLE_VERSION = "8.8";
private static final int MIN_SUPPORTED_MAJOR_JAVA_VERSION = 17; private static final int MIN_SUPPORTED_MAJOR_JAVA_VERSION = 17;
private static final int MIN_SUPPORTED_MAJOR_IDEA_VERSION = 2021; private static final int MIN_SUPPORTED_MAJOR_IDEA_VERSION = 2021;

View File

@@ -91,11 +91,17 @@ configurations {
testRuntimeClasspath.extendsFrom bootstrap testRuntimeClasspath.extendsFrom bootstrap
} }
configurations.all { configurations.configureEach {
resolutionStrategy { resolutionStrategy {
// I am sorry, for now // I am sorry, for now
// failOnNonReproducibleResolution() // failOnNonReproducibleResolution()
} }
if (canBeConsumed) {
attributes {
attribute(GradlePluginApiVersion.GRADLE_PLUGIN_API_VERSION_ATTRIBUTE, objects.named(GradlePluginApiVersion, GradleVersion.current().getVersion()))
}
}
} }
sourceSets { sourceSets {
@@ -383,7 +389,7 @@ publishing {
} }
// Need to tweak this file to pretend we are compatible with j8 so the bootstrap will run. // Need to tweak this file to pretend we are compatible with j8 so the bootstrap will run.
tasks.withType(GenerateModuleMetadata) { tasks.withType(GenerateModuleMetadata).configureEach {
doLast { doLast {
def file = outputFile.get().asFile def file = outputFile.get().asFile
@@ -398,7 +404,7 @@ tasks.withType(GenerateModuleMetadata) {
} }
// A task to output a json file with a list of all the test to run // A task to output a json file with a list of all the test to run
task writeActionsTestMatrix() { tasks.register('writeActionsTestMatrix') {
doLast { doLast {
def testMatrix = [] def testMatrix = []
file('src/test/groovy/net/fabricmc/loom/test/integration').traverse { file('src/test/groovy/net/fabricmc/loom/test/integration').traverse {
@@ -445,7 +451,7 @@ tasks.named('wrapper') {
/** /**
* Run this task to download the gradle sources next to the api jar, you may need to manually attach the sources jar * Run this task to download the gradle sources next to the api jar, you may need to manually attach the sources jar
*/ */
task downloadGradleSources() { tasks.register('downloadGradleSources') {
doLast { doLast {
// Awful hack to find the gradle api location // Awful hack to find the gradle api location
def gradleApiFile = project.configurations.detachedConfiguration(dependencies.gradleApi()).files.stream() def gradleApiFile = project.configurations.detachedConfiguration(dependencies.gradleApi()).files.stream()
@@ -467,13 +473,13 @@ tasks.withType(GenerateModuleMetadata) {
enabled = false enabled = false
} }
task printActionsTestName(type: PrintActionsTestName) { tasks.register('printActionsTestName', PrintActionsTestName) {
} }
/** /**
* Replaces invalid characters in test names for GitHub Actions artifacts. * Replaces invalid characters in test names for GitHub Actions artifacts.
*/ */
class PrintActionsTestName extends DefaultTask { abstract class PrintActionsTestName extends DefaultTask {
@Input @Input
@Option(option = "name", description = "The test name") @Option(option = "name", description = "The test name")
String testName String testName

View File

@@ -17,9 +17,8 @@ loom-native = "0.2.0"
# Plugins # Plugins
spotless = "6.25.0" spotless = "6.25.0"
test-retry = "1.5.6" test-retry = "1.5.6"
checkstyle = "10.13.0" checkstyle = "10.17.0"
codenarc = "3.4.0" codenarc = "3.4.0"
jacoco = "0.8.11"
# Forge libraries # Forge libraries
forge-installer-tools = "1.2.0" forge-installer-tools = "1.2.0"

View File

@@ -1,13 +1,13 @@
[versions] [versions]
spock = "2.3-groovy-3.0" spock = "2.3-groovy-3.0"
junit = "5.10.2" junit = "5.10.2"
javalin = "6.1.3" javalin = "6.1.6"
mockito = "5.11.0" mockito = "5.12.0"
java-debug = "0.52.0" java-debug = "0.52.0"
mixin = "0.12.5+mixin.0.8.5" mixin = "0.12.5+mixin.0.8.5"
gradle-nightly = "8.9-20240505002558+0000" gradle-nightly = "8.10-20240613003017+0000"
fabric-loader = "0.15.10" fabric-loader = "0.15.11"
fabric-installer = "1.0.1" fabric-installer = "1.0.1"
[libraries] [libraries]

Binary file not shown.

View File

@@ -1,6 +1,6 @@
distributionBase=GRADLE_USER_HOME distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-all.zip distributionUrl=https\://services.gradle.org/distributions/gradle-8.8-all.zip
networkTimeout=10000 networkTimeout=10000
validateDistributionUrl=true validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME zipStoreBase=GRADLE_USER_HOME

2
gradlew vendored
View File

@@ -55,7 +55,7 @@
# Darwin, MinGW, and NonStop. # Darwin, MinGW, and NonStop.
# #
# (3) This script is generated from the Groovy template # (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. # within the Gradle project.
# #
# You can find Gradle at https://github.com/gradle/gradle/. # You can find Gradle at https://github.com/gradle/gradle/.

View File

@@ -40,7 +40,7 @@ public abstract class LoomProblemReporter {
public void reportSelfResolvingDependencyUsage() { public void reportSelfResolvingDependencyUsage() {
problemReporter.reporting(spec -> spec problemReporter.reporting(spec -> spec
.label("SelfResolvingDependency is deprecated") .id("loom-deprecated-selfresolvingdependency", "SelfResolvingDependency is deprecated")
.details("SelfResolvingDependency has been deprecated for removal in Gradle 9") .details("SelfResolvingDependency has been deprecated for removal in Gradle 9")
.solution("Please replace usages of SelfResolvingDependency") .solution("Please replace usages of SelfResolvingDependency")
.documentedAt("https://github.com/gradle/gradle/pull/27420") .documentedAt("https://github.com/gradle/gradle/pull/27420")

View File

@@ -59,8 +59,13 @@ public class WorkerDaemonClientsManagerHelper {
return Collections.emptyList(); return Collections.emptyList();
}; };
//noinspection unchecked try {
manager.selectIdleClientsToStop((Transformer) transformer); Method selectIdleClientsToStop = manager.getClass().getDeclaredMethod("selectIdleClientsToStop", Transformer.class);
selectIdleClientsToStop.setAccessible(true);
selectIdleClientsToStop.invoke(manager, transformer);
} catch (InvocationTargetException | NoSuchMethodException | IllegalAccessException e) {
throw new RuntimeException("Failed to selectIdleClientsToStop", e);
}
return stopped.get(); return stopped.get();
} }

View File

@@ -44,7 +44,7 @@ class FabricAPITest extends Specification implements GradleProjectTestTrait {
setup: setup:
def gradle = gradleProject( def gradle = gradleProject(
repo: "https://github.com/FabricMC/fabric.git", repo: "https://github.com/FabricMC/fabric.git",
commit: "efa5891941a32589207dc58c2e77183d599465b8", commit: "41bc64cd617f03d49ecc4a4f7788cb65d465415c",
version: version, version: version,
patch: "fabric_api" patch: "fabric_api"
) )
@@ -62,10 +62,10 @@ class FabricAPITest extends Specification implements GradleProjectTestTrait {
// Change the plugin used // Change the plugin used
gradle.buildGradle.text = gradle.buildGradle.text gradle.buildGradle.text = gradle.buildGradle.text
.replace('id "fabric-loom" version "1.4.1"', 'id "dev.architectury.loom"') .replace('id "fabric-loom" version "1.6.11"', 'id "dev.architectury.loom"')
.replace('"fabric-loom"', '"dev.architectury.loom"') + mixinApPatch .replace('"fabric-loom"', '"dev.architectury.loom"') + mixinApPatch
def minecraftVersion = "23w51b" def minecraftVersion = "1.21"
def server = ServerRunner.create(gradle.projectDir, minecraftVersion) def server = ServerRunner.create(gradle.projectDir, minecraftVersion)
.withMod(gradle.getOutputFile("fabric-api-999.0.0.jar")) .withMod(gradle.getOutputFile("fabric-api-999.0.0.jar"))

View File

@@ -28,7 +28,6 @@ import java.nio.file.Path
import java.util.concurrent.CompletableFuture import java.util.concurrent.CompletableFuture
import java.util.concurrent.TimeUnit import java.util.concurrent.TimeUnit
import org.gradle.api.JavaVersion
import org.gradle.api.Plugin import org.gradle.api.Plugin
import org.gradle.api.Project import org.gradle.api.Project
import org.gradle.cache.FileLockManager import org.gradle.cache.FileLockManager
@@ -39,6 +38,7 @@ import org.gradle.internal.nativeintegration.services.NativeServices
import org.gradle.internal.remote.internal.inet.InetAddressFactory import org.gradle.internal.remote.internal.inet.InetAddressFactory
import org.gradle.internal.service.ServiceRegistry import org.gradle.internal.service.ServiceRegistry
import org.gradle.invocation.DefaultGradle import org.gradle.invocation.DefaultGradle
import org.gradle.jvm.toolchain.JavaLanguageVersion
import org.gradle.launcher.daemon.configuration.DaemonParameters import org.gradle.launcher.daemon.configuration.DaemonParameters
import org.gradle.launcher.daemon.context.DefaultDaemonContext import org.gradle.launcher.daemon.context.DefaultDaemonContext
import org.gradle.launcher.daemon.protocol.DaemonMessageSerializer import org.gradle.launcher.daemon.protocol.DaemonMessageSerializer
@@ -109,7 +109,7 @@ class TestPlugin implements Plugin<Project> {
return new DefaultDaemonContext( return new DefaultDaemonContext(
UUID.randomUUID().toString(), UUID.randomUUID().toString(),
new File("."), new File("."),
JavaVersion.current(), JavaLanguageVersion.current(),
new File("."), new File("."),
ProcessHandle.current().pid(), ProcessHandle.current().pid(),
0, 0,

View File

@@ -29,6 +29,7 @@ import groovy.transform.Immutable
import org.apache.commons.io.FileUtils import org.apache.commons.io.FileUtils
import org.gradle.testkit.runner.BuildResult import org.gradle.testkit.runner.BuildResult
import org.gradle.testkit.runner.GradleRunner import org.gradle.testkit.runner.GradleRunner
import org.gradle.util.GradleVersion
import spock.lang.Shared import spock.lang.Shared
import net.fabricmc.loom.test.LoomTestConstants import net.fabricmc.loom.test.LoomTestConstants
@@ -201,7 +202,8 @@ trait GradleProjectTestTrait {
.withPluginClasspath() .withPluginClasspath()
.withGradleVersion(gradleVersion) .withGradleVersion(gradleVersion)
.forwardOutput() .forwardOutput()
.withDebug(enableDebugging) // Only enable debugging when the current gradle version matches the version we are testing
.withDebug(enableDebugging && gradleVersion == GradleVersion.current().getVersion())
} }
File getProjectDir() { File getProjectDir() {

View File

@@ -1,6 +1,6 @@
diff --git a/build.gradle b/build.gradle diff --git a/build.gradle b/build.gradle
--- a/build.gradle (revision 23e8616e7457d7d4a65119b93952d134607ffc5c) --- a/build.gradle (revision 41bc64cd617f03d49ecc4a4f7788cb65d465415c)
+++ b/build.gradle (date 1699535194191) +++ b/build.gradle (date 1718312645477)
@@ -13,7 +13,7 @@ @@ -13,7 +13,7 @@
def ENV = System.getenv() def ENV = System.getenv()
@@ -9,8 +9,8 @@ diff --git a/build.gradle b/build.gradle
+version = "999.0.0" +version = "999.0.0"
logger.lifecycle("Building Fabric: " + version) logger.lifecycle("Building Fabric: " + version)
def metaProjects = [
@@ -22,24 +22,7 @@ @@ -34,24 +34,7 @@
import org.apache.commons.codec.digest.DigestUtils import org.apache.commons.codec.digest.DigestUtils
def getSubprojectVersion(project) { def getSubprojectVersion(project) {

View File

@@ -3,9 +3,9 @@ org.gradle.jvmargs=-Xmx1G
# Fabric Properties # Fabric Properties
# check these on https://fabricmc.net/use # check these on https://fabricmc.net/use
minecraft_version=1.16.5 minecraft_version=1.20.4
yarn_mappings=1.16.5+build.6 yarn_mappings=1.20.4+build.3
loader_version=0.11.3 loader_version=0.15.11
# Mod Properties # Mod Properties
mod_version = 1.0.0 mod_version = 1.0.0

View File

@@ -3,9 +3,9 @@ org.gradle.jvmargs=-Xmx1G
# Fabric Properties # Fabric Properties
# check these on https://fabricmc.net/use # check these on https://fabricmc.net/use
minecraft_version=1.16.5 minecraft_version=1.20.4
yarn_mappings=1.16.5+build.6 yarn_mappings=1.20.4+build.3
loader_version=0.11.3 loader_version=0.15.11
# Mod Properties # Mod Properties
mod_version = 1.0.0 mod_version = 1.0.0

View File

@@ -44,7 +44,7 @@ version = "1.0.0"
dependencies { dependencies {
minecraft "com.mojang:minecraft:1.18.1" minecraft "com.mojang:minecraft:1.18.1"
mappings "net.fabricmc:yarn:1.18.1+build.12:v2" mappings "net.fabricmc:yarn:1.18.1+build.12:v2"
modImplementation "net.fabricmc:fabric-loader:0.12.12" modImplementation "net.fabricmc:fabric-loader:0.15.11"
} }
base { base {