From b829a20169e5635ff2c6d493347a29d87335b9ab Mon Sep 17 00:00:00 2001 From: Butterscotch! Date: Tue, 10 Mar 2026 17:40:41 -0400 Subject: [PATCH] Bump Gradle, plugin, and package versions (#1746) Co-authored-by: lucas lelievre --- gradle.properties | 12 ++++++----- gradle/wrapper/gradle-wrapper.properties | 4 ++-- server/android/build.gradle.kts | 10 +++------- server/build.gradle.kts | 4 ++-- server/core/build.gradle.kts | 20 +++++++++---------- .../java/dev/slimevr/osc/VRCOSCHandler.kt | 2 +- .../processor/skeleton/HumanSkeleton.kt | 6 ++++-- .../tracking/processor/skeleton/Localizer.kt | 2 +- .../trackers/udp/TrackersUDPServer.kt | 2 -- server/desktop/build.gradle.kts | 4 ++-- .../slimevr/desktop/games/vrchat/RegEdit.kt | 2 -- .../slimevr/desktop/platform/SteamVRBridge.kt | 9 +++------ 12 files changed, 35 insertions(+), 42 deletions(-) diff --git a/gradle.properties b/gradle.properties index 5f42b39eb..5d8344847 100644 --- a/gradle.properties +++ b/gradle.properties @@ -13,8 +13,10 @@ android.useAndroidX=true android.nonTransitiveRClass=true org.gradle.unsafe.configuration-cache=false -kotlinVersion=2.0.20 -spotlessVersion=8.0.0 -shadowJarVersion=8.3.2 -buildconfigVersion=5.5.0 -grgitVersion=5.2.2 +kotlinVersion=2.3.10 +spotlessVersion=8.2.1 +shadowJarVersion=9.3.1 +buildconfigVersion=6.0.7 +# We should probably stop using grgit, see: +# https://andrewoberstar.com/posts/2024-04-02-dont-commit-to-grgit/ +grgitVersion=5.3.3 diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index a54add319..fefb12bcc 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,7 +1,7 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.3-bin.zip -distributionSha256Sum=bd71102213493060956ec229d946beee57158dbd89d0e62b91bca0fa2c5f3531 +distributionUrl=https\://services.gradle.org/distributions/gradle-8.14.4-bin.zip +distributionSha256Sum=f1771298a70f6db5a29daf62378c4e18a17fc33c9ba6b14362e0cdf40610380d networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/server/android/build.gradle.kts b/server/android/build.gradle.kts index d46ce2ad5..e48cd0c3f 100644 --- a/server/android/build.gradle.kts +++ b/server/android/build.gradle.kts @@ -16,7 +16,7 @@ plugins { kotlin("plugin.serialization") id("com.github.gmazzo.buildconfig") - id("com.android.application") version "8.13.1" + id("com.android.application") version "8.13.2" id("org.ajoberstar.grgit") } @@ -106,8 +106,8 @@ repositories { dependencies { implementation(project(":server:core")) - implementation("commons-cli:commons-cli:1.8.0") - implementation("org.apache.commons:commons-lang3:3.15.0") + implementation("commons-cli:commons-cli:1.11.0") + implementation("org.apache.commons:commons-lang3:3.20.0") // Android stuff implementation("androidx.appcompat:appcompat:1.7.1") @@ -220,8 +220,4 @@ android { sourceCompatibility = JavaVersion.VERSION_17 targetCompatibility = JavaVersion.VERSION_17 } - - kotlinOptions { - jvmTarget = "17" - } } diff --git a/server/build.gradle.kts b/server/build.gradle.kts index 7d8272e19..6e0662e73 100644 --- a/server/build.gradle.kts +++ b/server/build.gradle.kts @@ -43,7 +43,7 @@ configure { ",solarxr_protocol.rpc.*,kotlinx.coroutines.*,com.illposed.osc.*,android.app.*", "ij_kotlin_allow_trailing_comma" to true, ) - val ktlintVersion = "1.7.1" + val ktlintVersion = "1.8.0" kotlinGradle { target("**/*.gradle.kts") // default target for kotlinGradle ktlint(ktlintVersion) @@ -61,7 +61,7 @@ configure { removeUnusedImports() // Use eclipse JDT formatter - eclipse("4.36") + eclipse("4.38") .configFile("spotless.xml") // .withP2Mirrors(mapOf("https://download.eclipse.org/" to "https://mirror.umd.edu/eclipse/")) } diff --git a/server/core/build.gradle.kts b/server/core/build.gradle.kts index 0da1661ad..0f34ebb91 100644 --- a/server/core/build.gradle.kts +++ b/server/core/build.gradle.kts @@ -63,21 +63,21 @@ dependencies { // This dependency is used internally, // and not exposed to consumers on their own compile classpath. implementation("com.google.flatbuffers:flatbuffers-java:22.10.26") - implementation("commons-cli:commons-cli:1.8.0") - implementation("com.fasterxml.jackson.core:jackson-databind:2.15.1") - implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.15.1") + implementation("commons-cli:commons-cli:1.11.0") + implementation("com.fasterxml.jackson.core:jackson-databind:2.21.0") + implementation("com.fasterxml.jackson.dataformat:jackson-dataformat-yaml:2.21.0") implementation("com.github.jonpeterson:jackson-module-model-versioning:1.2.2") implementation("org.apache.commons:commons-math3:3.6.1") - implementation("org.apache.commons:commons-lang3:3.15.0") - implementation("org.apache.commons:commons-collections4:4.4") + implementation("org.apache.commons:commons-lang3:3.20.0") + implementation("org.apache.commons:commons-collections4:4.5.0") - implementation("com.illposed.osc:javaosc-core:0.8") + implementation("com.illposed.osc:javaosc-core:0.9") implementation("org.java-websocket:Java-WebSocket:1.+") implementation("com.melloware:jintellitype:1.+") - implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.7.3") - implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.8.1") - implementation("com.mayakapps.kache:kache:2.1.0") + implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.10.0") + implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.10.2") + implementation("com.mayakapps.kache:kache:2.1.1") api("com.github.loucass003:EspflashKotlin:v0.11.0") @@ -89,7 +89,7 @@ dependencies { testImplementation(kotlin("test")) // Use JUnit test framework - testImplementation(platform("org.junit:junit-bom:5.10.3")) + testImplementation(platform("org.junit:junit-bom:6.0.2")) testImplementation("org.junit.jupiter:junit-jupiter") testImplementation("org.junit.platform:junit-platform-launcher") } diff --git a/server/core/src/main/java/dev/slimevr/osc/VRCOSCHandler.kt b/server/core/src/main/java/dev/slimevr/osc/VRCOSCHandler.kt index 17c0459fd..1690a8b59 100644 --- a/server/core/src/main/java/dev/slimevr/osc/VRCOSCHandler.kt +++ b/server/core/src/main/java/dev/slimevr/osc/VRCOSCHandler.kt @@ -199,7 +199,7 @@ class VRCOSCHandler( try { val addr = InetAddress.getByName(ip) oscSender = OSCPortOut(InetSocketAddress(addr, portOut)) - if (oscPortOut != portOut && oscIp != addr || !wasConnected) { + if ((oscPortOut != portOut && oscIp != addr) || !wasConnected) { LogManager.info("[VRCOSCHandler] Sending to port $portOut at address $ip") } oscPortOut = portOut diff --git a/server/core/src/main/java/dev/slimevr/tracking/processor/skeleton/HumanSkeleton.kt b/server/core/src/main/java/dev/slimevr/tracking/processor/skeleton/HumanSkeleton.kt index 91a7d7603..2baef0bcd 100644 --- a/server/core/src/main/java/dev/slimevr/tracking/processor/skeleton/HumanSkeleton.kt +++ b/server/core/src/main/java/dev/slimevr/tracking/processor/skeleton/HumanSkeleton.kt @@ -1230,8 +1230,10 @@ class HumanSkeleton( } // If trackingArmFromController, reverse if (((boneType == BoneType.LEFT_LOWER_ARM || boneType == BoneType.LEFT_HAND) && isTrackingLeftArmFromController) || - (boneType == BoneType.RIGHT_LOWER_ARM || boneType == BoneType.RIGHT_HAND) && - isTrackingRightArmFromController + ( + (boneType == BoneType.RIGHT_LOWER_ARM || boneType == BoneType.RIGHT_HAND) && + isTrackingRightArmFromController + ) ) { transOffset = -transOffset } diff --git a/server/core/src/main/java/dev/slimevr/tracking/processor/skeleton/Localizer.kt b/server/core/src/main/java/dev/slimevr/tracking/processor/skeleton/Localizer.kt index f047df854..225b402f2 100644 --- a/server/core/src/main/java/dev/slimevr/tracking/processor/skeleton/Localizer.kt +++ b/server/core/src/main/java/dev/slimevr/tracking/processor/skeleton/Localizer.kt @@ -386,7 +386,7 @@ class Localizer(humanSkeleton: HumanSkeleton) { if (rightKnee.y * SITTING_KNEE_THRESHOLD < rightKnee.x + rightKnee.z) { right = true } - return !bufCur.isStanding || left && right + return !bufCur.isStanding || (left && right) } // get the combined accel of the Torso trackers diff --git a/server/core/src/main/java/dev/slimevr/tracking/trackers/udp/TrackersUDPServer.kt b/server/core/src/main/java/dev/slimevr/tracking/trackers/udp/TrackersUDPServer.kt index d2da51720..ea5c6d5ba 100644 --- a/server/core/src/main/java/dev/slimevr/tracking/trackers/udp/TrackersUDPServer.kt +++ b/server/core/src/main/java/dev/slimevr/tracking/trackers/udp/TrackersUDPServer.kt @@ -654,12 +654,10 @@ class TrackersUDPServer(private val port: Int, name: String, private val tracker private val SENSOR_OFFSET_CORRECTION = Quaternion.rotationAroundZAxis(-FastMath.HALF_PI) private const val RESET_SOURCE_NAME = "TrackerServer" - @ExperimentalStdlibApi private val hexFormat = HexFormat { bytes.byteSeparator = "," } - @OptIn(ExperimentalStdlibApi::class) private fun packetToString(packet: DatagramPacket?): String { val sb = StringBuilder() sb.append("DatagramPacket{") diff --git a/server/desktop/build.gradle.kts b/server/desktop/build.gradle.kts index 3cfb1b726..1950bdbcc 100644 --- a/server/desktop/build.gradle.kts +++ b/server/desktop/build.gradle.kts @@ -58,8 +58,8 @@ dependencies { implementation(project(":server:core")) implementation(project(":solarxr-protocol")) - implementation("commons-cli:commons-cli:1.8.0") - implementation("org.apache.commons:commons-lang3:3.15.0") + implementation("commons-cli:commons-cli:1.11.0") + implementation("org.apache.commons:commons-lang3:3.20.0") implementation("com.google.protobuf:protobuf-java:4.31.1") implementation("net.java.dev.jna:jna:5.+") implementation("net.java.dev.jna:jna-platform:5.+") diff --git a/server/desktop/src/main/java/dev/slimevr/desktop/games/vrchat/RegEdit.kt b/server/desktop/src/main/java/dev/slimevr/desktop/games/vrchat/RegEdit.kt index d7f389243..3bbf88acc 100644 --- a/server/desktop/src/main/java/dev/slimevr/desktop/games/vrchat/RegEdit.kt +++ b/server/desktop/src/main/java/dev/slimevr/desktop/games/vrchat/RegEdit.kt @@ -86,7 +86,6 @@ class RegEditLinux : AbstractRegEdit() { } lateinit var registry: Map - @OptIn(ExperimentalStdlibApi::class) override fun getQwordValue(path: String, key: String): Double? { val value = registry[key] ?: return null if (!value.startsWith("hex(4):")) { @@ -152,7 +151,6 @@ class RegEditLinux : AbstractRegEdit() { } val KEY_VALUE_PATTERN = Regex(""""(.+)"=(.+)""") - @OptIn(ExperimentalStdlibApi::class) val HEX_FORMAT = HexFormat { upperCase = false bytes.byteSeparator = "," diff --git a/server/desktop/src/main/java/dev/slimevr/desktop/platform/SteamVRBridge.kt b/server/desktop/src/main/java/dev/slimevr/desktop/platform/SteamVRBridge.kt index 62d97964f..581a87384 100644 --- a/server/desktop/src/main/java/dev/slimevr/desktop/platform/SteamVRBridge.kt +++ b/server/desktop/src/main/java/dev/slimevr/desktop/platform/SteamVRBridge.kt @@ -375,12 +375,9 @@ abstract class SteamVRBridge( // External battery reporting anything > 0V. // The following should catch internal battery reporting and erroneous // readings. - if (((lowestLevel >= 200) || (lowestLevel < 0)) || - ( - (trackerVoltage < 3.2) && - (lowestLevel <= 0) || - ((trackerVoltage >= 5) && (lowestLevel > 150)) - ) + if ((lowestLevel >= 200 || lowestLevel < 0) || + (trackerVoltage < 3.2 && lowestLevel <= 0) || + (trackerVoltage >= 5 && lowestLevel > 150) ) { return } else {