Skip to content

Releases: JnyJny/busylight

OMG What Did I Do to My pyproject.toml?

24 Nov 05:24
Compare
Choose a tag to compare

This release was supposed to be a cool hack that fixed a bug reported in issue #301. Instead, after writing the cool hack and testing it, I discovered that all my publishing infrastructure was borked. I switched from a Makefile to using poethepoet to specify build and publish rules in my pyproject.toml. While I was in there goofing with it, I completely borked the extras section which broke the ability to install busylight-for-humans with and without the webapi extras. It's fixed now and I also fixed the pytests for pydantic model checking that were failing with the latest pydantic and finally fixed the poe rules to push the tags to GitHub so the workflows will run. Tests are passing, bugs are fixed and publishing seems unbroken for now.

Some Rough Edges Sanded Down

24 Feb 18:56
Compare
Choose a tag to compare

I forgot to make releases for 0.25 (at the least) so here is 0.26.0.

  • updated workflows to use checkout@v3 and setup-python3@v4
  • disabled logging by default for busylight and it's packages to cut down on noise
  • updated fastapi to pull in patched starlette which suffered from a config file vulnerability
  • small webapi fixes to keep status from failing while lights are animating.
  • Luxafor Bluetooth support from contributor @volkangurel
  • Many many updated dependencies, thanks @dependabot!

Well That Took Longer Than I Thought

12 Sep 02:56
Compare
Choose a tag to compare

New features:

  • Serial USB support

New light support:

  • Compusa fit-statUSB
  • MuteMe MuteMe
  • MuteSync MuteSync

Deprecated:

  • The fastapi based web api is now deprecated and will be replaced with a standalone project.

Windows tests are passing, weirdly. I still don't claim Windows support but it might be working better now.

Web API Docs Work - Again.

16 Jul 16:10
Compare
Choose a tag to compare

Fixed a self-inflicted bug regarding version tracking that broke FastAPIs automatic documentation generation. All good now.

New Light Day - MuteMe

15 Jul 19:31
Compare
Choose a tag to compare

This release includes initial support for the MuteMe LLC's family of devices:

  • MuteMe Original
  • MuteMe Mini

More Things Fixed than Broken

29 Jun 20:06
Compare
Choose a tag to compare
  • Improved blinking with multiple devices (it works now, so definitely improved)
  • Test coverage is hovering around 87% which is better.
  • Generally a more pleasing and consistent interface.

Now With asyncio and Stuff!

25 Apr 22:11
Compare
Choose a tag to compare

Ok I'm sorry, but I'm not sorry. This version contains breaking changes. Lots of breaking changes. So many breaking changes. All of these changes were in service of converting the programming model from threads (to allow each light to be animated concurrently by a separate software thread), to asyncio.Tasks. Converting to tasks allowed each thread to be animated concurrently from a single thread. The driving reason is the explicitly single-threaded nature of hidapi which was beginning to exhibit more unstable behavior when used in a multi-threaded environment.

Version 0.17.0 is a near complete re-write of busylight.lights.USBLight:

  • improved subclass support
  • expanded utility of class methods for USBLight
  • removed threading support for animations and keep alive activities
  • added asyncio support for animations and keep alive activities
  • improved exception handling to detect unplugged/unavailable lights

The manager class busylight.manager.LightManager was re-written:

  • updated for USBLight class and subclasses
  • improved exception handling of lights
  • switched threading for asyncio to support concurrency

The command-line interface was updated to use the LightManager class with only minor changes to the actual interface.

The tests suite was updated for the new asyncio implementation. The mocking isn't quite as clean as I would like, but it's good enough for now. The tests should run whether or not there are physical lights connected.

Lastly, the FastAPI web interface underwent significant changes:

  • routes were removed
  • routes were expanded to accept optional keyword arguments

Note: changes between versions 0.16 and 0.17 were mostly python version compatibility fixes and GitHub Action maintenance. The real changes happened between 0.15 and 0.16.

Full Changelog: 0.15.0...0.17.0

The End of Era

31 Mar 16:40
Compare
Choose a tag to compare

Barring unforeseen circumstances, this will be the finial version of Busylight For Humans™ utilizing a threaded model. The next version, provisionally 0.16.0, will use asynchronous I/O to implement features that previously used threads. The hidapi framework is single threaded, so it was basically lucky on my part that busylight worked as well as it did.

What's Changed

Full Changelog: 0.15.3...0.15.4

A Smidgeon of Pidgeons

05 Feb 20:47
Compare
Choose a tag to compare

ThingM blink lights now blink.

Luxafor Flag blink unbroken

09 Nov 03:43
Compare
Choose a tag to compare

This release fixes blink for the Luxafor Flag. It blinks now, where before it didn't.