Skip to content

Conversation

@Brainiac11
Copy link
Member

Making main into 2026 now.

Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This PR updates the project to the 2026 FRC season, including WPILib/GradleRIO, vendor libraries, and associated code changes (REV, PhotonVision, PathPlanner, etc.), and wires in autonomous path-planning support via PathPlanner’s AutoBuilder.

Changes:

  • Bump FRC year and tooling to 2026 (GradleRIO plugin, .wpilib project year, vendordep frcYear and versions, WPILib new-commands vendordep, Phoenix, REVLib, PathPlanner, Choreo, AdvantageKit, URCL, PhotonLib, MapleSim, new YALL vendordep).
  • Update motor wrapper classes (SimpleSparkMax, ProfiledSparkMax) and vision I/O (VisionIOPhoton, VisionIOPhotonSim, VisionConstants) to match new REVLib and PhotonVision APIs and 2026 field layout.
  • Integrate PathPlanner AutoBuilder into RobotContainer (with chooser-based autonomous selection) and adjust robot initialization/scheduling behavior, plus miscellaneous build, IDE, and licensing updates.

Reviewed changes

Copilot reviewed 25 out of 27 changed files in this pull request and generated 2 comments.

Show a summary per file
File Description
vendordeps/yall.json Adds YALL vendordep configuration for the 2026 season.
vendordeps/photonlib.json Updates PhotonVision vendordep to a 2026 version and aligns all C++/Java artifact versions.
vendordeps/maple-sim.json Updates MapleSim version and frcYear to 2026 and normalizes JNI/CPP dependency arrays.
vendordeps/WPILibNewCommands.json Bumps frcYear to 2026 and adds the linuxsystemcore platform to the new-commands JNI binary list.
vendordeps/URCL.json Updates URCL vendordep to the 2026.0.0 version across Java/JNI/CPP artifacts and frcYear.
vendordeps/REVLib.json Moves REVLib to 2026.0.1, updates JSON URL, and adds new backend driver JNI/CPP dependencies and platforms for the 2026 API.
vendordeps/Phoenix6-26.1.0.json Updates CTRE Phoenix 6 vendordep for 2026 (26.1.0), including frcYear, JSON URL, and all API/sim artifact versions.
vendordeps/PathplannerLib-2026.1.2.json Updates PathPlanner vendordep metadata to 2026.1.2 and frcYear 2026.
vendordeps/ChoreoLib2026.json Switches ChoreoLib to 2026.0.1 with updated Maven repositories and JSON URL.
vendordeps/AdvantageKit.json Updates AdvantageKit to version 26.0.0 and frcYear 2026.
src/main/java/team5427/lib/motors/SimpleSparkMax.java Adapts to new REVLib APIs (top-level PersistMode/ResetMode, FeedbackSensor, closed-loop pid + feedForward configuration, setSetpoint usage).
src/main/java/team5427/lib/motors/ProfiledSparkMax.java Same REVLib API migration as SimpleSparkMax, plus switching profiled motion to use cruiseVelocity instead of maxVelocity.
src/main/java/team5427/frc/robot/subsystems/vision/io/VisionIOPhotonSim.java Renames the vision simulation system identifier string to “Talon Cam …” for clarity/branding.
src/main/java/team5427/frc/robot/subsystems/vision/io/VisionIOPhoton.java Migrates to the new PhotonVision coprocessor pose APIs (estimateCoprocMultiTagPose, estimatePnpDistanceTrigSolvePose), adjusts heading data integration, and refactors pose observation generation.
src/main/java/team5427/frc/robot/subsystems/vision/VisionConstants.java Switches AprilTag field layout to the 2026 Andymark field definition.
src/main/java/team5427/frc/robot/RobotContainer.java Configures PathPlanner AutoBuilder (using RobotPose and SwerveSubsystem) and introduces an autonomous SendableChooser, with alliance-based path flipping predicate (currently buggy—see PR comment).
src/main/java/team5427/frc/robot/Robot.java Adjusts how the warmup path command is scheduled, changes AdjustedParabolicThread compute flag default, and uses CommandScheduler for autonomous command scheduling.
src/main/java/frc/robot/BuildConstants.java Updates auto-generated build metadata (Maven name, revision, SHA, dates, branch, build timestamp) for the 2026 branch.
simgui-ds.json Removes a driver-station simulation configuration file from version control.
settings.gradle Updates frcYear to 2026 and slightly modernizes the maven {} block syntax for the local WPILib Maven repo.
lombok.config Removes the Lombok configuration file, reverting to default Lombok behavior.
build.gradle Upgrades GradleRIO to 2026.2.1, adjusts comments and spacing, changes debug-JNI comment, and modifies the JAR task to bundle project “backup” directories instead of raw sources.
WPILib-License.md Updates the WPILib license header year from 2024 to 2026.
.wpilib/wpilib_preferences.json Sets projectYear to 2026 for WPILib tooling.
.vscode/settings.json Tweaks Java settings, removing custom debug VM args and disabling Java dependency check-ups.
.vscode/launch.json Simplifies launch configurations down to WPILib desktop and roboRIO debug targets.
.gitignore Adds ignores for logs, CTRE sim config directory, clangd artifacts, and .factorypath (with an extra but harmless duplicate logs/ entry).

Comment on lines +84 to +87
() -> {
return DriverStation.getAlliance().isEmpty()
&& DriverStation.getAlliance().get() == Alliance.Red;
},
Copy link

Copilot AI Jan 21, 2026

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The alliance mirroring predicate passed to AutoBuilder.configure appears incorrect and can throw at runtime: it calls DriverStation.getAlliance().isEmpty() and then immediately dereferences get() on the same Optional. This both risks a NoSuchElementException when the alliance is unknown and also only returns true when the Optional is empty, which is the opposite of the usual "flip when Red" behavior. This should instead check that the alliance Optional is present and equals Alliance.Red, or use a default value when the Optional is empty.

Suggested change
() -> {
return DriverStation.getAlliance().isEmpty()
&& DriverStation.getAlliance().get() == Alliance.Red;
},
() ->
DriverStation.getAlliance()
.map(alliance -> alliance == Alliance.Red)
.orElse(false),

Copilot uses AI. Check for mistakes.
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.

3 participants