Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 5 additions & 3 deletions .github/workflows/build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -17,15 +17,17 @@ jobs:
- name: Checkout repository
uses: neoforged/actions/checkout@main

- name: Setup JDK 21
- name: Setup JDK 25
uses: neoforged/actions/setup-java@main
with:
java-version: 21
java-version: 25

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
cache-read-only: false
# PR builds: read-only cache (don't pollute); main push: read-write (seed the cache)
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
gradle-home-cache-cleanup: true

- name: Test
run: ./gradlew :check
Expand Down
9 changes: 6 additions & 3 deletions .github/workflows/check-for-updates.yml
Original file line number Diff line number Diff line change
Expand Up @@ -22,12 +22,15 @@ jobs:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- name: Setup Java 21
- name: Setup Java 25
uses: neoforged/actions/setup-java@main
with:
java-version: 21
java-version: 25
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v5
uses: gradle/actions/setup-gradle@v4
with:
cache-read-only: true
gradle-home-cache-cleanup: true
# This job will create outputs:
# - release_type ('special' for anything that's not mainline)
# - latest_version
Expand Down
5 changes: 4 additions & 1 deletion .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -30,10 +30,13 @@ jobs:
- name: Setup Java
uses: neoforged/actions/setup-java@main
with:
java-version: 21
java-version: 25

- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
gradle-home-cache-cleanup: true

- name: Compute Project Version
id: get-version
Expand Down
7 changes: 5 additions & 2 deletions .github/workflows/update.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,12 +59,15 @@ jobs:
NEW_VERSION: ${{ inputs.new_version }}
steps:
- uses: actions/checkout@v4
- name: Setup Java 21
- name: Setup Java 25
uses: neoforged/actions/setup-java@main
with:
java-version: 21
java-version: 25
- name: Setup Gradle
uses: gradle/actions/setup-gradle@v4
with:
cache-read-only: ${{ github.ref != 'refs/heads/main' }}
gradle-home-cache-cleanup: true
- name: Create new Branch
if: ${{ inputs.new_branch }}
run: git checkout -b "$NEW_BRANCH" || git checkout -B ${{ inputs.new_branch }} HEAD
Expand Down
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
/.idea
/.gradle
/AGENTS.md
/**/build
/workspace
/plugin/.gradle
Expand Down
8 changes: 7 additions & 1 deletion gradle.properties
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
org.gradle.parallel=true
org.gradle.caching=true
org.gradle.configuration-cache=true
org.gradle.daemon.idletimeout=3600000
org.gradle.vfs.watch=true
org.gradle.tooling.parallel=true

org.gradle.jvmargs=-Xmx2g
org.gradle.jvmargs=-Xmx4g -Dfile.encoding=UTF-8
# Ignore volatile CI paths that can invalidate the configuration cache
org.gradle.configuration-cache.inputs.unsafe.ignore.file-system-checks=\
.gradle/build-output-cache/**
31 changes: 31 additions & 0 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
[versions]
gson = "2.14.0"
gradleDownloadTask = "5.7.0"
diffpatch = "2.1.0.43"
gradleutils = "6.0.0"
foojay = "1.0.0"
moddev = "2.0.142"
mergetool = "2.0.7"
jsr305 = "3.0.2"
annotations = "26.1.0"
javaObjcBridge = "1.2"
installertools = "4.0.17"
vineflower = "1.12.0"
vineflowerPlugins = "0.1.6"
ecj = "3.46.0"

[libraries]
gson = { module = "com.google.code.gson:gson", version.ref = "gson" }
gradleDownloadTask = { module = "de.undercouch:gradle-download-task", version.ref = "gradleDownloadTask" }
diffpatch = { module = "io.codechicken:DiffPatch", version.ref = "diffpatch" }
gradleutils = { module = "net.neoforged.gradleutils:net.neoforged.gradleutils.gradle.plugin", version.ref = "gradleutils" }
foojay = { module = "org.gradle.toolchains.foojay-resolver-convention:org.gradle.toolchains.foojay-resolver-convention.gradle.plugin", version.ref = "foojay" }
moddev = { module = "net.neoforged.moddev:net.neoforged.moddev.gradle.plugin", version.ref = "moddev" }
mergetool = { module = "net.neoforged:mergetool", version.ref = "mergetool" }
jsr305 = { module = "com.google.code.findbugs:jsr305", version.ref = "jsr305" }
annotations = { module = "org.jetbrains:annotations", version.ref = "annotations" }
javaObjcBridge = { module = "ca.weblite:java-objc-bridge", version.ref = "javaObjcBridge" }
installertools = { module = "net.neoforged.installertools:installertools", version.ref = "installertools" }
vineflower = { module = "org.vineflower:vineflower", version.ref = "vineflower" }
vineflowerPlugins = { module = "net.neoforged:vineflower-plugins", version.ref = "vineflowerPlugins" }
ecj = { module = "org.eclipse.jdt:ecj", version.ref = "ecj" }
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
5 changes: 4 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,7 +1,10 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.0-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-9.6.1-all.zip
distributionSha256Sum=61ba77b3ff7167e60962763eb4bae79db7120c189b9544358d0ade3c1e712a83
networkTimeout=10000
retries=0
retryBackOffMs=500
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
6 changes: 3 additions & 3 deletions gradlew

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

35 changes: 12 additions & 23 deletions gradlew.bat

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

32 changes: 0 additions & 32 deletions plugin/build.gradle

This file was deleted.

56 changes: 56 additions & 0 deletions plugin/build.gradle.kts
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
plugins {
java
`java-gradle-plugin`
`maven-publish`
}

group = "net.neoforged.neoform"
version = "1.0-SNAPSHOT"

java {
toolchain {
languageVersion = JavaLanguageVersion.of(25)
}
withSourcesJar()
}

repositories {
mavenCentral()
gradlePluginPortal()
maven("https://maven.neoforged.net/releases/")
}

dependencies {
implementation(libs.gson)
implementation(libs.gradleDownloadTask)
implementation(libs.diffpatch)
implementation(libs.gradleutils)
implementation(libs.foojay)
implementation(libs.moddev)
}

dependencyLocking {
lockMode = LockMode.STRICT
}

gradlePlugin {
website = "https://neoforged.net"
vcsUrl = "https://github.com/neoforged/NeoForm"
plugins {
register("neoFormPlugin") {
id = "net.neoforged.neoform"
implementationClass = "net.neoforged.neoform.NeoFormSettingsPlugin"
displayName = "NeoForm"
description = "Provides recompilable Minecraft source code by decompiling Minecraft jars and applying patches"
tags = listOf("minecraft", "neoforge", "decompiler", "patches")
}
}
}

tasks.withType<JavaCompile>().configureEach {
options.encoding = "UTF-8"
}

tasks.withType<ValidatePlugins>().configureEach {
enableStricterValidation = true
}
15 changes: 15 additions & 0 deletions plugin/gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
[versions]
gson = "2.14.0"
gradleDownloadTask = "5.7.0"
diffpatch = "2.1.0.43"
gradleutils = "6.0.0"
foojay = "1.0.0"
moddev = "2.0.142"

[libraries]
gson = { module = "com.google.code.gson:gson", version.ref = "gson" }
gradleDownloadTask = { module = "de.undercouch:gradle-download-task", version.ref = "gradleDownloadTask" }
diffpatch = { module = "io.codechicken:DiffPatch", version.ref = "diffpatch" }
gradleutils = { module = "net.neoforged.gradleutils:net.neoforged.gradleutils.gradle.plugin", version.ref = "gradleutils" }
foojay = { module = "org.gradle.toolchains.foojay-resolver-convention:org.gradle.toolchains.foojay-resolver-convention.gradle.plugin", version.ref = "foojay" }
moddev = { module = "net.neoforged.moddev:net.neoforged.moddev.gradle.plugin", version.ref = "moddev" }
Original file line number Diff line number Diff line change
Expand Up @@ -179,6 +179,8 @@ public void apply(Project project) {
task.from(project.files("src/patches"), spec -> spec.into("/patches"));
task.getArchiveBaseName().set("neoform");
task.getDestinationDirectory().set(project.getLayout().getBuildDirectory().dir("libs"));
task.setReproducibleFileOrder(true);
task.setPreserveFileTimestamps(false);
});
tasks.named(LifecycleBasePlugin.ASSEMBLE_TASK_NAME).configure(task -> task.dependsOn(createDataZip));
var dataZip = createDataZip.flatMap(Zip::getArchiveFile);
Expand Down Expand Up @@ -289,7 +291,7 @@ private void configureEclipseTestTask(Project project,
Action<NeoFormRuntimeTask> nfrtConfigurer) {

var eclipseCompiler = project.getConfigurations().dependencyScope("eclipseCompiler", spec -> {
spec.getDependencies().add(project.getDependencyFactory().create("org.eclipse.jdt:ecj:3.45.0"));
spec.getDependencies().add(project.getDependencyFactory().create("org.eclipse.jdt:ecj:3.46.0"));
});
var eclipseCompilerClasspath = project.getConfigurations().resolvable("eclipseCompilerClasspath", spec -> {
spec.extendsFrom(eclipseCompiler.get());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -127,6 +127,7 @@ public void apply(Project project) {
task.setDescription("Runs the client for testing.");
task.getMainClass().set("StartClient");
task.setClasspath(clientSourceSet.get().getRuntimeClasspath());
task.jvmArgs("--enable-native-access=ALL-UNNAMED");
});
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -119,7 +119,7 @@ private static String getVersionFromBranchName(String branchName) {
public abstract Property<String> getNeoFormRuntimeVersion();

/**
* The Java versions that the decompile & recompile cycle should be explicitly tested with. Note that
* The Java versions that the decompile &amp; recompile cycle should be explicitly tested with. Note that
* only javac from these JDKs is really used, not the runtime behavior.
*/
public abstract ListProperty<Integer> getTestJavaVersions();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
import org.gradle.api.DefaultTask;
import org.gradle.api.GradleException;
import org.gradle.api.tasks.TaskAction;
import org.gradle.work.DisableCachingByDefault;
import org.gradle.api.tasks.UntrackedTask;

import java.io.BufferedReader;
import java.io.InputStreamReader;
Expand All @@ -17,7 +17,7 @@
import java.util.Comparator;
import java.util.HashMap;

@DisableCachingByDefault(because = "it checks for updates")
@UntrackedTask(because = "Checks for remote updates, never cacheable")
public abstract class CheckForMinecraftUpdate extends DefaultTask {
private final String currentVersion;
private final String manifestUrl;
Expand Down
Loading