# Changelog

This is the Changelog for SolversLib versions for 0.3.x and higher. It includes the changes made from the previous iteration, and important notes for it as well. You can change SolversLib documentation versions by using the selector in the top left corner.

## [0.3.3](https://docs.seattlesolvers.com/0.3.3/readme)

#### Core:

* Rewrote Hardware classes:
  * Deprecated [`ServoEx` interface](https://docs.seattlesolvers.com/0.3.3/features/hardware/motors-1#servoex-interface-and-simpleservo-class) and [`SimpleServo` class](https://docs.seattlesolvers.com/0.3.3/features/hardware/motors-1#servoex-interface-and-simpleservo-class)
    * The new [`ServoEx` class](https://docs.seattlesolvers.com/0.3.3/features/hardware/servos#servoex) serves as a replacement to both of the classes above.
  * Added [`CRServoEx`](https://docs.seattlesolvers.com/0.3.3/features/hardware/servos#crservoex-and-absoluteanalogencoder) and [`AnalogAbsoluteEncoder`](https://docs.seattlesolvers.com/0.3.3/features/hardware/servos#crservoex-and-absoluteanalogencoder) (4th wire support on Servos)
  * Added optional power caching to `Ex` classes like `MotorEx`, `ServoEx`, and `CRServoEx`, etc.
  * Added a Color Sensor class for the [`REV Color Sensor V3`](https://docs.seattlesolvers.com/0.3.3/features/hardware/sensors#sensors)
  * Modified [`SensorDistance`](https://github.com/FTC-23511/SolversLib/blob/master/core/src/main/java/com/seattlesolvers/solverslib/hardware/SensorDistance.java) & [`SensorDistanceEx`](https://github.com/FTC-23511/SolversLib/blob/master/core/src/main/java/com/seattlesolvers/solverslib/hardware/SensorDistanceEx.java) to handle custom minimum and maximum distance threshold values
* Beta Swerve support:
  * Added [`Point-to-Point`](https://docs.seattlesolvers.com/0.3.3/pathing/point-to-point) control
  * Rewrote Swerve kinematics and updated `ChassisSpeeds`
  * Created [`SolversLib Visualizer`](https://visualizer.seattlesolvers.com/) (forked from Pedro Pathing Visualizer)
* Implemented abstract [`Controller`](https://docs.seattlesolvers.com/0.3.3/features/controllers#using-the-controller-class) class and added [`SquIDF`](https://docs.seattlesolvers.com/0.3.3/features/controllers/squidf) controller
* Added native [`RetryCommand`](https://docs.seattlesolvers.com/0.3.3/command-base/command-system/convenience-commands#retrycommand) from Marrow

#### PedroPathing:

* Added two new Pedro Commands: [`TurnToCommand`](https://docs.seattlesolvers.com/0.3.3/pedro-pathing/pedro-commands/hold-point-command-2) and [`TurnCommand`](https://docs.seattlesolvers.com/0.3.3/pedro-pathing/pedro-commands/hold-point-command-1)&#x20;
* Added support for Pedro Pathing versions 2.0.0 and higher

## [0.3.2](https://app.gitbook.com/s/qHp1wuxUd3u5XDcqQNPs/)

#### Core:

* Added beta SquID support and early Swerve Kinematics
* Fixed `CommandScheduler`'s `cancelAll()` from throwing an error
* Added additional constructors to [`RepeatCommand`](https://docs.seattlesolvers.com/0.3.3/command-base/command-system/convenience-commands#repeatcommand)
* Rewrote SolversHardware wrappers into hardware

#### PedroPathing:

* Added new Pedro Command: [`HoldPointCommand`](https://docs.seattlesolvers.com/0.3.3/pedro-pathing/pedro-commands/hold-point-command)
* Added support for Pedro Pathing 1.0.9

## [0.3.1](https://app.gitbook.com/s/4WjwIOqhnAnCe7dwK3v4/)

#### Core:

* Add SolversHardware caching wrappers
* Fixed known FTCLib bugs/issues:
  * [Double ending issue in ParallelRaceGroup](https://github.com/FTCLib/FTCLib/pull/261)
  * [SequentialCommandGroup is incompatible with other command groups](https://github.com/FTCLib/FTCLib/issues/253)
  * [ConcurrentModificationException in cancelAll()](https://github.com/FTCLib/FTCLib/pull/260)
  * [IllegalAccessError when trying to build clean dev branch on Windows](https://github.com/FTCLib/FTCLib/issues/255)
  * [Missing Aliases for PS4 and PS5 buttons](https://github.com/FTCLib/FTCLib/issues/250)

#### Pedro Pathing:

* Added new Pedro Command: [`FollowPathCommand`](https://docs.seattlesolvers.com/0.3.3/pedro-pathing/pedro-commands/followpathcommand)
* Added support for Pedro Pathing 1.0.8
