[build] Upgrade Gradle wrapper and plugins (#8767)

This fixes builds on JDK 26 for me.
This commit is contained in:
Tyler Veness
2026-04-12 22:03:50 -07:00
committed by GitHub
parent 476b9641c1
commit 7af3ac579b
34 changed files with 36 additions and 39 deletions

View File

@@ -110,7 +110,6 @@ class AprilTagDetectorTest {
detector.removeFamily("tag16h5");
}
@SuppressWarnings("PMD.AssignmentInOperand")
public Mat loadImage(String resource) throws IOException {
Mat encoded;
try (InputStream is = getClass().getResource(resource).openStream()) {

View File

@@ -187,5 +187,5 @@ ext.getCurrentArch = {
}
wrapper {
gradleVersion = '9.2.0'
gradleVersion = '9.4.1'
}

View File

@@ -39,7 +39,6 @@ public class SequentialCommandGroup extends Command {
*
* @param commands Commands to add, in order of execution.
*/
@SuppressWarnings("PMD.UseArraysAsList")
public final void addCommands(Command... commands) {
if (m_currentCommandIndex != -1) {
throw new IllegalStateException(

View File

@@ -26,6 +26,7 @@ import java.lang.invoke.WrongMethodTypeException;
* <p>Teams don't need to use continuations directly with the commands framework; all mounting and
* unmounting is handled by the command scheduler and a coroutine wrapper.
*/
@SuppressWarnings("PMD.AvoidCatchingGenericException")
final class Continuation {
// The underlying jdk.internal.vm.Continuation object
// https://github.com/openjdk/jdk/blob/jdk-21%2B35/src/java.base/share/classes/jdk/internal/vm/Continuation.java
@@ -114,7 +115,7 @@ final class Continuation {
* @param scope the continuation's scope, used in yield
* @param target the continuation's body
*/
@SuppressWarnings({"PMD.AvoidRethrowingException", "PMD.AvoidCatchingGenericException"})
@SuppressWarnings("PMD.AvoidCatchingGenericException")
Continuation(ContinuationScope scope, Runnable target) {
try {
m_continuation = CONSTRUCTOR.invoke(scope.m_continuationScope, target);
@@ -132,7 +133,7 @@ final class Continuation {
* @return {@code true} for success; {@code false} for failure
* @throws IllegalStateException if not currently in this continuation's scope
*/
@SuppressWarnings({"PMD.AvoidRethrowingException", "PMD.AvoidCatchingGenericException"})
@SuppressWarnings("PMD.AvoidCatchingGenericException")
public boolean yield() {
try {
return (boolean) YIELD.invoke(m_scope.m_continuationScope);
@@ -148,7 +149,7 @@ final class Continuation {
* Mounts and runs the continuation body until the body calls {@link #yield()}. If the
* continuation is suspended, it will continue from the most recent yield point.
*/
@SuppressWarnings({"PMD.AvoidRethrowingException", "PMD.AvoidCatchingGenericException"})
@SuppressWarnings("PMD.AvoidCatchingGenericException")
public void run() {
try {
RUN.invoke(m_continuation);
@@ -167,7 +168,7 @@ final class Continuation {
*
* @return whether this continuation is completed
*/
@SuppressWarnings({"PMD.AvoidRethrowingException", "PMD.AvoidCatchingGenericException"})
@SuppressWarnings("PMD.AvoidCatchingGenericException")
public boolean isDone() {
try {
return (boolean) IS_DONE.invoke(m_continuation);
@@ -185,7 +186,7 @@ final class Continuation {
*
* @param continuation the continuation to mount
*/
@SuppressWarnings({"PMD.AvoidRethrowingException", "PMD.AvoidCatchingGenericException"})
@SuppressWarnings("PMD.AvoidCatchingGenericException")
public static void mountContinuation(Continuation continuation) {
try {
if (continuation == null) {

View File

@@ -10,6 +10,7 @@ import java.lang.invoke.MethodType;
import java.util.Objects;
/** A continuation scope. */
@SuppressWarnings("PMD.AvoidCatchingGenericException")
final class ContinuationScope {
// The underlying jdk.internal.vm.ContinuationScope object
// https://github.com/openjdk/jdk/blob/jdk-21%2B35/src/java.base/share/classes/jdk/internal/vm/ContinuationScope.java

View File

@@ -40,7 +40,7 @@ public class CvSource extends ImageSource {
}
/**
* Put an OpenCV image and notify sinks
* Put an OpenCV image and notify sinks.
*
* <p>The image format is guessed from the number of channels. The channel mapping is as follows.
* 1: kGray 2: kYUYV 3: BGR 4: BGRA Any other channel numbers will throw an error. If your image

View File

@@ -72,6 +72,7 @@ public class VideoListener implements AutoCloseable {
private static boolean s_waitQueue;
private static final Condition s_waitQueueCond = s_lock.newCondition();
@SuppressWarnings("PMD.AvoidCatchingGenericException")
private static void startThread() {
s_thread =
new Thread(

View File

@@ -37,10 +37,10 @@ mockito = ["mockito-core"]
# Similar logic applies for JMH
[plugins]
build-shadow = { id = "com.gradleup.shadow", version = "9.1.0" }
lint-errorprone = { id = "net.ltgt.errorprone", version = "4.3.0" }
lint-spotbugs = { id = "com.github.spotbugs", version = "6.4.2" }
lint-spotless = { id = "com.diffplug.spotless", version = "8.0.0" }
build-shadow = { id = "com.gradleup.shadow", version = "9.4.1" }
lint-errorprone = { id = "net.ltgt.errorprone", version = "5.1.0" }
lint-spotbugs = { id = "com.github.spotbugs", version = "6.4.12" }
lint-spotless = { id = "com.diffplug.spotless", version = "8.4.0" }
wpilib-gradle-jni = { id = "org.wpilib.GradleJni", version = "2027.0.0" }
# Note: these plugins can't be used. Their JARs are on the classpath for buildSrc,

Binary file not shown.

View File

@@ -1,6 +1,6 @@
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.4.1-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME

2
gradlew vendored
View File

@@ -57,7 +57,7 @@
# Darwin, MinGW, and NonStop.
#
# (3) This script is generated from the Groovy template
# https://github.com/gradle/gradle/blob/HEAD/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# https://github.com/gradle/gradle/blob/2d6327017519d23b96af35865dc997fcb544fb40/platforms/jvm/plugins-application/src/main/resources/org/gradle/api/internal/plugins/unixStartScript.txt
# within the Gradle project.
#
# You can find Gradle at https://github.com/gradle/gradle/.

View File

@@ -579,6 +579,7 @@ public final class NetworkTableInstance implements AutoCloseable {
m_poller = 0;
}
@SuppressWarnings("PMD.AvoidCatchingGenericException")
private void startThread() {
m_thread =
new Thread(

View File

@@ -859,6 +859,7 @@ public final class NetworkTableInstance implements AutoCloseable {
m_poller = 0;
}
@SuppressWarnings("PMD.AvoidCatchingGenericException")
private void startThread() {
m_thread =
new Thread(

View File

@@ -151,7 +151,7 @@ public class RomiGyro {
}
/**
* Return the rate of rotation of the gyro
* Return the rate of rotation of the gyro.
*
* <p>The rate is based on the most recent reading of the gyro.
*

View File

@@ -136,7 +136,7 @@ task run(type: JavaExec) {
build.dependsOn devClasses
jacoco {
toolVersion = "0.8.13"
toolVersion = "0.8.14"
}
jacocoTestReport {

View File

@@ -5,7 +5,7 @@ if (project.hasProperty('skipJavaFormat')) {
apply plugin: 'checkstyle'
checkstyle {
toolVersion = "11.0.0"
toolVersion = "13.4.0"
configDirectory = file("${project.rootDir}/styleguide")
config = resources.text.fromFile(new File(configDirectory.get().getAsFile(), "checkstyle.xml"))
}
@@ -13,7 +13,7 @@ checkstyle {
apply plugin: 'pmd'
pmd {
toolVersion = '7.16.0'
toolVersion = '7.23.0'
consoleOutput = true
reportsDir = file("$project.buildDir/reports/pmd")
ruleSetFiles = files(new File(rootDir, "styleguide/pmd-ruleset.xml"))

View File

@@ -29,6 +29,7 @@
<exclude name="LooseCoupling" />
<exclude name="NonExhaustiveSwitch" />
<exclude name="PreserveStackTrace" />
<exclude name="RelianceOnDefaultCharset" />
<exclude name="ReplaceHashtableWithMap" />
<exclude name="ReplaceVectorWithList" />
<exclude name="SystemPrintln" />
@@ -53,6 +54,7 @@
</rule>
<rule ref="category/java/design.xml">
<exclude name="AvoidDeeplyNestedIfStmts" />
<exclude name="AvoidThrowingNewInstanceOfSameException" />
<exclude name="AvoidThrowingRawExceptionTypes" />
<exclude name="CognitiveComplexity" />
@@ -68,11 +70,13 @@
<exclude name="LoosePackageCoupling" />
<exclude name="NPathComplexity" />
<exclude name="NcssCount" />
<exclude name="PublicMemberInNonPublicType" />
<exclude name="TooManyFields" />
<exclude name="TooManyMethods" />
</rule>
<rule ref="category/java/errorprone.xml">
<exclude name="AssignmentInOperand" />
<exclude name="AssignmentToNonFinalStatic" />
<exclude name="AvoidCatchingThrowable" />
<exclude name="AvoidDuplicateLiterals" />

View File

@@ -315,6 +315,7 @@ public abstract class RobotBase implements AutoCloseable {
}
/** Run the robot main loop. */
@SuppressWarnings("PMD.AvoidCatchingGenericException")
private static <T extends RobotBase> void runRobot(Class<T> robotClass) {
System.out.println("********** Robot program starting **********");

View File

@@ -198,7 +198,7 @@ public class SerialPort implements AutoCloseable {
}
/**
* Enable termination with the default terminator '\n'
* Enable termination with the default terminator '\n'.
*
* <p>Termination is currently only implemented for receive. When the terminator is received, the
* read() or readString() will return fewer bytes than requested, stopping after the terminator.

View File

@@ -87,7 +87,7 @@ public class ExpansionHub implements AutoCloseable {
private final DataStore m_dataStore;
/**
* Constructs a new ExpansionHub for a given USB ID
* Constructs a new ExpansionHub for a given USB ID.
*
* <p>Multiple instances can be constructed, but will point to the same backing object with a ref
* count.

View File

@@ -110,7 +110,7 @@ public class ExpansionHubServo implements AutoCloseable {
}
/**
* Sets the servo angle
* Sets the servo angle.
*
* <p>Servo angles range defaults to 0 to 180 degrees, but can be changed with setAngleRange().
*

View File

@@ -31,7 +31,6 @@ public abstract class MotorSafety {
private static final Object m_listMutex = new Object();
private static Thread m_safetyThread;
@SuppressWarnings("PMD.AssignmentInOperand")
private static void threadMain() {
int event = WPIUtilJNI.makeEvent(false, false);
DriverStationJNI.provideNewDataEventHandle(event);

View File

@@ -170,7 +170,7 @@ public class DutyCycleEncoder implements Sendable, AutoCloseable {
}
/**
* Get if the sensor is connected
* Get if the sensor is connected.
*
* <p>This uses the duty cycle frequency to determine if the sensor is connected. By default, a
* value of 100 Hz is used as the threshold, and this value can be changed with {@link

View File

@@ -48,7 +48,7 @@ eclipse {
}
jacoco {
toolVersion = "0.8.13"
toolVersion = "0.8.14"
}
jacocoTestReport {

View File

@@ -23,7 +23,6 @@ public class ExampleSmartMotorController {
*
* @param port The port for the controller.
*/
@SuppressWarnings("PMD.UnusedFormalParameter")
public ExampleSmartMotorController(int port) {}
/**

View File

@@ -21,7 +21,6 @@ public class ExampleSmartMotorController {
*
* @param port The port for the controller.
*/
@SuppressWarnings("PMD.UnusedFormalParameter")
public ExampleSmartMotorController(int port) {}
/**

View File

@@ -21,7 +21,6 @@ public class ExampleSmartMotorController {
*
* @param port The port for the controller.
*/
@SuppressWarnings("PMD.UnusedFormalParameter")
public ExampleSmartMotorController(int port) {}
/**

View File

@@ -7,7 +7,6 @@ package org.wpilib.math.autodiff;
import java.util.OptionalInt;
/** Represents a sequence of elements in an iterable object. */
@SuppressWarnings("PMD.UnusedFormalParameter")
public class Slice {
/** Type tag used to designate an omitted argument of the slice. */
public static class None {

View File

@@ -54,7 +54,7 @@ public class Variable implements AutoCloseable {
* @param handleTypeTag Handle type tag.
* @param handle Variable handle.
*/
@SuppressWarnings({"PMD.UnusedFormalParameter", "this-escape"})
@SuppressWarnings("this-escape")
public Variable(Handle handleTypeTag, long handle) {
m_handle = handle;
VariablePool.register(this);

View File

@@ -68,7 +68,6 @@ public class PoseEstimator<T> {
* in meters, y position in meters, and heading in radians). Increase these numbers to trust
* the vision pose measurement less.
*/
@SuppressWarnings("PMD.UnusedFormalParameter")
public PoseEstimator(
Kinematics<T, ?, ?> kinematics,
Odometry<T> odometry,

View File

@@ -75,7 +75,6 @@ public class PoseEstimator3d<T> {
* in meters, y position in meters, z position in meters, and angle in radians). Increase
* these numbers to trust the vision pose measurement less.
*/
@SuppressWarnings("PMD.UnusedFormalParameter")
public PoseEstimator3d(
Kinematics<T, ?, ?> kinematics,
Odometry3d<T> odometry,

View File

@@ -378,7 +378,7 @@ public final class DynamicStruct {
* @throws IllegalArgumentException if field is not a member of this struct
* @throws IllegalStateException if struct descriptor is invalid
*/
@SuppressWarnings({"PMD.CollapsibleIfStatements", "PMD.AvoidDeeplyNestedIfStmts"})
@SuppressWarnings("PMD.CollapsibleIfStatements")
public String getStringField(StructFieldDescriptor field) {
if (field.getType() != StructFieldType.CHAR) {
throw new UnsupportedOperationException("field is not char type");

View File

@@ -11,11 +11,7 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
import java.util.Optional;
import org.junit.jupiter.api.Test;
@SuppressWarnings({
"PMD.TestClassWithoutTestCases",
"PMD.UnusedFormalParameter",
"RedundantModifier"
})
@SuppressWarnings({"PMD.TestClassWithoutTestCases", "RedundantModifier"})
class ConstructorMatchTest {
public static class TestClass {
public TestClass() {}

View File

@@ -165,7 +165,7 @@ public class XRPGyro {
}
/**
* Return the rate of rotation of the gyro
* Return the rate of rotation of the gyro.
*
* <p>The rate is based on the most recent reading of the gyro.
*