Skip to content

Commit 16b41e7

Browse files
committed
Release NG 7.1. Closes #278
1 parent 4e55a01 commit 16b41e7

248 files changed

Lines changed: 2563 additions & 7637 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/build-prs.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,5 +19,5 @@ jobs:
1919
build:
2020
uses: neoforged/actions/.github/workflows/build-prs.yml@main
2121
with:
22-
java: 8
22+
java: 17
2323
gradle_tasks: assemble

.github/workflows/release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ jobs:
1515
release:
1616
uses: neoforged/actions/.github/workflows/gradle-publish.yml@main
1717
with:
18-
java: 8
18+
java: 17
1919
gradle_tasks: publish
2020
secrets:
2121
DISCORD_WEBHOOK: ${{ secrets.DISCORD_WEBHOOK }}

README.md

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -510,7 +510,10 @@ using [Gradle properties](https://docs.gradle.org/current/userguide/project_prop
510510
| `neogradle.subsystems.recompiler.args` | Pass additional command line arguments to the Java compiler. |
511511
| `neogradle.subsystems.recompiler.shouldFork` | Indicates whether or not a process fork should be used for the recompiler. (Default is true). |
512512

513-
## Run specific dependency management
513+
## <a id="common-dep-run-specific-dependency-management" /> Run specific dependency management
514+
> [!WARNING]
515+
> Minecraft Version 21.9 and later do not need Run Specific dependency management anymore. Please remove your gradle code. It is not used by NeoGradle anymore to configure NeoForge or FML
516+
514517
This implements run specific dependency management for the classpath of a run.
515518
In the past this had to happen via a manual modification of the "minecraft_classpath" token, however tokens don't exist anymore as a component that can be configured on a run.
516519
It was as such not possible to add none FML aware libraries to your classpath of a run.

build.gradle

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,16 @@ import org.gradle.util.GradleVersion
44
plugins {
55
id 'eclipse'
66
id 'maven-publish'
7-
id 'org.cadixdev.licenser' version '0.6.1'
8-
id 'net.neoforged.gradleutils' version '3.0.0-alpha.10'
7+
id 'net.neoforged.licenser' version '0.7.5'
8+
id 'net.neoforged.gradleutils' version '5.0.1'
99
}
1010

1111
gradleutils {
1212
version {
1313
branches {
1414
suffixBranch()
1515
suffixExemptedBranch('NG_7.0')
16+
suffixExemptedBranch('NG_7.1')
1617
}
1718
}
1819
}
@@ -90,14 +91,15 @@ subprojects.forEach { Project subProject ->
9091
repository.name 'NeoForged'
9192
repository.url = 'https://maven.neoforged.net/releases'
9293
}
94+
subProject.repositories.mavenCentral()
9395
subProject.repositories.gradlePluginPortal()
9496

9597
//Basic dependencies: Jetbrains Annotations, JUnit and Mockito for now.
9698
subProject.dependencies.api "org.jetbrains:annotations:${project.jetbrains_annotations_version}"
9799
subProject.dependencies.testImplementation "org.junit.jupiter:junit-jupiter-api:${project.junit_version}"
98-
subProject.dependencies.testImplementation "org.junit.jupiter:junit-jupiter-params:${project.junit_version}"
99100
subProject.dependencies.testImplementation "org.junit.jupiter:junit-jupiter-engine:${project.junit_version}"
100-
subProject.dependencies.testImplementation "org.junit.platform:junit-platform-engine:${project.junit_platform_version}"
101+
subProject.dependencies.testRuntimeOnly "org.junit.platform:junit-platform-launcher"
102+
subProject.dependencies.testImplementation "org.junit.jupiter:junit-jupiter-params:${project.junit_version}"
101103
subProject.dependencies.testImplementation "org.mockito:mockito-junit-jupiter:${project.mockito_version}"
102104
subProject.dependencies.testImplementation "org.mockito:mockito-core:${project.mockito_version}"
103105
subProject.dependencies.testImplementation "org.mockito:mockito-inline:${project.mockito_version}"
@@ -131,6 +133,7 @@ subprojects.forEach { Project subProject ->
131133

132134
//Run tests in parallel
133135
subProject.test {
136+
useJUnitPlatform()
134137
maxParallelForks = Runtime.runtime.availableProcessors() - 1
135138
}
136139

@@ -170,7 +173,9 @@ subprojects.forEach { subProject ->
170173

171174
//All dependencies needed to run the functional tests.
172175
evalSubProject.dependencies.functionalTestImplementation subProject.dependencies.gradleTestKit()
173-
evalSubProject.dependencies.functionalTestImplementation "org.junit.jupiter:junit-jupiter:${project.junit_version}"
176+
evalSubProject.dependencies.functionalTestImplementation "org.junit.jupiter:junit-jupiter-api:${project.junit_version}"
177+
evalSubProject.dependencies.functionalTestImplementation "org.junit.jupiter:junit-jupiter-engine:${project.junit_version}"
178+
evalSubProject.dependencies.functionalTestRuntimeOnly "org.junit.platform:junit-platform-launcher"
174179
evalSubProject.dependencies.functionalTestImplementation("org.spockframework:spock-core:${project.spock_version}-groovy-${project.groovy_version}") { spec ->
175180
spec.exclude group: 'org.codehaus.groovy'
176181
}
@@ -215,6 +220,8 @@ subprojects.forEach { subProject ->
215220

216221
//Run task which will run the functional tests.
217222
evalSubProject.tasks.register('functionalTest', Test) {
223+
useJUnitPlatform()
224+
218225
group 'verification'
219226

220227
testClassesDirs = evalSubProject.sourceSets.functionalTest.output.classesDirs

common/build.gradle

Lines changed: 0 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,11 +16,6 @@ sourceSets {
1616
dependencies {
1717
api project(':utils')
1818
api project(':dsl-common')
19-
api (project(':eclipse')) {
20-
capabilities {
21-
requireCapability('net.neoforged.gradle:eclipse-impl')
22-
}
23-
}
2419

2520
api "commons-io:commons-io:${project.commons_io_version}"
2621
api "com.google.code.gson:gson:${project.gson_version}"

common/src/main/java/net/neoforged/gradle/common/CommonProjectPlugin.java

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
import net.neoforged.gradle.common.interfaceinjection.InterfaceInjectionPublishing;
1414
import net.neoforged.gradle.common.rules.LaterAddedReplacedDependencyRule;
1515
import net.neoforged.gradle.common.runs.ide.IdeRunIntegrationManager;
16+
import net.neoforged.gradle.common.runs.run.RunImpl;
1617
import net.neoforged.gradle.common.runs.run.RunManagerImpl;
1718
import net.neoforged.gradle.common.runs.run.RunTypeManagerImpl;
1819
import net.neoforged.gradle.common.runs.tasks.RunsReport;
@@ -36,7 +37,6 @@
3637
import net.neoforged.gradle.dsl.common.runs.run.RunManager;
3738
import net.neoforged.gradle.dsl.common.runs.type.RunTypeManager;
3839
import net.neoforged.gradle.dsl.common.util.NamingConstants;
39-
import net.neoforged.gradle.eclipse.EclipseMetadataReader;
4040
import net.neoforged.gradle.util.UrlConstants;
4141
import org.gradle.api.Plugin;
4242
import org.gradle.api.Project;
@@ -162,9 +162,6 @@ public void apply(Project project) {
162162
ConventionConfigurator.configureConventions(project);
163163

164164
project.afterEvaluate(this::applyAfterEvaluate);
165-
166-
//EMR Init
167-
EclipseMetadataReader.init(project);
168165
}
169166

170167
private void applyAfterEvaluate(final Project project) {
@@ -175,6 +172,12 @@ private void applyAfterEvaluate(final Project project) {
175172
run,
176173
!runs.getNames().contains(run.getName()) //Internal runs are not directly registered, so they don't show up in the name list.
177174
));
175+
//Second loop over all internal and public runs to validate their configuration and emit warnings.
176+
runs.realizeAll(run -> {
177+
if (run instanceof RunImpl runImpl) {
178+
runImpl.performSdkValidation();
179+
}
180+
});
178181
IdeRunIntegrationManager.getInstance().apply(project);
179182
}
180183
}

common/src/main/java/net/neoforged/gradle/common/dependency/ExtraJarDependencyManager.java

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -94,13 +94,9 @@ private ReplacementResult generateReplacement(final Project project, final Depen
9494

9595
final TaskProvider<GenerateExtraJar> extraJarTaskProvider = project.getTasks().register("create" + minecraftVersion + StringUtils.capitalize(dependency.getName()) + "ExtraJar", GenerateExtraJar.class, task -> {
9696
task.getOriginalJar().set(tasks.get(GameArtifact.CLIENT_JAR).flatMap(WithOutput::getOutput));
97-
task.getServerJar().set(tasks.get(GameArtifact.SERVER_JAR).flatMap(WithOutput::getOutput));
97+
task.getServerJar().set(tasks.get(GameArtifact.EXTRACTED_SERVER_JAR).flatMap(WithOutput::getOutput));
9898
task.getMappings().set(tasks.get(GameArtifact.CLIENT_MAPPINGS).flatMap(WithOutput::getOutput));
9999
task.getOutput().set(project.getLayout().getBuildDirectory().dir("jars/extra/" + dependency.getName()).map(cacheDir -> cacheDir.dir(Objects.requireNonNull(minecraftVersion)).file( dependency.getName() + "-extra.jar")));
100-
101-
task.dependsOn(tasks.get(GameArtifact.CLIENT_JAR));
102-
task.dependsOn(tasks.get(GameArtifact.SERVER_JAR));
103-
task.dependsOn(tasks.get(GameArtifact.CLIENT_MAPPINGS));
104100
});
105101

106102
return new ReplacementResult(

common/src/main/java/net/neoforged/gradle/common/extensions/ConfigurationDataExtension.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
package net.neoforged.gradle.common.extensions;
22

3-
import net.minecraftforge.gdi.ConfigurableDSLElement;
3+
import net.neoforged.gdi.ConfigurableDSLElement;
44
import net.neoforged.gradle.dsl.common.extensions.ConfigurationData;
55
import org.gradle.api.Project;
66

common/src/main/java/net/neoforged/gradle/common/extensions/MappingsExtension.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
package net.neoforged.gradle.common.extensions;
22

33
import groovy.lang.MissingMethodException;
4-
import net.minecraftforge.gdi.ConfigurableDSLElement;
4+
import net.neoforged.gdi.ConfigurableDSLElement;
55
import net.neoforged.gradle.dsl.common.extensions.Mappings;
66
import net.neoforged.gradle.dsl.common.extensions.Minecraft;
77
import net.neoforged.gradle.dsl.common.util.NamingConstants;

common/src/main/java/net/neoforged/gradle/common/extensions/MinecraftArtifactCacheExtension.java

Lines changed: 19 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,11 +3,10 @@
33
import com.google.common.collect.ImmutableMap;
44
import com.google.gson.JsonElement;
55
import com.google.gson.JsonObject;
6-
import net.minecraftforge.gdi.ConfigurableDSLElement;
6+
import net.neoforged.gdi.ConfigurableDSLElement;
77
import net.neoforged.gradle.common.tasks.MinecraftVersionManifestFileCacheProvider;
88
import net.neoforged.gradle.common.util.FileCacheUtils;
99
import net.neoforged.gradle.common.util.FileDownloadingUtils;
10-
import net.neoforged.gradle.common.util.MinecraftArtifactType;
1110
import net.neoforged.gradle.common.util.SerializationUtils;
1211
import net.neoforged.gradle.dsl.common.extensions.MinecraftArtifactCache;
1312
import net.neoforged.gradle.dsl.common.tasks.WithOutput;
@@ -99,10 +98,24 @@ public final Map<GameArtifact, TaskProvider<? extends WithOutput>> cacheGameVers
9998
final TaskProvider<MinecraftVersionManifestFileCacheProvider> manifest = FileCacheUtils.createVersionManifestFileCacheProvidingTask(project, resolvedVersion);
10099

101100
GameArtifact.VERSION_MANIFEST.doWhenRequired(side, () -> results.put(GameArtifact.VERSION_MANIFEST, manifest));
102-
GameArtifact.CLIENT_JAR.doWhenRequired(side, () -> results.put(GameArtifact.CLIENT_JAR, FileCacheUtils.createArtifactFileCacheProvidingTask(project, resolvedVersion.getVersion(), DistributionType.CLIENT, MinecraftArtifactType.EXECUTABLE, manifest, results.values())));
103-
GameArtifact.SERVER_JAR.doWhenRequired(side, () -> results.put(GameArtifact.SERVER_JAR, FileCacheUtils.createArtifactFileCacheProvidingTask(project, resolvedVersion.getVersion(), DistributionType.SERVER, MinecraftArtifactType.EXECUTABLE, manifest, results.values())));
104-
GameArtifact.CLIENT_MAPPINGS.doWhenRequired(side, () -> results.put(GameArtifact.CLIENT_MAPPINGS, FileCacheUtils.createArtifactFileCacheProvidingTask(project, resolvedVersion.getVersion(), DistributionType.CLIENT, MinecraftArtifactType.MAPPINGS, manifest, results.values())));
105-
GameArtifact.SERVER_MAPPINGS.doWhenRequired(side, () -> results.put(GameArtifact.SERVER_MAPPINGS, FileCacheUtils.createArtifactFileCacheProvidingTask(project, resolvedVersion.getVersion(), DistributionType.SERVER, MinecraftArtifactType.MAPPINGS, manifest, results.values())));
101+
GameArtifact.CLIENT_JAR.doWhenRequired(side, () -> results.put(GameArtifact.CLIENT_JAR, FileCacheUtils.createArtifactFileCacheProvidingTask(project, resolvedVersion.getVersion(), GameArtifact.CLIENT_JAR, manifest)));
102+
GameArtifact.SERVER_JAR.doWhenRequired(side, () -> results.put(GameArtifact.SERVER_JAR, FileCacheUtils.createArtifactFileCacheProvidingTask(project, resolvedVersion.getVersion(), GameArtifact.SERVER_JAR, manifest)));
103+
GameArtifact.CLIENT_MAPPINGS.doWhenRequired(side, () -> results.put(GameArtifact.CLIENT_MAPPINGS, FileCacheUtils.createArtifactFileCacheProvidingTask(project, resolvedVersion.getVersion(), GameArtifact.CLIENT_MAPPINGS, manifest)));
104+
GameArtifact.SERVER_MAPPINGS.doWhenRequired(side, () -> results.put(GameArtifact.SERVER_MAPPINGS, FileCacheUtils.createArtifactFileCacheProvidingTask(project, resolvedVersion.getVersion(), GameArtifact.SERVER_MAPPINGS, manifest)));
105+
106+
GameArtifact.EXTRACTED_SERVER_JAR.doWhenRequired(side, () -> {
107+
if (!results.containsKey(GameArtifact.SERVER_JAR))
108+
throw new RuntimeException("Invalid configuration, for an extracted server jar, a wrapped server jar is required!");
109+
110+
final TaskProvider<? extends WithOutput> bundledServerProvider = results.get(GameArtifact.SERVER_JAR);
111+
112+
results.put(GameArtifact.EXTRACTED_SERVER_JAR, FileCacheUtils.createExtractedServerFileCacheProvidingTask(
113+
project,
114+
gameVersion,
115+
GameArtifact.EXTRACTED_SERVER_JAR,
116+
bundledServerProvider
117+
));
118+
});
106119

107120
return results;
108121
});

0 commit comments

Comments
 (0)