I updated the wpilib plugins, and the latest update seems to have introduced a major bug into RobotBuilder. If I modify the “extends Command” part of the class declaration for Commands, RobotBuilder overwrites the entire file. This bug is not triggered by adding comments to the beginning of the line, or by changing the visibility of the class. It only occurs when the base class is changed, or the class implements an interface.
I use a ParameterCommand base class for many of our commands, which allows me to set parameters from the SmartDashboard, so this bug is a very big problem for me. All the classes that extend ParameterCommand were overwritten the first time I regenerated the code after updating the Eclipse plugins.
There is also the possibility that this is not a new bug, because I may have not previously regenerated the code after adding the ParameterCommand
code.
Does anyone where I can get the earlier plugins, because the old versions are immediately removed from the update site when an update is released?
EDIT: This bug was not introduced in the latest update, it has been around for a while.
Are you sure you are getting a proper save of the changes you made? We have found that if we do not force saves efore updating from RB, that we can lose changes we made in eclipse.
RobotBuilder sees that the type of the command is not what the program exported (i.e. you changed ‘SomeCommand extends Command’ to ‘SomeCommand extends ParameterCommand’) and overwrites it. If you’re using custom command types, you should make a custom RobotBuilder extension for them instead of changing the type after the fact.
Well, the way we used to deal with RobotBuilder was do it once and never let that program touch our code again. We were burned too many times since we made the leap to Java.
This year we’re going a step farther: generate a TimedRobot WPILib template in VSCode, and then coding everything else up from WPILib command/subsystems skeletons.