From 5ce9fde9b19bce14772d9a77ad09e72ae9627a0a Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Sat, 4 Dec 2021 14:10:12 +0000 Subject: [PATCH 1/5] Start on 0.11 --- bootstrap/test-project/build.gradle | 2 +- build.gradle | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/bootstrap/test-project/build.gradle b/bootstrap/test-project/build.gradle index bdb299eb..f5408dac 100644 --- a/bootstrap/test-project/build.gradle +++ b/bootstrap/test-project/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '0.10.local' + id 'fabric-loom' version '0.11.local' } dependencies { diff --git a/build.gradle b/build.gradle index 8ed0627a..5fa1a1b4 100644 --- a/build.gradle +++ b/build.gradle @@ -22,7 +22,7 @@ tasks.withType(JavaCompile).configureEach { group = 'net.fabricmc' archivesBaseName = project.name -def baseVersion = '0.10' +def baseVersion = '0.11' def ENV = System.getenv() if (ENV.BUILD_NUMBER) { From 337d17bb922b6ff8ca9db37100f0671ce638be40 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Sat, 4 Dec 2021 14:27:36 +0000 Subject: [PATCH 2/5] Java 17 and update libs. Closes #545 --- .github/workflows/publish.yml | 2 +- .github/workflows/test-push.yml | 65 +++---------------- .../bootstrap/LoomGradlePluginBootstrap.java | 2 +- build.gradle | 24 +++---- gradle/wrapper/gradle-wrapper.properties | 2 +- .../net/fabricmc/loom/util/Constants.java | 2 +- .../loom/test/LoomTestConstants.groovy | 2 +- 7 files changed, 25 insertions(+), 74 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index a9c84bf8..eb429ea2 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -8,7 +8,7 @@ jobs: build: runs-on: ubuntu-20.04 container: - image: openjdk:16-jdk + image: openjdk:17-jdk options: --user root steps: - uses: actions/checkout@v1 diff --git a/.github/workflows/test-push.yml b/.github/workflows/test-push.yml index f1c3b4e7..7ef93ccc 100644 --- a/.github/workflows/test-push.yml +++ b/.github/workflows/test-push.yml @@ -5,7 +5,7 @@ jobs: strategy: fail-fast: false matrix: - version: [7.0.0-jdk16, 7.2-jdk17] + version: [7.3.1-jdk17] runs-on: ubuntu-20.04 container: image: gradle:${{ matrix.version }} @@ -22,7 +22,7 @@ jobs: runs-on: ubuntu-20.04 container: - image: gradle:7.0.1-jdk16 + image: gradle:7.3.1-jdk17 options: --user root steps: @@ -41,7 +41,7 @@ jobs: strategy: fail-fast: false matrix: - version: [7.0.0-jdk16, 7.2-jdk17] + version: [7.3.1-jdk17] test: ${{ fromJson(needs.prepare_test_matrix.outputs.matrix) }} runs-on: ubuntu-20.04 @@ -67,10 +67,10 @@ jobs: strategy: fail-fast: false matrix: - java: [16] + java: [17] test: ${{ fromJson(needs.prepare_test_matrix.outputs.matrix) }} - runs-on: windows-2019 + runs-on: windows-2022 steps: - uses: actions/checkout@v2 @@ -95,8 +95,8 @@ jobs: strategy: fail-fast: false matrix: - java: [ 16 ] - os: [ windows-2019, ubuntu-20.04, macos-10.15 ] + java: [ 17 ] + os: [ windows-2022, ubuntu-20.04, macos-11 ] runs-on: ${{ matrix.os }} steps: @@ -111,53 +111,4 @@ jobs: if: ${{ failure() }} with: name: Reproducible Build ${{ matrix.os }} (${{ matrix.java }}) Results - path: build/reports/ - - bootstrap_tests: - needs: build - - strategy: - fail-fast: false - matrix: - java: [ 8, 11, 15, 16 ] - gradle: [ 4.9, 5.2, 6.0.1, 6.9, 7.0.2 ] - exclude: - - java: 16 - gradle: 6.9 - - java: 16 - gradle: 6.0.1 - - java: 16 - gradle: 5.2 - - java: 16 - gradle: 4.9 - - java: 15 - gradle: 6.0.1 - - java: 15 - gradle: 5.2 - - java: 15 - gradle: 4.9 - runs-on: ubuntu-20.04 - container: - image: gradle:7.0.2-jdk16 - options: --user root - - steps: - # Build loom and publish to maven local - - uses: actions/checkout@v2 - - run: gradle build publishToMavenLocal -x test -x check - - - run: gradle wrapper --gradle-version=${{ matrix.gradle }} - working-directory: bootstrap/test-project - - run: gradle --stop - - - uses: actions/setup-java@v2 - with: - java-version: ${{ matrix.java }} - distribution: 'adopt' - - - run: ./gradlew --version - working-directory: bootstrap/test-project - - run: ./gradlew build || true - working-directory: bootstrap/test-project - - # TODO check the output of the previous step here \ No newline at end of file + path: build/reports/ \ No newline at end of file diff --git a/bootstrap/src/main/java/net/fabricmc/loom/bootstrap/LoomGradlePluginBootstrap.java b/bootstrap/src/main/java/net/fabricmc/loom/bootstrap/LoomGradlePluginBootstrap.java index 01feb2c0..3badd32b 100644 --- a/bootstrap/src/main/java/net/fabricmc/loom/bootstrap/LoomGradlePluginBootstrap.java +++ b/bootstrap/src/main/java/net/fabricmc/loom/bootstrap/LoomGradlePluginBootstrap.java @@ -14,7 +14,7 @@ import org.gradle.util.GradleVersion; @SuppressWarnings("unused") public class LoomGradlePluginBootstrap implements Plugin { private static final int MIN_SUPPORTED_MAJOR_GRADLE_VERSION = 7; - private static final int MIN_SUPPORTED_MAJOR_JAVA_VERSION = 16; + private static final int MIN_SUPPORTED_MAJOR_JAVA_VERSION = 17; private static final int MIN_SUPPORTED_MAJOR_IDEA_VERSION = 2021; private static final String PLUGIN_CLASS_NAME = "net.fabricmc.loom.LoomGradlePlugin"; diff --git a/build.gradle b/build.gradle index 5fa1a1b4..439645f0 100644 --- a/build.gradle +++ b/build.gradle @@ -11,12 +11,12 @@ plugins { id "com.diffplug.spotless" version "5.14.1" } -sourceCompatibility = 16 -targetCompatibility = 16 +sourceCompatibility = 17 +targetCompatibility = 17 tasks.withType(JavaCompile).configureEach { it.options.encoding = "UTF-8" - it.options.release = 16 + it.options.release = 17 } @@ -61,10 +61,10 @@ dependencies { bootstrap project(":bootstrap") // libraries - implementation ('commons-io:commons-io:2.8.0') - implementation ('com.google.code.gson:gson:2.8.8') - implementation ('com.fasterxml.jackson.core:jackson-databind:2.12.5') - implementation ('com.google.guava:guava:30.1.1-jre') + implementation ('commons-io:commons-io:2.11.0') + implementation ('com.google.code.gson:gson:2.8.9') + implementation ('com.fasterxml.jackson.core:jackson-databind:2.13.0') + implementation ('com.google.guava:guava:31.0.1-jre') implementation ('org.ow2.asm:asm:9.2') implementation ('org.ow2.asm:asm-analysis:9.2') implementation ('org.ow2.asm:asm-commons:9.2') @@ -93,7 +93,7 @@ dependencies { implementation ('net.fabricmc:mercury:0.2.4') // Kapt integration - compileOnly('org.jetbrains.kotlin:kotlin-gradle-plugin:1.5.21') + compileOnly('org.jetbrains.kotlin:kotlin-gradle-plugin:1.6.0') // Testing testImplementation(gradleTestKit()) @@ -103,7 +103,7 @@ dependencies { testImplementation 'io.javalin:javalin:3.13.11' testImplementation 'net.fabricmc:fabric-installer:0.9.0' - compileOnly 'org.jetbrains:annotations:22.0.0' + compileOnly 'org.jetbrains:annotations:23.0.0' } jar { @@ -137,11 +137,11 @@ spotless { checkstyle { configFile = file('checkstyle.xml') - toolVersion = '8.44' + toolVersion = '9.2' } codenarc { - toolVersion = "2.1.0" + toolVersion = "2.2.0" configFile = file("codenarc.groovy") } @@ -155,7 +155,7 @@ gradlePlugin { } jacoco { - toolVersion = "0.8.6" + toolVersion = "0.8.7" } // Run to get test coverage. diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index d435ce29..3cd8500c 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.0.1-all.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.3.1-all.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/net/fabricmc/loom/util/Constants.java b/src/main/java/net/fabricmc/loom/util/Constants.java index dae98a87..dcc3b0e8 100644 --- a/src/main/java/net/fabricmc/loom/util/Constants.java +++ b/src/main/java/net/fabricmc/loom/util/Constants.java @@ -105,7 +105,7 @@ public class Constants { public static final String MIXIN_COMPILE_EXTENSIONS = "0.4.6"; public static final String DEV_LAUNCH_INJECTOR = "0.2.1+build.8"; public static final String TERMINAL_CONSOLE_APPENDER = "1.2.0"; - public static final String JETBRAINS_ANNOTATIONS = "22.0.0"; + public static final String JETBRAINS_ANNOTATIONS = "23.0.0"; private Versions() { } diff --git a/src/test/groovy/net/fabricmc/loom/test/LoomTestConstants.groovy b/src/test/groovy/net/fabricmc/loom/test/LoomTestConstants.groovy index eadb75f2..aaca59c8 100644 --- a/src/test/groovy/net/fabricmc/loom/test/LoomTestConstants.groovy +++ b/src/test/groovy/net/fabricmc/loom/test/LoomTestConstants.groovy @@ -28,7 +28,7 @@ import org.gradle.util.GradleVersion class LoomTestConstants { public final static String DEFAULT_GRADLE = GradleVersion.current().getVersion() - public final static String PRE_RELEASE_GRADLE = "7.4-20211201231918+0000" + public final static String PRE_RELEASE_GRADLE = "7.4-20211203231050+0000" public final static String[] STANDARD_TEST_VERSIONS = [DEFAULT_GRADLE, PRE_RELEASE_GRADLE] } From 6d65e120e7bfe57a190ca4e321cffb09b97aae1f Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Sat, 4 Dec 2021 14:32:48 +0000 Subject: [PATCH 3/5] Remove deprecated stuff --- .../net/fabricmc/loom/LoomGradlePlugin.java | 6 +- .../loom/api/LoomGradleExtensionAPI.java | 87 --------- .../loom/build/ModCompileRemapper.java | 5 - .../RemappedConfigurationEntry.java | 7 +- .../mojmap/MojangMappingsSpecBuilderImpl.java | 3 +- .../extension/MinecraftGradleExtension.java | 165 ------------------ .../net/fabricmc/loom/task/RunClientTask.java | 39 ----- .../net/fabricmc/loom/task/RunServerTask.java | 39 ----- .../net/fabricmc/loom/util/Constants.java | 1 - .../fabricmc/loom/util/DeprecationHelper.java | 8 - 10 files changed, 4 insertions(+), 356 deletions(-) delete mode 100644 src/main/java/net/fabricmc/loom/extension/MinecraftGradleExtension.java delete mode 100644 src/main/java/net/fabricmc/loom/task/RunClientTask.java delete mode 100644 src/main/java/net/fabricmc/loom/task/RunServerTask.java diff --git a/src/main/java/net/fabricmc/loom/LoomGradlePlugin.java b/src/main/java/net/fabricmc/loom/LoomGradlePlugin.java index 63e6e871..72a9580a 100644 --- a/src/main/java/net/fabricmc/loom/LoomGradlePlugin.java +++ b/src/main/java/net/fabricmc/loom/LoomGradlePlugin.java @@ -43,7 +43,6 @@ import net.fabricmc.loom.configuration.ide.IdeConfiguration; import net.fabricmc.loom.decompilers.DecompilerConfiguration; import net.fabricmc.loom.extension.LoomFiles; import net.fabricmc.loom.extension.LoomGradleExtensionImpl; -import net.fabricmc.loom.extension.MinecraftGradleExtension; import net.fabricmc.loom.task.LoomTasks; public class LoomGradlePlugin implements BootstrappedPlugin { @@ -75,9 +74,8 @@ public class LoomGradlePlugin implements BootstrappedPlugin { project.apply(ImmutableMap.of("plugin", "eclipse")); project.apply(ImmutableMap.of("plugin", "idea")); - // Setup extensions, minecraft wraps loom - LoomGradleExtensionAPI extension = project.getExtensions().create(LoomGradleExtensionAPI.class, "loom", LoomGradleExtensionImpl.class, project, LoomFiles.create(project)); - project.getExtensions().create(LoomGradleExtensionAPI.class, "minecraft", MinecraftGradleExtension.class, extension); + // Setup extensions + project.getExtensions().create(LoomGradleExtensionAPI.class, "loom", LoomGradleExtensionImpl.class, project, LoomFiles.create(project)); project.getExtensions().create("fabricApi", FabricApiExtension.class, project); CompileConfiguration.setupConfigurations(project); diff --git a/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java b/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java index 2fd46276..5f94336e 100644 --- a/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java +++ b/src/main/java/net/fabricmc/loom/api/LoomGradleExtensionAPI.java @@ -24,9 +24,6 @@ package net.fabricmc.loom.api; -import java.io.File; -import java.util.List; - import org.gradle.api.Action; import org.gradle.api.NamedDomainObjectContainer; import org.gradle.api.artifacts.Dependency; @@ -52,62 +49,20 @@ public interface LoomGradleExtensionAPI { RegularFileProperty getAccessWidenerPath(); - @Deprecated(forRemoval = true) - @ApiStatus.ScheduledForRemoval(inVersion = "0.11") - default File getAccessWidener() { - getDeprecationHelper().replaceWithInLoom0_11("accessWidener", "accessWidenerPath"); - return getAccessWidenerPath().getAsFile().getOrNull(); - } - - @Deprecated(forRemoval = true) - @ApiStatus.ScheduledForRemoval(inVersion = "0.11") - default void setAccessWidener(File file) { - getDeprecationHelper().replaceWithInLoom0_11("accessWidener", "accessWidenerPath"); - getAccessWidenerPath().set(file); - } - Property getShareRemapCaches(); - @Deprecated(forRemoval = true) - @ApiStatus.ScheduledForRemoval(inVersion = "0.11") - default void setShareCaches(boolean shareCaches) { - getDeprecationHelper().replaceWithInLoom0_11("shareCaches", "shareRemapCaches"); - getShareRemapCaches().set(shareCaches); - } - - @Deprecated(forRemoval = true) - @ApiStatus.ScheduledForRemoval(inVersion = "0.11") - default boolean isShareCaches() { - getDeprecationHelper().replaceWithInLoom0_11("shareCaches", "shareRemapCaches"); - return getShareRemapCaches().get(); - } - default void shareCaches() { getShareRemapCaches().set(true); } ListProperty getGameDecompilers(); - @Deprecated(forRemoval = true) - @ApiStatus.ScheduledForRemoval(inVersion = "0.11") - default List getDecompilers() { - getDeprecationHelper().replaceWithInLoom0_11("decompilers", "gameDecompilers"); - return getGameDecompilers().get(); - } - default void addDecompiler(LoomDecompiler decompiler) { getGameDecompilers().add(decompiler); } ListProperty getGameJarProcessors(); - @Deprecated(forRemoval = true) - @ApiStatus.ScheduledForRemoval(inVersion = "0.11") - default List getJarProcessors() { - getDeprecationHelper().replaceWithInLoom0_11("jarProcessors", "gameJarProcessors"); - return getGameJarProcessors().get(); - } - default void addJarProcessor(JarProcessor processor) { getGameJarProcessors().add(processor); } @@ -120,36 +75,8 @@ public interface LoomGradleExtensionAPI { Dependency layered(Action action); - @Deprecated(forRemoval = true) - @ApiStatus.ScheduledForRemoval(inVersion = "0.11") - default String getRefmapName() { - getDeprecationHelper().replaceWithInLoom0_11("refmapName", "mixin.defaultRefmapName"); - return getMixin().getDefaultRefmapName().get(); - } - - @Deprecated(forRemoval = true) - @ApiStatus.ScheduledForRemoval(inVersion = "0.11") - default void setRefmapName(String refmapName) { - getDeprecationHelper().replaceWithInLoom0_11("refmapName", "mixin.defaultRefmapName"); - getMixin().getDefaultRefmapName().set(refmapName); - } - Property getRemapArchives(); - @Deprecated(forRemoval = true) - @ApiStatus.ScheduledForRemoval(inVersion = "0.11") - default boolean isRemapMod() { - getDeprecationHelper().replaceWithInLoom0_11("remapMod", "remapArchives"); - return getRemapArchives().get(); - } - - @Deprecated(forRemoval = true) - @ApiStatus.ScheduledForRemoval(inVersion = "0.11") - default void setRemapMod(boolean remapMod) { - getDeprecationHelper().replaceWithInLoom0_11("remapMod", "remapArchives"); - getRemapArchives().set(remapMod); - } - void runs(Action> action); NamedDomainObjectContainer getRunConfigs(); @@ -162,20 +89,6 @@ public interface LoomGradleExtensionAPI { Property getCustomMinecraftManifest(); - @Deprecated(forRemoval = true) - @ApiStatus.ScheduledForRemoval(inVersion = "0.11") - default void setCustomManifest(String customManifest) { - getDeprecationHelper().replaceWithInLoom0_11("customManifest", "customMinecraftManifest"); - getCustomMinecraftManifest().set(customManifest); - } - - @Deprecated(forRemoval = true) - @ApiStatus.ScheduledForRemoval(inVersion = "0.11") - default String getCustomManifest() { - getDeprecationHelper().replaceWithInLoom0_11("customManifest", "customMinecraftManifest"); - return getCustomMinecraftManifest().getOrNull(); - } - /** * If true, Loom will replace the {@code -dev} jars in the {@code *Elements} configurations * with remapped outgoing variants. diff --git a/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java b/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java index b6150fb0..47801d4d 100644 --- a/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java +++ b/src/main/java/net/fabricmc/loom/build/ModCompileRemapper.java @@ -153,11 +153,6 @@ public class ModCompileRemapper { project.getDependencies().add(info.targetConfig.getName(), info.getRemappedNotation()); } - // Report deprecation warnings - if (entry.replacedWith() != null && !modDependencies.isEmpty()) { - extension.getDeprecationHelper().replaceWithInLoom0_11(entry.sourceConfiguration(), entry.replacedWith()); - } - // Export to other projects if (entry.targetConfiguration().equals(JavaPlugin.API_CONFIGURATION_NAME)) { project.getConfigurations().getByName(Constants.Configurations.NAMED_ELEMENTS).extendsFrom(remappedConfig); diff --git a/src/main/java/net/fabricmc/loom/configuration/RemappedConfigurationEntry.java b/src/main/java/net/fabricmc/loom/configuration/RemappedConfigurationEntry.java index 2eba6f40..dd373bdc 100644 --- a/src/main/java/net/fabricmc/loom/configuration/RemappedConfigurationEntry.java +++ b/src/main/java/net/fabricmc/loom/configuration/RemappedConfigurationEntry.java @@ -28,13 +28,8 @@ import java.util.Set; import org.gradle.api.artifacts.ConfigurationContainer; import org.gradle.api.plugins.JavaPlugin; -import org.jetbrains.annotations.Nullable; - -public record RemappedConfigurationEntry(String sourceConfiguration, String targetConfiguration, boolean compileClasspath, boolean runtimeClasspath, PublishingMode publishingMode, @Nullable String replacedWith) { - public RemappedConfigurationEntry(String sourceConfiguration, String targetConfiguration, boolean compileClasspath, boolean runtimeClasspath, PublishingMode publishingMode) { - this(sourceConfiguration, targetConfiguration, compileClasspath, runtimeClasspath, publishingMode, null); - } +public record RemappedConfigurationEntry(String sourceConfiguration, String targetConfiguration, boolean compileClasspath, boolean runtimeClasspath, PublishingMode publishingMode) { public String getRemappedConfiguration() { return sourceConfiguration + "Mapped"; } diff --git a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/mojmap/MojangMappingsSpecBuilderImpl.java b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/mojmap/MojangMappingsSpecBuilderImpl.java index 7937ad1f..3b1f24d2 100644 --- a/src/main/java/net/fabricmc/loom/configuration/providers/mappings/mojmap/MojangMappingsSpecBuilderImpl.java +++ b/src/main/java/net/fabricmc/loom/configuration/providers/mappings/mojmap/MojangMappingsSpecBuilderImpl.java @@ -27,8 +27,7 @@ package net.fabricmc.loom.configuration.providers.mappings.mojmap; import net.fabricmc.loom.api.mappings.layered.spec.MojangMappingsSpecBuilder; public class MojangMappingsSpecBuilderImpl implements MojangMappingsSpecBuilder { - // TODO 0.11 loom change default to false - private boolean nameSyntheticMembers = true; + private boolean nameSyntheticMembers = false; private MojangMappingsSpecBuilderImpl() { } diff --git a/src/main/java/net/fabricmc/loom/extension/MinecraftGradleExtension.java b/src/main/java/net/fabricmc/loom/extension/MinecraftGradleExtension.java deleted file mode 100644 index 4ffea879..00000000 --- a/src/main/java/net/fabricmc/loom/extension/MinecraftGradleExtension.java +++ /dev/null @@ -1,165 +0,0 @@ -/* - * This file is part of fabric-loom, licensed under the MIT License (MIT). - * - * Copyright (c) 2021 FabricMC - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package net.fabricmc.loom.extension; - -import org.gradle.api.Action; -import org.gradle.api.NamedDomainObjectContainer; -import org.gradle.api.artifacts.Dependency; -import org.gradle.api.file.ConfigurableFileCollection; -import org.gradle.api.file.RegularFileProperty; -import org.gradle.api.provider.ListProperty; -import org.gradle.api.provider.Property; -import org.gradle.api.publish.maven.MavenPublication; - -import net.fabricmc.loom.api.LoomGradleExtensionAPI; -import net.fabricmc.loom.api.MixinExtensionAPI; -import net.fabricmc.loom.api.decompilers.LoomDecompiler; -import net.fabricmc.loom.api.mappings.layered.spec.LayeredMappingSpecBuilder; -import net.fabricmc.loom.configuration.ide.RunConfigSettings; -import net.fabricmc.loom.configuration.processors.JarProcessor; -import net.fabricmc.loom.util.DeprecationHelper; - -public class MinecraftGradleExtension implements LoomGradleExtensionAPI { - private final LoomGradleExtensionAPI parent; - private boolean deprecationReported = false; - - public MinecraftGradleExtension(LoomGradleExtensionAPI parent) { - this.parent = parent; - } - - private void reportDeprecation() { - if (!deprecationReported) { - getDeprecationHelper().replaceWithInLoom0_11("minecraft", "loom"); - deprecationReported = true; - } - } - - @Override - public DeprecationHelper getDeprecationHelper() { - return parent.getDeprecationHelper(); - } - - @Override - public RegularFileProperty getAccessWidenerPath() { - reportDeprecation(); - return parent.getAccessWidenerPath(); - } - - @Override - public Property getShareRemapCaches() { - reportDeprecation(); - return parent.getShareRemapCaches(); - } - - @Override - public ListProperty getGameDecompilers() { - reportDeprecation(); - return parent.getGameDecompilers(); - } - - @Override - public ListProperty getGameJarProcessors() { - reportDeprecation(); - return parent.getGameJarProcessors(); - } - - @Override - public ConfigurableFileCollection getLog4jConfigs() { - reportDeprecation(); - return parent.getLog4jConfigs(); - } - - @Override - public Dependency layered(Action action) { - reportDeprecation(); - return parent.layered(action); - } - - @Override - public Property getRemapArchives() { - reportDeprecation(); - return parent.getRemapArchives(); - } - - @Override - public void runs(Action> action) { - reportDeprecation(); - parent.runs(action); - } - - @Override - public NamedDomainObjectContainer getRunConfigs() { - reportDeprecation(); - return parent.getRunConfigs(); - } - - @Override - public void mixin(Action action) { - reportDeprecation(); - parent.mixin(action); - } - - @Override - public MixinExtensionAPI getMixin() { - reportDeprecation(); - return parent.getMixin(); - } - - @Override - public Property getCustomMinecraftManifest() { - reportDeprecation(); - return parent.getCustomMinecraftManifest(); - } - - @Override - public Property getSetupRemappedVariants() { - reportDeprecation(); - return parent.getSetupRemappedVariants(); - } - - @Override - public void disableDeprecatedPomGeneration(MavenPublication publication) { - reportDeprecation(); - parent.disableDeprecatedPomGeneration(publication); - } - - @Override - public String getModVersion() { - reportDeprecation(); - throw new UnsupportedOperationException("Use loom extension"); - } - - @Override - public Property getEnableTransitiveAccessWideners() { - reportDeprecation(); - throw new UnsupportedOperationException(); - } - - @Override - public Property getIntermediaryUrl() { - reportDeprecation(); - return parent.getIntermediaryUrl(); - } -} diff --git a/src/main/java/net/fabricmc/loom/task/RunClientTask.java b/src/main/java/net/fabricmc/loom/task/RunClientTask.java deleted file mode 100644 index 4120dd82..00000000 --- a/src/main/java/net/fabricmc/loom/task/RunClientTask.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * This file is part of fabric-loom, licensed under the MIT License (MIT). - * - * Copyright (c) 2016-2021 FabricMC - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package net.fabricmc.loom.task; - -import net.fabricmc.loom.LoomGradleExtension; -import net.fabricmc.loom.configuration.ide.RunConfig; - -@Deprecated // Replaced by RunGameTask -public class RunClientTask extends AbstractRunTask { - public RunClientTask() { - super(project -> { - LoomGradleExtension extension = LoomGradleExtension.get(project); - return RunConfig.runConfig(project, extension.getRunConfigs().getByName("client")); - }); - LoomGradleExtension.get(getProject()).getDeprecationHelper().replaceWithInLoom0_11("RunClientTask", "RunGameTask"); - } -} diff --git a/src/main/java/net/fabricmc/loom/task/RunServerTask.java b/src/main/java/net/fabricmc/loom/task/RunServerTask.java deleted file mode 100644 index 635c5345..00000000 --- a/src/main/java/net/fabricmc/loom/task/RunServerTask.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * This file is part of fabric-loom, licensed under the MIT License (MIT). - * - * Copyright (c) 2016-2021 FabricMC - * - * Permission is hereby granted, free of charge, to any person obtaining a copy - * of this software and associated documentation files (the "Software"), to deal - * in the Software without restriction, including without limitation the rights - * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - * copies of the Software, and to permit persons to whom the Software is - * furnished to do so, subject to the following conditions: - * - * The above copyright notice and this permission notice shall be included in all - * copies or substantial portions of the Software. - * - * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE - * SOFTWARE. - */ - -package net.fabricmc.loom.task; - -import net.fabricmc.loom.LoomGradleExtension; -import net.fabricmc.loom.configuration.ide.RunConfig; - -@Deprecated // Replaced by RunGameTask -public class RunServerTask extends AbstractRunTask { - public RunServerTask() { - super(project -> { - LoomGradleExtension extension = LoomGradleExtension.get(project); - return RunConfig.runConfig(project, extension.getRunConfigs().getByName("client")); - }); - LoomGradleExtension.get(getProject()).getDeprecationHelper().replaceWithInLoom0_11("RunServerTask", "RunGameTask"); - } -} diff --git a/src/main/java/net/fabricmc/loom/util/Constants.java b/src/main/java/net/fabricmc/loom/util/Constants.java index dcc3b0e8..44b1d405 100644 --- a/src/main/java/net/fabricmc/loom/util/Constants.java +++ b/src/main/java/net/fabricmc/loom/util/Constants.java @@ -47,7 +47,6 @@ public class Constants { public static final List MOD_COMPILE_ENTRIES = ImmutableList.of( new RemappedConfigurationEntry("modApi", JavaPlugin.API_CONFIGURATION_NAME, true, true, PublishingMode.COMPILE_AND_RUNTIME), new RemappedConfigurationEntry("modImplementation", JavaPlugin.IMPLEMENTATION_CONFIGURATION_NAME, true, true, PublishingMode.RUNTIME_ONLY), - new RemappedConfigurationEntry("modRuntime", JavaPlugin.RUNTIME_ONLY_CONFIGURATION_NAME, false, true, PublishingMode.NONE, "modRuntimeOnly"), new RemappedConfigurationEntry("modCompileOnly", JavaPlugin.COMPILE_ONLY_CONFIGURATION_NAME, true, false, PublishingMode.NONE), new RemappedConfigurationEntry("modCompileOnlyApi", JavaPlugin.COMPILE_ONLY_API_CONFIGURATION_NAME, true, false, PublishingMode.COMPILE_ONLY), new RemappedConfigurationEntry("modRuntimeOnly", JavaPlugin.RUNTIME_ONLY_CONFIGURATION_NAME, false, true, PublishingMode.RUNTIME_ONLY), diff --git a/src/main/java/net/fabricmc/loom/util/DeprecationHelper.java b/src/main/java/net/fabricmc/loom/util/DeprecationHelper.java index f38c9022..d7b693db 100644 --- a/src/main/java/net/fabricmc/loom/util/DeprecationHelper.java +++ b/src/main/java/net/fabricmc/loom/util/DeprecationHelper.java @@ -31,14 +31,6 @@ import org.gradle.api.logging.LogLevel; import org.gradle.api.logging.configuration.WarningMode; public interface DeprecationHelper { - default void replaceWithInLoom0_10(String currentName, String newName) { - toBeRemovedIn(currentName, newName, "Loom 0.10"); - } - - default void replaceWithInLoom0_11(String currentName, String newName) { - toBeRemovedIn(currentName, newName, "Loom 0.11"); - } - default void replaceWithInLoom0_12(String currentName, String newName) { toBeRemovedIn(currentName, newName, "Loom 0.12"); } From efddf8f35c16090c1386072fa54695622ff036dc Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Sat, 4 Dec 2021 14:39:12 +0000 Subject: [PATCH 4/5] Run validate access widener task before genSources. Closes #550 --- .../net/fabricmc/loom/task/LoomTasks.java | 19 +++++++++++-------- 1 file changed, 11 insertions(+), 8 deletions(-) diff --git a/src/main/java/net/fabricmc/loom/task/LoomTasks.java b/src/main/java/net/fabricmc/loom/task/LoomTasks.java index e914046f..70c6a09e 100644 --- a/src/main/java/net/fabricmc/loom/task/LoomTasks.java +++ b/src/main/java/net/fabricmc/loom/task/LoomTasks.java @@ -29,6 +29,7 @@ import java.io.File; import com.google.common.base.Preconditions; import org.gradle.api.Project; import org.gradle.api.tasks.TaskContainer; +import org.gradle.api.tasks.TaskProvider; import net.fabricmc.loom.LoomGradleExtension; import net.fabricmc.loom.api.decompilers.LoomDecompiler; @@ -56,12 +57,12 @@ public final class LoomTasks { tasks.register("downloadAssets", DownloadAssetsTask.class, t -> t.setDescription("Downloads required assets for Fabric.")); tasks.register("remapSourcesJar", RemapSourcesJarTask.class, t -> t.setDescription("Remaps the project sources jar to intermediary names.")); - tasks.getByName("check").dependsOn( - tasks.register("validateAccessWidener", ValidateAccessWidenerTask.class, t -> { - t.setDescription("Validate all the rules in the access widener against the Minecraft jar"); - t.setGroup("verification"); - }) - ); + TaskProvider validateAccessWidener = tasks.register("validateAccessWidener", ValidateAccessWidenerTask.class, t -> { + t.setDescription("Validate all the rules in the access widener against the Minecraft jar"); + t.setGroup("verification"); + }); + + tasks.named("check").configure(task -> task.dependsOn(validateAccessWidener)); registerIDETasks(tasks); registerRunTasks(tasks, project); @@ -155,8 +156,10 @@ public final class LoomTasks { task.getInputJar().set(inputJar); if (mappingsProvider.hasUnpickDefinitions()) { - task.dependsOn(tasks.getByName("unpickJar")); + task.dependsOn(tasks.named("unpickJar")); } + + task.dependsOn(tasks.named("validateAccessWidener")); }); } @@ -164,7 +167,7 @@ public final class LoomTasks { task.setDescription("Decompile minecraft using the default decompiler."); task.setGroup(Constants.TaskGroup.FABRIC); - task.dependsOn(project.getTasks().getByName("genSourcesWithCfr")); + task.dependsOn(project.getTasks().named("genSourcesWithCfr")); }); }); } From 4ace257c379f96c77cec9532949f29825d3a8af2 Mon Sep 17 00:00:00 2001 From: modmuss50 Date: Sat, 4 Dec 2021 18:47:45 +0000 Subject: [PATCH 5/5] Fix unit tests --- .../layeredmappings/LayeredMappingSpecBuilderTest.groovy | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/LayeredMappingSpecBuilderTest.groovy b/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/LayeredMappingSpecBuilderTest.groovy index 57850515..572545a8 100644 --- a/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/LayeredMappingSpecBuilderTest.groovy +++ b/src/test/groovy/net/fabricmc/loom/test/unit/layeredmappings/LayeredMappingSpecBuilderTest.groovy @@ -42,7 +42,7 @@ class LayeredMappingSpecBuilderTest extends Specification { } def layers = spec.layers() then: - spec.version == "layered+hash.2192" + spec.version == "layered+hash.2198" layers.size() == 2 layers[0].class == IntermediaryMappingsSpec layers[1].class == MojangMappingsSpec @@ -57,7 +57,7 @@ class LayeredMappingSpecBuilderTest extends Specification { def layers = spec.layers() def parchment = layers[2] as ParchmentMappingsSpec then: - spec.version == "layered+hash.863752565" + spec.version == "layered+hash.863752751" layers.size() == 3 layers[0].class == IntermediaryMappingsSpec layers[1].class == MojangMappingsSpec @@ -77,7 +77,7 @@ class LayeredMappingSpecBuilderTest extends Specification { def layers = spec.layers() def parchment = layers[2] as ParchmentMappingsSpec then: - spec.version == "layered+hash.863752571" + spec.version == "layered+hash.863752757" layers.size() == 3 layers[0].class == IntermediaryMappingsSpec layers[1].class == MojangMappingsSpec @@ -97,7 +97,7 @@ class LayeredMappingSpecBuilderTest extends Specification { def layers = spec.layers() def parchment = layers[2] as ParchmentMappingsSpec then: - spec.version == "layered+hash.1144427326" + spec.version == "layered+hash.1144427140" layers.size() == 3 layers[0].class == IntermediaryMappingsSpec layers[1].class == MojangMappingsSpec