From d8332fccddcf03fe7de916c19ea43b38e19147dd Mon Sep 17 00:00:00 2001 From: zml Date: Sat, 15 Oct 2022 22:20:22 -0700 Subject: [PATCH] build: Bump dependency versions various gradle plugins bump asm to 9.4 for compat with newer Java versions misc build-time dependencies --- SpongeAPI | 2 +- build-logic/build.gradle | 23 ++++++++++-------- build-logic/settings.gradle | 14 +++++++++++ .../impl/GenerateResourceTemplates.java | 24 +++++++++++++++++++ .../gradle/impl/OutputDependenciesToJson.java | 2 +- .../impl/SpongeImplementationExtension.java | 24 +++++++++++++++++++ .../impl/SpongeImplementationPlugin.java | 24 +++++++++++++++++++ .../gradle/impl/TemplatedResourcesPlugin.java | 24 +++++++++++++++++++ build.gradle.kts | 18 ++++++-------- forge/build.gradle.kts | 16 +++++-------- generator/build.gradle.kts | 20 +++++++--------- gradle.properties | 14 +++++------ gradle/wrapper/gradle-wrapper.properties | 2 +- modlauncher-transformers/build.gradle.kts | 21 +++++++--------- settings.gradle.kts | 6 ++--- testplugins/build.gradle.kts | 14 ++++------- vanilla/build.gradle.kts | 16 +++++-------- .../client/gui/widget/ScrollPanel.java | 10 ++++---- 18 files changed, 182 insertions(+), 92 deletions(-) diff --git a/SpongeAPI b/SpongeAPI index bdd66ef48..4f42a92c9 160000 --- a/SpongeAPI +++ b/SpongeAPI @@ -1 +1 @@ -Subproject commit bdd66ef4873c8275cdf075064fa2d08989262923 +Subproject commit 4f42a92c9742ae34334796f184531f777fab534e diff --git a/build-logic/build.gradle b/build-logic/build.gradle index 28f9cd3b0..5c8516278 100644 --- a/build-logic/build.gradle +++ b/build-logic/build.gradle @@ -1,18 +1,21 @@ plugins { id "java-gradle-plugin" - id "org.spongepowered.gradle.sponge.dev" version "2.0.2" -} - -repositories { - maven { - url = "https://repo.spongepowered.org/repository/maven-public" - name = "sponge" - } + id "org.spongepowered.gradle.sponge.dev" version "2.1.1" } dependencies { - api("com.google.code.gson:gson:2.9.0") - implementation("gradle.plugin.org.jetbrains.gradle.plugin.idea-ext:gradle-idea-ext:1.1.5") + api("com.google.code.gson:gson:2.9.1") + implementation("gradle.plugin.org.jetbrains.gradle.plugin.idea-ext:gradle-idea-ext:1.1.6") +} + +indraSpotlessLicenser { + def parentProject = gradle.parent.rootProject + + licenseHeaderFile(parentProject.file('HEADER.txt')) + + property("name", "Sponge") + property("organization", parentProject.ext.organization) + property("url", parentProject.ext.projectUrl) } gradlePlugin { diff --git a/build-logic/settings.gradle b/build-logic/settings.gradle index 30499ad25..48cb05159 100644 --- a/build-logic/settings.gradle +++ b/build-logic/settings.gradle @@ -1 +1,15 @@ +pluginManagement { + repositories { + maven { + url = "https://repo.spongepowered.org/repository/maven-public" + name = "sponge" + } + } +} + +dependencyResolutionManagement { + repositoriesMode = RepositoriesMode.FAIL_ON_PROJECT_REPOS + repositories { pluginManagement.repositories.each { add(it) } } +} + rootProject.name = "build-logic" \ No newline at end of file diff --git a/build-logic/src/main/java/org/spongepowered/gradle/impl/GenerateResourceTemplates.java b/build-logic/src/main/java/org/spongepowered/gradle/impl/GenerateResourceTemplates.java index 8009fdc98..5de750d5e 100644 --- a/build-logic/src/main/java/org/spongepowered/gradle/impl/GenerateResourceTemplates.java +++ b/build-logic/src/main/java/org/spongepowered/gradle/impl/GenerateResourceTemplates.java @@ -1,3 +1,27 @@ +/* + * This file is part of Sponge, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * 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 org.spongepowered.gradle.impl; import org.gradle.api.tasks.Copy; diff --git a/build-logic/src/main/java/org/spongepowered/gradle/impl/OutputDependenciesToJson.java b/build-logic/src/main/java/org/spongepowered/gradle/impl/OutputDependenciesToJson.java index 5a392d9e8..e219b3ae0 100644 --- a/build-logic/src/main/java/org/spongepowered/gradle/impl/OutputDependenciesToJson.java +++ b/build-logic/src/main/java/org/spongepowered/gradle/impl/OutputDependenciesToJson.java @@ -1,5 +1,5 @@ /* - * This file is part of spongegradle-convention, licensed under the MIT License (MIT). + * This file is part of Sponge, licensed under the MIT License (MIT). * * Copyright (c) SpongePowered * Copyright (c) contributors diff --git a/build-logic/src/main/java/org/spongepowered/gradle/impl/SpongeImplementationExtension.java b/build-logic/src/main/java/org/spongepowered/gradle/impl/SpongeImplementationExtension.java index 8a441f645..a807ce453 100644 --- a/build-logic/src/main/java/org/spongepowered/gradle/impl/SpongeImplementationExtension.java +++ b/build-logic/src/main/java/org/spongepowered/gradle/impl/SpongeImplementationExtension.java @@ -1,3 +1,27 @@ +/* + * This file is part of Sponge, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * 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 org.spongepowered.gradle.impl; import org.gradle.api.Project; diff --git a/build-logic/src/main/java/org/spongepowered/gradle/impl/SpongeImplementationPlugin.java b/build-logic/src/main/java/org/spongepowered/gradle/impl/SpongeImplementationPlugin.java index ff370423e..df70ee1ad 100644 --- a/build-logic/src/main/java/org/spongepowered/gradle/impl/SpongeImplementationPlugin.java +++ b/build-logic/src/main/java/org/spongepowered/gradle/impl/SpongeImplementationPlugin.java @@ -1,3 +1,27 @@ +/* + * This file is part of Sponge, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * 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 org.spongepowered.gradle.impl; import org.gradle.api.Plugin; diff --git a/build-logic/src/main/java/org/spongepowered/gradle/impl/TemplatedResourcesPlugin.java b/build-logic/src/main/java/org/spongepowered/gradle/impl/TemplatedResourcesPlugin.java index d54ca3b1f..468e58ae4 100644 --- a/build-logic/src/main/java/org/spongepowered/gradle/impl/TemplatedResourcesPlugin.java +++ b/build-logic/src/main/java/org/spongepowered/gradle/impl/TemplatedResourcesPlugin.java @@ -1,3 +1,27 @@ +/* + * This file is part of Sponge, licensed under the MIT License (MIT). + * + * Copyright (c) SpongePowered + * Copyright (c) contributors + * + * 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 org.spongepowered.gradle.impl; import org.gradle.api.Plugin; diff --git a/build.gradle.kts b/build.gradle.kts index 629105e31..7384fc9d3 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -5,9 +5,9 @@ plugins { `java-library` eclipse id("org.spongepowered.gradle.vanilla") - id("org.cadixdev.licenser") id("com.github.johnrengelman.shadow") id("org.spongepowered.gradle.sponge.dev") apply false // for version json generation + id("net.kyori.indra.licenser.spotless") id("implementation-structure") id("org.jetbrains.gradle.plugin.idea-ext") id("com.github.ben-manes.versions") @@ -211,16 +211,12 @@ dependencies { val organization: String by project val projectUrl: String by project -license { - properties { - this["name"] = "Sponge" - this["organization"] = organization - this["url"] = projectUrl - } - header(rootProject.file("HEADER.txt")) +indraSpotlessLicenser { + licenseHeaderFile(rootProject.file("HEADER.txt")) - include("**/*.java") - newLine(false) + property("name", "Sponge") + property("organization", organization) + property("url", projectUrl) } idea { @@ -247,7 +243,7 @@ allprojects { apply(plugin = "org.jetbrains.gradle.plugin.idea-ext") apply(plugin = "java-library") apply(plugin = "maven-publish") - apply(plugin = "org.cadixdev.licenser") + apply(plugin = "net.kyori.indra.licenser.spotless") base { archivesBaseName = name.toLowerCase(Locale.ENGLISH) diff --git a/forge/build.gradle.kts b/forge/build.gradle.kts index 6dd73379b..67bd6fc98 100644 --- a/forge/build.gradle.kts +++ b/forge/build.gradle.kts @@ -220,7 +220,7 @@ dependencies { val libraries = forgeLibrariesConfig.name libraries("org.spongepowered:spongeapi:$apiVersion") libraries("javax.inject:javax.inject:1") // wat - libraries("com.zaxxer:HikariCP:2.6.3") + libraries("com.zaxxer:HikariCP:2.7.8") libraries("org.apache.logging.log4j:log4j-slf4j-impl:$log4jVersion") // libraries(project(commonProject.path)) // todo: this is better, but seems to be pulling in ASM for some reason libraries(platform("net.kyori:adventure-bom:$apiAdventureVersion")) @@ -461,16 +461,12 @@ afterEvaluate { } } -license { - properties { - this["name"] = "Sponge" - this["organization"] = organization - this["url"] = projectUrl - } - header(rootProject.file("HEADER.txt")) +indraSpotlessLicenser { + licenseHeaderFile(rootProject.file("HEADER.txt")) - include("**/*.java") - newLine(false) + property("name", "Sponge") + property("organization", organization) + property("url", projectUrl) } val sourcesJar by tasks.existing diff --git a/generator/build.gradle.kts b/generator/build.gradle.kts index fa001f9fd..c0f39b8f2 100644 --- a/generator/build.gradle.kts +++ b/generator/build.gradle.kts @@ -35,21 +35,17 @@ tasks.withType(JavaCompile::class) { dependencies { val tinyLogVersion: String by project implementation("com.squareup:javapoet:1.13.0") - implementation("com.github.javaparser:javaparser-core:3.22.1") + implementation("com.github.javaparser:javaparser-core:3.24.4") implementation("org.tinylog:tinylog-api:$tinyLogVersion") runtimeOnly("org.tinylog:tinylog-impl:$tinyLogVersion") } -license { - properties { - this["name"] = "Sponge" - this["organization"] = organization - this["url"] = projectUrl - } - header(rootProject.file("HEADER.txt")) +indraSpotlessLicenser { + licenseHeaderFile(rootProject.file("HEADER.txt")) - include("**/*.java") - newLine(false) + property("name", "Sponge") + property("organization", organization) + property("url", projectUrl) } val apiBase = rootProject.file("SpongeAPI/src/main/java/") @@ -65,10 +61,10 @@ tasks.register("generateApiData", JavaExec::class) { doFirst { // Write a template-expanded license header to the temporary file - license.header.get().asReader().buffered().use { reader -> + indraSpotlessLicenser.licenseHeaderFile().get().asReader().buffered().use { reader -> val template = groovy.text.GStringTemplateEngine().createTemplate(reader) - val propertyMap = (license as ExtensionAware).extra.properties.toMutableMap() + val propertyMap = indraSpotlessLicenser.properties().get().toMutableMap() propertyMap["name"] = "SpongeAPI" val out = template.make(propertyMap) diff --git a/gradle.properties b/gradle.properties index bea71894f..5db4ef24a 100644 --- a/gradle.properties +++ b/gradle.properties @@ -14,20 +14,20 @@ superClassChanges=common.superclasschange minecraftVersion=1.16.5 recommendedVersion=0-SNAPSHOT -asmVersion=9.2 +asmVersion=9.4 log4jVersion=2.17.1 -forgeAutoRenamingToolVersion=0.1.16 -mixinVersion=0.8.4 +forgeAutoRenamingToolVersion=0.1.24 +mixinVersion=0.8.5 modlauncherVersion=8.1.3 guavaVersion=21.0 -junitVersion=5.8.1 -mockitoVersion=3.11.2 +junitVersion=5.9.1 +mockitoVersion=4.8.0 jlineVersion=3.21.0 # If JLine is updated and it updates the jansi dep, remove the following # (and update the SV build.gradle) jansiVersion=2.4.0 -tinyLogVersion=2.3.2 -checkerVersion=3.19.0 +tinyLogVersion=2.5.0 +checkerVersion=3.26.0 org.gradle.jvmargs=-Xss4m org.gradle.parallel=true diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 8049c684f..ae04661ee 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.5-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-7.5.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/modlauncher-transformers/build.gradle.kts b/modlauncher-transformers/build.gradle.kts index 0b1c6e308..a372b7370 100644 --- a/modlauncher-transformers/build.gradle.kts +++ b/modlauncher-transformers/build.gradle.kts @@ -11,22 +11,19 @@ eclipse { val organization: String by project val projectUrl: String by project -license { - properties { - this["name"] = "Sponge" - this["organization"] = organization - this["url"] = projectUrl - } - header(rootProject.file("HEADER.txt")) +indraSpotlessLicenser { + licenseHeaderFile(rootProject.file("HEADER.txt")) - include("**/*.java") - newLine(false) + property("name", "Sponge") + property("organization", organization) + property("url", projectUrl) } -val log4jVersion: String by project -val modlauncherVersion: String by project val apiConfigurateVersion: String by project val asmVersion: String by project +val checkerVersion: String by project +val log4jVersion: String by project +val modlauncherVersion: String by project dependencies { // AccessWidener transformer @@ -58,5 +55,5 @@ dependencies { } // And finally, compile only annotations - compileOnly("org.checkerframework:checker-qual:3.13.0") + compileOnly("org.checkerframework:checker-qual:$checkerVersion") } diff --git a/settings.gradle.kts b/settings.gradle.kts index 1a9a8fb10..654f402ec 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -10,11 +10,11 @@ pluginManagement { plugins { // Default plugin versions id("org.spongepowered.gradle.vanilla") version "0.2.1-SNAPSHOT" - id("org.cadixdev.licenser") version "0.6.1" id("com.github.johnrengelman.shadow") version "7.1.2" - id("org.spongepowered.gradle.sponge.dev") version "2.0.2" + id("org.spongepowered.gradle.sponge.dev") version "2.1.1" + id("net.kyori.indra.licenser.spotless") version "3.0.1" id("implementation-structure") - id("org.jetbrains.gradle.plugin.idea-ext") version "1.1.5" + id("org.jetbrains.gradle.plugin.idea-ext") version "1.1.6" id("com.github.ben-manes.versions") version "0.42.0" } } diff --git a/testplugins/build.gradle.kts b/testplugins/build.gradle.kts index 7d53a3f8d..10bd0a7c9 100644 --- a/testplugins/build.gradle.kts +++ b/testplugins/build.gradle.kts @@ -6,14 +6,10 @@ dependencies { annotationProcessor(implementation("org.spongepowered:spongeapi:$apiVersion")!!) } -license { - properties { - this["name"] = "Sponge" - this["organization"] = organization - this["url"] = projectUrl - } - header(rootProject.file("HEADER.txt")) +indraSpotlessLicenser { + licenseHeaderFile(rootProject.file("HEADER.txt")) - include("**/*.java") - newLine(false) + property("name", "Sponge") + property("organization", organization) + property("url", projectUrl) } diff --git a/vanilla/build.gradle.kts b/vanilla/build.gradle.kts index c1a5c772d..400f31f0e 100644 --- a/vanilla/build.gradle.kts +++ b/vanilla/build.gradle.kts @@ -129,7 +129,7 @@ val mixinConfigs = spongeImpl.mixinConfigurations minecraft { runs { // Full development environment - sequenceOf(8, 11, 16).forEach { + sequenceOf(8, 11, 17).forEach { server("runJava${it}Server") { args("--nogui", "--launchTarget", "sponge_server_dev") targetVersion(it) @@ -497,16 +497,12 @@ tasks { } } -license { - properties { - this["name"] = "Sponge" - this["organization"] = organization - this["url"] = projectUrl - } - header(rootProject.file("HEADER.txt")) +indraSpotlessLicenser { + licenseHeaderFile(rootProject.file("HEADER.txt")) - include("**/*.java") - newLine(false) + property("name", "Sponge") + property("organization", organization) + property("url", projectUrl) } val shadowJar by tasks.existing diff --git a/vanilla/src/main/java/org/spongepowered/vanilla/client/gui/widget/ScrollPanel.java b/vanilla/src/main/java/org/spongepowered/vanilla/client/gui/widget/ScrollPanel.java index c1e941168..5e2be955e 100644 --- a/vanilla/src/main/java/org/spongepowered/vanilla/client/gui/widget/ScrollPanel.java +++ b/vanilla/src/main/java/org/spongepowered/vanilla/client/gui/widget/ScrollPanel.java @@ -22,10 +22,6 @@ * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN * THE SOFTWARE. */ -/* - * Credit: MinecraftForge - * Changes: Minor tweaks, fixed scroll limits able to hit negative - */ package org.spongepowered.vanilla.client.gui.widget; import com.mojang.blaze3d.platform.GlStateManager; @@ -43,6 +39,10 @@ import org.lwjgl.opengl.GL11; import java.util.Collections; import java.util.List; +/** + * Credit: MinecraftForge + * Changes: Minor tweaks, fixed scroll limits able to hit negative + */ public abstract class ScrollPanel extends AbstractContainerEventHandler implements Widget { private final Minecraft client; @@ -93,7 +93,7 @@ public abstract class ScrollPanel extends AbstractContainerEventHandler implemen } private void applyScrollLimits() { - int max = Math.max(0, this.getMaxScroll()); + final int max = Math.max(0, this.getMaxScroll()); if (this.scrollDistance < 0.0F) { this.scrollDistance = 0.0F;