Skip to content

Releases: SomewhatMay/uvlib

v0.4.3 - Sequential Command Group Fixed

02 Mar 20:10

Choose a tag to compare

What's Changed

Full Changelog: v0.4.2...v0.4.3

v0.4.2 - Advanced commands directory hotfix

18 Feb 00:16

Choose a tag to compare

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

17 Feb 23:27

Choose a tag to compare

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

17 Feb 05:44

Choose a tag to compare

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 the pros::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

16 Feb 05:50

Choose a tag to compare

v0.3.1 - Scheduler logic fix

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

16 Feb 02:05

Choose a tag to compare

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

See the README.md

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

15 Feb 03:53

Choose a tag to compare

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

13 Feb 21:58

Choose a tag to compare

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

  1. Download the attached uvlib@0.1.0.zip file
  2. Add the downloaded zip to your project directory
  3. Run
pros c fetch uvlib@0.1.0.zip; pros c apply uvlib@0.1.0
  1. Complete!

Remote Depot

Currently under work, unsure if working properly

  1. 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

  1. Run the following:
pros conductor update

Uninstallation

  1. Simply run
pros c uninstall uvlib

Full Changelog: v0.1.0-alpha...v0.1.1-hotfix

v0.1.0 Initial Preview

13 Feb 20:57

Choose a tag to compare

Pre-release

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

  1. Download the attached uvlib@0.1.0.zip file
  2. Add the downloaded zip to your project directory
  3. Run
pros c fetch uvlib@0.1.0.zip; pros c apply uvlib@0.1.0
  1. Complete!

Remote Depot

Currently under work, unsure if working properly

  1. 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

  1. Run the following:
pros conductor update

Uninstallation

  1. Simply run
pros c uninstall uvlib