Skip to content

Conversation

SamCarlberg
Copy link
Member

@SamCarlberg SamCarlberg commented Jul 19, 2025

Allows user programs to use import module statements without needing to write module-info.java files (and keep them up to date as they add vendor libraries)

See wpilibsuite/allwpilib#7424

Note that CI checks will fail until EJML is modularized. It currently splits packages across multiple JARs, which is disallowed by the Java module system.

Allows user programs to use `import module` statements without needing to write `module-info,java` files (and keep them up to date as they add vendor libraries)
@SamCarlberg
Copy link
Member Author

Here's an example of the debug output with modularized versions of WPILib, EJML, and OpenCV:

2025-07-18T22:06:27.889-0400 [DEBUG] [org.gradle.api.Project] Adding modules to the compile task `compileJava`:
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module com.fasterxml.jackson.annotation from file:///home/sam/wpilib/2025/maven/com/fasterxml/jackson/core/jackson-annotations/2.15.2/jackson-annotations-2.15.2.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module com.fasterxml.jackson.core from file:///home/sam/wpilib/2025/maven/com/fasterxml/jackson/core/jackson-core/2.15.2/jackson-core-2.15.2.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module com.fasterxml.jackson.databind from file:///home/sam/wpilib/2025/maven/com/fasterxml/jackson/core/jackson-databind/2.15.2/jackson-databind-2.15.2.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module ejml.unified from file:///home/sam/.m2/repository/org/ejml/ejml-java9module/0.44.1-SNAPSHOT/ejml-java9module-0.44.1-SNAPSHOT.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module us.hebi.quickbuf.runtime from file:///home/sam/wpilib/2025/maven/us/hebi/quickbuf/quickbuf-runtime/1.3.3/quickbuf-runtime-1.3.3.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module wpilib from file:///home/sam/.m2/repository/edu/wpi/first/allwpilib/allwpilib-java/2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty/allwpilib-java-2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module wpilib.apriltag from file:///home/sam/.m2/repository/edu/wpi/first/apriltag/apriltag-java/2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty/apriltag-java-2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module wpilib.cameraserver from file:///home/sam/.m2/repository/edu/wpi/first/cameraserver/cameraserver-java/2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty/cameraserver-java-2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module wpilib.commands2 from file:///home/sam/.m2/repository/edu/wpi/first/wpilibNewCommands/wpilibNewCommands-java/2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty/wpilibNewCommands-java-2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module wpilib.core from file:///home/sam/.m2/repository/edu/wpi/first/wpilibj/wpilibj-java/2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty/wpilibj-java-2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module wpilib.cscore from file:///home/sam/.m2/repository/edu/wpi/first/cscore/cscore-java/2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty/cscore-java-2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module wpilib.datalog from file:///home/sam/.m2/repository/edu/wpi/first/datalog/datalog-java/2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty/datalog-java-2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module wpilib.epilogue from file:///home/sam/.m2/repository/edu/wpi/first/epilogue/epilogue-runtime-java/2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty/epilogue-runtime-java-2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module wpilib.hal from file:///home/sam/.m2/repository/edu/wpi/first/hal/hal-java/2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty/hal-java-2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module wpilib.math from file:///home/sam/.m2/repository/edu/wpi/first/wpimath/wpimath-java/2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty/wpimath-java-2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module wpilib.net from file:///home/sam/.m2/repository/edu/wpi/first/wpinet/wpinet-java/2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty/wpinet-java-2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module wpilib.ntcore from file:///home/sam/.m2/repository/edu/wpi/first/ntcore/ntcore-java/2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty/ntcore-java-2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module wpilib.opencv from file:///home/sam/.m2/repository/edu/wpi/first/thirdparty/frc2027/opencv/opencv-java/4.8.0-2/opencv-java-4.8.0-2.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module wpilib.units from file:///home/sam/.m2/repository/edu/wpi/first/wpiunits/wpiunits-java/2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty/wpiunits-java-2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty.jar
2025-07-18T22:06:27.890-0400 [DEBUG] [org.gradle.api.Project] Adding module wpilib.util from file:///home/sam/.m2/repository/edu/wpi/first/wpiutil/wpiutil-java/2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty/wpiutil-java-2027.424242.0.0-alpha-1-20250718184651-73-g98599da-dirty.jar

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant