Releases: SomewhatMay/uvlib
v0.4.3 - Sequential Command Group Fixed
What's Changed
- fixed sequential command group issue by @SomewhatMay in #46
Full Changelog: v0.4.2...v0.4.3
v0.4.2 - Advanced commands directory hotfix
What's changed
- This fixes the bug where the advanced commands API was not included in the release build
- To see a full list of changes, view the v0.4.0 release notes
Warning
This is a potentially code-breaking update. View the v0.4.0 release notes before updating for more information.
Full Changelog: v0.4.0...v0.4.2
v0.4.1 - Commands and input directory hotfix
What's changed
- This fixes the bug where the commands and input API were not included in the release build
- To see a full list of changes, view the v0.4.0 release notes
Warning
This is a potentially code-breaking update. View the v0.4.0 release notes before updating for more information.
Full Changelog: v0.4.0...v0.4.1
v0.4.0 - Command Composition
What's Changed
- Inline Commands
- FunctionCommand - Create an entire command with an initialize, execute, is_finished, and an end method all with lambdas!
- InstantCommand - A singular command that executes one action on the next tick and cancels itself
- WaitCommand - Useful for composing commands when you need a command to execute after a specific duration
- WaitUntlCommand - Executes until a specific condition, detailed by a lambda, is satisfied
- SequentialCommandGroup - Executes a chain of commands one by one, if and only if each command executes successfully in order.
- Composition Commands
- SequentialCommand - see above. Can be accessed directly through uvl::SequentialCommand, or through an ergonomic uvl::Command::and_then (or uvl::CommandPtr::and_then) method
- Triggers can now unbind specific all triggers commands or specific commands
- Controllers can now unbind all triggers
- Scheduler can now trivially cancel all scheduled commands
- Very useful for when trying to cancel all commands and clear the state of the Scheduler when moving from auto to opcontrol
uvl::Controllers now feature more native methods that link directly to thepros::Controller
Installing or Updating
See the README for more information on installation or updating existing code.
Warning
uvlib versions v0.3.x can be trivially migrated. However, your code-base may break if you update from any versions below v0.3.0.
Important
uvlib is still primarily untested code! Use the framework at your own risk. Expect buds and unexpected behaviour. If you encounter any problems, be sure to create an issue. Properly tested and production-ready code will only be released after version 1.0.0.
Full Changelog: v0.3.1...v0.4.0
v0.3.1
v0.3.1 - Scheduler logic fix
- Fixes a critical issue with the scheduler's logic
- For more details on changes in the v0.3.0, see the appropriate release notes
Warning
Any codebase using uvlib below version v0.3.0 may break upon update.
See the v0.3.0 release page for more information.
Note
The hotfix does not impact any v0.3.0 codebase.
Full Changelog: v0.3.0...v0.3.1
v0.3.0
Release Version v0.3.0
What's Changed
- Scheduler now deals with both raw Command pointers and CommandPtr objects
- Although this is not recommended, users can now choose to manage the memory of their Commands themselves when directly scheduling commands with the scheduler.
- Scheduler no longer schedules duplicate Commands when asked to
- Previously, the scheduler would happily schedule duplicate commands but not execute them. They would be removed the next tick automatically.
- Although this was more simplistic, it is totally unnecessary; the new system is much more optimized
- Users can no longer manually register subsystems; they are automatically registered when instantiated
- Controllers can no longer be copied or moved
- Since Controllers are Subsystems internally, this change made sense to have
- Users must use the same controller throughout the lifetime of the program
- More detailed header documentation
- New example robot code outlining the advanced features of uvlib!
- Outlines the use of Subsystem, Command (through CommandHelper), Controller, Trigger, Joystick, and the Scheduler.
- See more in src/example.cpp
- First advanced command: InstantCommand
- Execute any singular action that needs to only happen once
- Executed the very next tick and instantly unscheduled
- Minor security updates
Installing or Updating
Warning
This is a code-breaking change. Update at your own risk.
Important
uvlib is still primarily untested code! Use the framework at your own risk. Expect buds and unexpected behaviour. If you encounter any problems, be sure to create an issue. Properly tested and production-ready code will only be released after version 1.0.0.
Full Changelog: v0.2.0...v0.3.0
v0.2.0
Warning
This is a code-breaking update. Update existing code at your own risk.
What's changed
- CommandPtr: A new way to handle command memory ownership. The design philosophy is heavily inspired by WPILib's design structure. See more here
- All other classes have been modified accordingly to align with this change
Install or Update to v0.2.0
Full Changelog: v0.1.1-hotfix...v0.2.0
v0.1.1 hotfix
New changes
Nothing has changed since v0.1.0, except that builds now succeed. The issue was that templated functions were defined in the .cpp file; now they no longer are.
Installation
Manual Installation
- Download the attached
uvlib@0.1.0.zipfile - Add the downloaded zip to your project directory
- Run
pros c fetch uvlib@0.1.0.zip; pros c apply uvlib@0.1.0
- Complete!
Remote Depot
Currently under work, unsure if working properly
- Run the following commands
pros conductor add-depot uvlib https://raw.githubusercontent.com/SomewhatMay/uvlib/refs/heads/depot/stable.json
pros conductor apply uvlib
Update to the Latest Version
- Run the following:
pros conductor update
Uninstallation
- Simply run
pros c uninstall uvlib
Full Changelog: v0.1.0-alpha...v0.1.1-hotfix
v0.1.0 Initial Preview
Welcome
Although the library is nowhere near complete, most of the required features are public and usable* via a well-documented API.
*This version was programmed without a robot brain, and therefore, is not guaranteed to run without unexpected bugs and issues. No testing was conducted on the code's performance, size, or accuracy; use with caution.
Installation
Manual Installation
- Download the attached
uvlib@0.1.0.zipfile - Add the downloaded zip to your project directory
- Run
pros c fetch uvlib@0.1.0.zip; pros c apply uvlib@0.1.0
- Complete!
Remote Depot
Currently under work, unsure if working properly
- Run the following commands
pros conductor add-depot uvlib https://raw.githubusercontent.com/SomewhatMay/uvlib/refs/heads/depot/stable.json`
pros conductor apply uvlib
Update to the Latest Version
- Run the following:
pros conductor update
Uninstallation
- Simply run
pros c uninstall uvlib