diff options
35 files changed, 89 insertions, 46 deletions
diff --git a/bootstrap/test-project/build.gradle b/bootstrap/test-project/build.gradle index ab88e467..578e50ab 100644 --- a/bootstrap/test-project/build.gradle +++ b/bootstrap/test-project/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' version '0.10.local' + id 'gg.essential.loom' version '0.10.local' } dependencies { diff --git a/build.gradle b/build.gradle index d88a512c..3406ac51 100644 --- a/build.gradle +++ b/build.gradle @@ -21,7 +21,7 @@ tasks.withType(JavaCompile).configureEach { it.options.release = 16 } -group = "dev.architectury" +group = "gg.essential" archivesBaseName = project.name def baseVersion = '0.10.0' def runNumber = System.getenv("GITHUB_RUN_NUMBER") ?: "9999" @@ -192,7 +192,7 @@ codenarc { gradlePlugin { plugins { fabricLoom { - id = 'dev.architectury.loom' + id = 'gg.essential.loom' implementationClass = 'net.fabricmc.loom.bootstrap.LoomGradlePluginBootstrap' } } @@ -228,8 +228,8 @@ import org.w3c.dom.Node publishing { publications { plugin(MavenPublication) { - groupId 'dev.architectury.loom' - artifactId 'dev.architectury.loom.gradle.plugin' + groupId 'gg.essential.loom' + artifactId 'gg.essential.loom.gradle.plugin' from components.java artifact downgradeJava @@ -260,8 +260,8 @@ publishing { } pluginSnapshot(MavenPublication) { - groupId 'dev.architectury.loom' - artifactId 'dev.architectury.loom.gradle.plugin' + groupId 'gg.essential.loom' + artifactId 'gg.essential.loom.gradle.plugin' version baseVersion + '-SNAPSHOT' pom.withXml { @@ -281,12 +281,13 @@ publishing { } repositories { - if (System.getenv("MAVEN_PASS") != null) { + if (project.hasProperty("nexus_user")) { maven { - url = "https://deploy.shedaniel.me/" + url = "https://repo.sk1er.club/repository/maven-releases/" + name = "nexus-public" credentials { - username = "shedaniel" - password = System.getenv("MAVEN_PASS") + username = project.property("nexus_user").toString() + password = project.property("nexus_password").toString() } } } diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java b/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java index f11907dc..d74238b5 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/forge/MinecraftPatchedProvider.java @@ -101,7 +101,7 @@ import net.fabricmc.mappingio.tree.MemoryMappingTree; public class MinecraftPatchedProvider extends DependencyProvider { private static final String LOOM_PATCH_VERSION_KEY = "Loom-Patch-Version"; - private static final String CURRENT_LOOM_PATCH_VERSION = "5"; + private static final String CURRENT_LOOM_PATCH_VERSION = "5+essential.2"; private static final String NAME_MAPPING_SERVICE_PATH = "/inject/META-INF/services/cpw.mods.modlauncher.api.INameMappingService"; // Step 1: Remap Minecraft to SRG (global) diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java index 3be857bd..fef7849b 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/MappingsProviderImpl.java @@ -285,7 +285,7 @@ public class MappingsProviderImpl extends DependencyProvider implements Mappings String yarnMinecraftVersion = yarnVersion.substring(0, yarnVersion.lastIndexOf(separator)); if (!yarnMinecraftVersion.equalsIgnoreCase(minecraftVersion)) { - throw new RuntimeException(String.format("Minecraft Version (%s) does not match yarn's minecraft version (%s)", minecraftVersion, yarnMinecraftVersion)); + getProject().getLogger().warn("Minecraft Version ({}) does not match yarn's minecraft version ({})", minecraftVersion, yarnMinecraftVersion); } // We can save reading the zip file + header by checking the file name diff --git a/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java b/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java index c393f997..335c6fba 100644 --- a/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java +++ b/src/main/java/net/fabricmc/loom/configuration/sources/ForgeSourcesRemapper.java @@ -28,9 +28,12 @@ import java.io.File; import java.io.IOException; import java.io.PrintStream; import java.io.UncheckedIOException; +import java.nio.file.FileVisitResult; import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.SimpleFileVisitor; import java.nio.file.StandardOpenOption; +import java.nio.file.attribute.BasicFileAttributes; import java.util.ArrayList; import java.util.HashSet; import java.util.List; @@ -39,6 +42,7 @@ import java.util.Set; import java.util.concurrent.ConcurrentHashMap; import java.util.function.BiConsumer; import java.util.stream.Collectors; +import java.util.stream.IntStream; import org.apache.commons.io.output.NullOutputStream; import org.cadixdev.lorenz.MappingSet; @@ -246,6 +250,7 @@ public class ForgeSourcesRemapper { try (FileSystemUtil.Delegate outputFs = FileSystemUtil.getJarFileSystem(tmpOutput, true)) { Path outputFsRoot = outputFs.get().getPath("/"); mercury.rewrite(tmpInput, outputFsRoot); + fixupLineNumbers(tmpInput, outputFsRoot); } catch (Exception e) { project.getLogger().warn("Could not remap " + tmpInput + " fully!", e); } @@ -273,4 +278,41 @@ public class ForgeSourcesRemapper { taskCompleter.complete(); return sources; } + + /** + * Mercury re-organizes imports during remapping, which can result in mismatching line information when debugging. + * This method works around the issue by forcefully re-aligning the output files with the input files by inserting + * empty lines or joining multiple lines into one. + */ + private static void fixupLineNumbers(Path srcRoot, Path outRoot) throws IOException { + Files.walkFileTree(srcRoot, new SimpleFileVisitor<>() { + @Override + public FileVisitResult visitFile(Path srcPath, BasicFileAttributes attrs) throws IOException { + Path outPath = outRoot.resolve(srcRoot.relativize(srcPath).toString()); + List<String> src = Files.readAllLines(srcPath); + List<String> out = Files.readAllLines(outPath); + int lastSrc = IntStream.range(0, src.size()).filter(i -> src.get(i).startsWith("import")).max().orElse(0); + int lastOut = IntStream.range(0, out.size()).filter(i -> out.get(i).startsWith("import")).max().orElse(0); + + if (lastSrc == lastOut) { + return FileVisitResult.CONTINUE; + } + + while (lastOut < lastSrc) { + out.add(lastOut + 1, ""); + lastOut++; + } + + while (lastSrc < lastOut && lastOut > 0) { + out.set(lastOut - 1, out.get(lastOut - 1) + out.get(lastOut)); + out.remove(lastOut); + lastOut--; + } + + Files.write(outPath, out); + + return FileVisitResult.CONTINUE; + } + }); + } } diff --git a/src/main/java/net/fabricmc/loom/task/ValidateAccessWidenerTask.java b/src/main/java/net/fabricmc/loom/task/ValidateAccessWidenerTask.java index 7fc9d227..a23bd92e 100644 --- a/src/main/java/net/fabricmc/loom/task/ValidateAccessWidenerTask.java +++ b/src/main/java/net/fabricmc/loom/task/ValidateAccessWidenerTask.java @@ -58,7 +58,7 @@ public abstract class ValidateAccessWidenerTask extends DefaultTask { final LoomGradleExtension extension = LoomGradleExtension.get(getProject()); getAccessWidener().convention(extension.getAccessWidenerPath()).finalizeValueOnRead(); - getTargetJar().convention(getProject().getObjects().fileProperty().fileValue(extension.getMinecraftMappedProvider().getMappedJar())).finalizeValueOnRead(); + getTargetJar().convention(getProject().getLayout().file(getProject().provider(() -> extension.getMinecraftMappedProvider().getMappedJar()))).finalizeValueOnRead(); } @TaskAction diff --git a/src/main/java/net/fabricmc/loom/util/Constants.java b/src/main/java/net/fabricmc/loom/util/Constants.java index 2ce96c46..75242026 100644 --- a/src/main/java/net/fabricmc/loom/util/Constants.java +++ b/src/main/java/net/fabricmc/loom/util/Constants.java @@ -34,7 +34,7 @@ import net.fabricmc.loom.configuration.RemappedConfigurationEntry; import net.fabricmc.loom.configuration.RemappedConfigurationEntry.PublishingMode; public class Constants { - public static final String PLUGIN_ID = "dev.architectury.loom"; + public static final String PLUGIN_ID = "gg.essential.loom"; public static final String LIBRARIES_BASE = "https://libraries.minecraft.net/"; public static final String RESOURCES_BASE = "https://resources.download.minecraft.net/"; public static final String VERSION_MANIFESTS = "https://launchermeta.mojang.com/mc/game/version_manifest_v2.json"; diff --git a/src/test/groovy/net/fabricmc/loom/test/integration/FabricAPITest.groovy b/src/test/groovy/net/fabricmc/loom/test/integration/FabricAPITest.groovy index 3ce59710..d5adb19d 100644 --- a/src/test/groovy/net/fabricmc/loom/test/integration/FabricAPITest.groovy +++ b/src/test/groovy/net/fabricmc/loom/test/integration/FabricAPITest.groovy @@ -51,8 +51,8 @@ class FabricAPITest extends Specification implements GradleProjectTestTrait { // Set the version to something constant gradle.buildGradle.text = gradle.buildGradle.text.replace('project.version + "+" + (ENV.GITHUB_RUN_NUMBER ? "" : "local-") + getBranch()', "\"$API_VERSION\"") - .replace('id "fabric-loom" version "0.9.50"', 'id "dev.architectury.loom"') - .replace('"fabric-loom"', '"dev.architectury.loom"') + .replace('id "fabric-loom" version "0.9.50"', 'id "gg.essential.loom"') + .replace('"fabric-loom"', '"gg.essential.loom"') def server = ServerRunner.create(gradle.projectDir, "1.17.1") .withMod(gradle.getOutputFile("fabric-api-${API_VERSION}.jar")) diff --git a/src/test/resources/projects/accesswidener/build.gradle b/src/test/resources/projects/accesswidener/build.gradle index bff5b7e4..c2485394 100644 --- a/src/test/resources/projects/accesswidener/build.gradle +++ b/src/test/resources/projects/accesswidener/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/decompile/build.gradle b/src/test/resources/projects/decompile/build.gradle index bd5d5bca..24fcfff0 100644 --- a/src/test/resources/projects/decompile/build.gradle +++ b/src/test/resources/projects/decompile/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' } dependencies { diff --git a/src/test/resources/projects/dependencyResolutionManagement/basic/build.gradle b/src/test/resources/projects/dependencyResolutionManagement/basic/build.gradle index 3e70aeac..81cff2ed 100644 --- a/src/test/resources/projects/dependencyResolutionManagement/basic/build.gradle +++ b/src/test/resources/projects/dependencyResolutionManagement/basic/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/dependencyResolutionManagement/projmap/build.gradle b/src/test/resources/projects/dependencyResolutionManagement/projmap/build.gradle index 0dbb633a..3e112572 100644 --- a/src/test/resources/projects/dependencyResolutionManagement/projmap/build.gradle +++ b/src/test/resources/projects/dependencyResolutionManagement/projmap/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/dependencyResolutionManagement/settings.gradle b/src/test/resources/projects/dependencyResolutionManagement/settings.gradle index 811c3988..5e1ebe9a 100644 --- a/src/test/resources/projects/dependencyResolutionManagement/settings.gradle +++ b/src/test/resources/projects/dependencyResolutionManagement/settings.gradle @@ -1,11 +1,11 @@ pluginManagement { plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' } } plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' } dependencyResolutionManagement { diff --git a/src/test/resources/projects/forge/aw2At/build.gradle b/src/test/resources/projects/forge/aw2At/build.gradle index 81ff4b9b..56d04a9a 100644 --- a/src/test/resources/projects/forge/aw2At/build.gradle +++ b/src/test/resources/projects/forge/aw2At/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/forge/legacyAw2AtMojmap/build.gradle b/src/test/resources/projects/forge/legacyAw2AtMojmap/build.gradle index 1b319a1b..aa3934cf 100644 --- a/src/test/resources/projects/forge/legacyAw2AtMojmap/build.gradle +++ b/src/test/resources/projects/forge/legacyAw2AtMojmap/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/forge/legacyAw2AtYarn/build.gradle b/src/test/resources/projects/forge/legacyAw2AtYarn/build.gradle index 3e532cb5..1ebb085b 100644 --- a/src/test/resources/projects/forge/legacyAw2AtYarn/build.gradle +++ b/src/test/resources/projects/forge/legacyAw2AtYarn/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/forge/simple/build.gradle b/src/test/resources/projects/forge/simple/build.gradle index 2e1d7582..aa7501c7 100644 --- a/src/test/resources/projects/forge/simple/build.gradle +++ b/src/test/resources/projects/forge/simple/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/java16/build.gradle b/src/test/resources/projects/java16/build.gradle index 582d5fea..556b8974 100644 --- a/src/test/resources/projects/java16/build.gradle +++ b/src/test/resources/projects/java16/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/kotlin/build.gradle.kts b/src/test/resources/projects/kotlin/build.gradle.kts index b248cb06..84e2a504 100644 --- a/src/test/resources/projects/kotlin/build.gradle.kts +++ b/src/test/resources/projects/kotlin/build.gradle.kts @@ -2,7 +2,7 @@ import java.util.Properties plugins { kotlin("jvm") version "1.5.21" - id("dev.architectury.loom") + id("gg.essential.loom") } java { diff --git a/src/test/resources/projects/legacy/build.gradle b/src/test/resources/projects/legacy/build.gradle index 9e690447..83084598 100644 --- a/src/test/resources/projects/legacy/build.gradle +++ b/src/test/resources/projects/legacy/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' } sourceCompatibility = JavaVersion.VERSION_1_8 diff --git a/src/test/resources/projects/localFileDependency/build.gradle b/src/test/resources/projects/localFileDependency/build.gradle index 943bf108..e977cd76 100644 --- a/src/test/resources/projects/localFileDependency/build.gradle +++ b/src/test/resources/projects/localFileDependency/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/maven/build.gradle b/src/test/resources/projects/maven/build.gradle index 98613ab5..745b2b43 100644 --- a/src/test/resources/projects/maven/build.gradle +++ b/src/test/resources/projects/maven/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/mavenLibrary/build.gradle b/src/test/resources/projects/mavenLibrary/build.gradle index 1573005a..707a9407 100644 --- a/src/test/resources/projects/mavenLibrary/build.gradle +++ b/src/test/resources/projects/mavenLibrary/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/minimalBase/build.gradle b/src/test/resources/projects/minimalBase/build.gradle index b42aa7ff..473d73aa 100644 --- a/src/test/resources/projects/minimalBase/build.gradle +++ b/src/test/resources/projects/minimalBase/build.gradle @@ -1,7 +1,7 @@ // This is used by a range of tests that append to this file before running the gradle tasks. // Can be used for tests that require minimal custom setup plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/mixinApAutoRefmap/build.gradle b/src/test/resources/projects/mixinApAutoRefmap/build.gradle index df55bc40..71611866 100644 --- a/src/test/resources/projects/mixinApAutoRefmap/build.gradle +++ b/src/test/resources/projects/mixinApAutoRefmap/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'com.github.johnrengelman.shadow' version '7.0.0' id 'maven-publish' } diff --git a/src/test/resources/projects/mixinApSimple/build.gradle b/src/test/resources/projects/mixinApSimple/build.gradle index 72f51f63..1a117810 100644 --- a/src/test/resources/projects/mixinApSimple/build.gradle +++ b/src/test/resources/projects/mixinApSimple/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/mojangMappings/build.gradle b/src/test/resources/projects/mojangMappings/build.gradle index 64875128..39675657 100644 --- a/src/test/resources/projects/mojangMappings/build.gradle +++ b/src/test/resources/projects/mojangMappings/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/multiproject/build.gradle b/src/test/resources/projects/multiproject/build.gradle index cebbd2af..6c03a8db 100644 --- a/src/test/resources/projects/multiproject/build.gradle +++ b/src/test/resources/projects/multiproject/build.gradle @@ -1,11 +1,11 @@ plugins { id "java" id "java-library" - id 'dev.architectury.loom' apply false + id 'gg.essential.loom' apply false } allprojects { - apply plugin: "dev.architectury.loom" + apply plugin: "gg.essential.loom" version = "1.0.0" diff --git a/src/test/resources/projects/parchment/build.gradle b/src/test/resources/projects/parchment/build.gradle index 5484a2fb..11386a83 100644 --- a/src/test/resources/projects/parchment/build.gradle +++ b/src/test/resources/projects/parchment/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' } repositories { diff --git a/src/test/resources/projects/reproducible/build.gradle b/src/test/resources/projects/reproducible/build.gradle index 0a19d31e..69884f05 100644 --- a/src/test/resources/projects/reproducible/build.gradle +++ b/src/test/resources/projects/reproducible/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/runconfigs/build.gradle b/src/test/resources/projects/runconfigs/build.gradle index c4a6d3f5..337be50d 100644 --- a/src/test/resources/projects/runconfigs/build.gradle +++ b/src/test/resources/projects/runconfigs/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' } loom { diff --git a/src/test/resources/projects/signed/build.gradle b/src/test/resources/projects/signed/build.gradle index 980e84e1..9d96a56f 100644 --- a/src/test/resources/projects/signed/build.gradle +++ b/src/test/resources/projects/signed/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' id 'signing' } diff --git a/src/test/resources/projects/simple/build.gradle b/src/test/resources/projects/simple/build.gradle index 2201339c..eadd3fe3 100644 --- a/src/test/resources/projects/simple/build.gradle +++ b/src/test/resources/projects/simple/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/transitiveAccesswidener/build.gradle b/src/test/resources/projects/transitiveAccesswidener/build.gradle index 24118140..41646d5e 100644 --- a/src/test/resources/projects/transitiveAccesswidener/build.gradle +++ b/src/test/resources/projects/transitiveAccesswidener/build.gradle @@ -1,7 +1,7 @@ // This is used by a range of tests that append to this file before running the gradle tasks. // Can be used for tests that require minimal custom setup plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' id 'maven-publish' } diff --git a/src/test/resources/projects/unpick/build.gradle b/src/test/resources/projects/unpick/build.gradle index a0d8b223..21b8da1e 100644 --- a/src/test/resources/projects/unpick/build.gradle +++ b/src/test/resources/projects/unpick/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'dev.architectury.loom' + id 'gg.essential.loom' } dependencies { |