Change Log ---------- 8.0.3 ----- - Updated the copyright year to 2024. Also updated the GPL v3 license link in `SwerveDrive.java`. - Updated WPILib to `2023.4.3`. - Updated Gradle to `8.5`. Note that the build now produces deprecation warnings; these will be dealt with at a later date. - Updated all vendor libraries to their latest 2023 code. 8.0.2 ----- - Updated the contributing instructions to note the usage of CVS instead of Git. - Added a notice to this README announcing the deprecation of SwerveIO. I'm sad to see this project go, and maybe I'll revive it at some point later in life, but if nobody expresses any interest in what I've done here, then I'll lay this project to rest. I'll of course still host all the source code here, and if you're considering forking SwerveIO, I'd say reach out to me and email me because I want to be involved! **Note:** This release makes no code or build changes. It simply bumps the version number so that I could update this README. For that reason, I have no idea if SwerveIO still builds with current tooling, but I know that if for some reason it doesn't, we can get it going again in no time, just send me an email. 8.0.1 ----- - Updated CTRE Phoenix to the latest kickoff release. This fixes a build error that some Windows users were encountering when trying to build against the local Maven repository. 8.0.0 ----- Welcome to the 2022 Kickoff! This release includes all the changes from `8.0.0-rc1` and `8.0.0-rc2`, so if you're upgrading from SwerveIO 7x, make sure to read the release notes for those too! - Updated WPILib to '2022.1.1', the kickoff release of WPILib. - Upgraded the SparkMax API to REVLib 2022. - The `SparkMaxEncoder` class constructors were updated to reflect the changes made to how REV does encoders. Some breaking changes were made for users that weren't using the default constructor. If you were using the default constructor, you should notice no changes. - Removed the `LegacySpeedController` class introduced in `-rc1` because all vendors now support WPILib's `SpeedController`. 8.0.0-rc2 --------- - Updated WPILib to `2022.1.1-rc-1`. - Updated OpenCV to `4.5.2-1`. - Made some internal variables `final`. SwerveIO 8.0.0 will be released when WPILib 2022.1.1 is, which will most likely occur before or during the 2022 kickoff. At this time, I am considering breaking all WPILib support off into a separate Gradle subproject, because of the recent breaking changes. SwerveIO will still fully support WPILib, but will also provide all its own interfaces so that it can be used entirely separate if necessary. 8.0.0-rc1 --------- SwerveIO 8x brings SwerveIO up to date with WPILib 2022.x. This release should look a lot like the previous releases. However, WPILib made a lot of breaking user-facing API changes. This update is simply to reflect those changes and make SwerveIO compatible with future releases of WPILib and vendor libraries. **Note:** This release of SwerveIO is not compatible with WPILib 2021 or earlier. It *requires* WPILib 2022.1.1 or later. The breaking changes are as follows: * Replaced all references to the deprecated `SpeedController` with the new `MotorController`. All interfaces and implementations were adjusted accordingly. Other non-breaking changes are also included in this release: * Replaced a reference to the deprecated `DriverStation.getInstance()` with just `DriverStation`. * Added the `LegacySpeedController` class to support vendor APIs that haven't updated their APIs to use the latest WPILib. Note that this class is already deprecated and schedule for removal as soon as all supported hardware vendors update their APIs or WPILib removes the `SpeedController` interface, whichever happens first. * Cleaned up this README document to reflect the current state of SwerveIO. * Updated the copyright headers throughout the code. 7.0.4 ----- * Updated the IntelliJ configuration to use the system's JDK instead of a hard-coded JDK. * Updated Gradle from `7.2` to `7.3.3`. * Updated WPILib to `2022.1.1-beta-4`. * `[vendor/kauai]` Updated NavX library to `4.0.435`. * As far as I can tell, it looks like CTRE Phoenix is working again. As of the date of this release, SwerveIO can be built normally. 7.0.3 ----- * Added an IntelliJ `.idea` folder for developing SwerveIO with IntelliJ. Since I'm no longer on the robotics team, I don't use VS Code much anymore, so I've become much more familiar with IntelliJ. Obviously IntelliJ cannot be used by students, because students require the WPILib VS Code plugins, but since I'm not going to be directly deploying SwerveIO to a robot, I can use IntelliJ. * Updated Gradle from 7.1.1 to 7.2. * Updated CTRE Phoenix from 5.19.4 to 5.20.0. Note that at this time, neither version will build with SwerveIO because the CTRE Maven repository is broken. It does not match what is in the vendor JSON description file, and indexing is not allowed, so I'm unable to troubleshoot. If anyone knows what's up with this, or has a fix, please contact me at [jordan@bancino.net](mailto:jordan@bancino.net). * Documented the LogIO classes. 7.0.2 ----- Updated Gradle from 7.0.1 to 7.1.1, and fixed some broken links. 7.0.1 ----- Fixed some errors in the Javadoc home page that prevented the documentation from building correctly on JDK 11. 7.0.0 ----- SwerveIO 7.0.0 cleans up a lot of the API, making for neater and less fragmented code. This release also simplifies the build system and documentation, and attempts to decouple both from Jordan Bancino's infrastructure so that SwerveIO is fully self-contained. * Removed all methods and classes that were deprecated as of the previous release. * Removed all kit module constructors that referenced angle offsets, because angle offsets are now handled at the `SwerveDrive` level using `saveAngleOffsets()` and `loadAngleOffets()` * Merge LogIO directly into the SwerveIO source tree. LogIO is now a part of SwerveIO Core, instead of being it's own artifact. The package name will stay the same and this change will be reversed if LogIO becomes needed for future projects. * Update dependencies: * **Gradle:** 7.0 -> 7.0.1 6.1.2 ----- This release doesn't make any changes directly to SwerveIO; it is simply a dependency update: * **WPILib:** 2021.2.2 -> 2021.3.1 * **Gradle:** 6.8.3 -> 7.0 * JCenter is being shut down, so now certain dependencies are loaded from Maven Central.