v0.4.9.0 - BETA
Pre-release
Pre-release
What's Changed
Due to large library updates, things may be broken, this is a beta release.
If you have the time, please test and report what's broken.
- Fixed adding custom controllers when using the generic HID driver.
- Added error messages to some assert crashes.
Especially the one which can be triggered by creating duplicate devices through custom controllers, now the user is at least informed on how to deal with it. - Documented that running sc-controller on Windows is (or at least was) possible, untested.
Also added some documentation regarding AppImages/Flatpak. - Stopped marking some dependencies as optional.
While they are still optional in the code for now, they will probably be hardcode-required in a future release.
This prevents weird bugs due to having different environments between different systems. - Unified spelling of LICENSE vs LICENCE and switched to the correct SPDX identifier.
- Fixed some Evdev deprecations as
.fnis now deprecated and.pathneeds to be used. - Updated the Game Controller DB to the latest upstream version with 3 years worth of fixes and additions.
- Copypasted and hardcoded libraries were found while digging in the codebase under
scc/lib.
This means sc-controller was using these extremely dated(some 8+ years) libraries with old behavior and old bugs:libusb1- Torn out and imports replaced,libusb1is now a new dependency.
This or the other changes seemingly broke input methods which now providebytearraysinstead ofbytesand may need to be converted where appropriateenum- This is the worst one as it seems to be torn out from core Python 2(???), fixing this drastically changes how enums are handled.
In some places, referring to the enum now gives its value instead of the expected full name.
Tests themselves, parsers and some code had to be fixed.
Current tests do not catch everything, so there's more work to be donedaemon- Tiny customized Daemon implementation, perhaps makes sense but needs to be typed at minimum in the future.eudevmonitor- Custom udev monitor implementation.
Might make sense to migrate to https://github.com/pyudev/pyudev or https://pypi.org/project/udev-monitor/ioctl_opt- Updated to the latest 1.3 - will be torn out in the future and made into a proper dependency.jsonencoder- Seems to be an override of Python json, as if having a custom JSON parser elsewhere wasn't enough.
It probably shouldn't be done in this fashion, needs further pokinghidraw- Seems like sc-controller added two helper function to it which make it harder to remove the bundling, being resolved here vpelletier/python-hidraw#4hidparse- Looks like a custom implementation, might make sense to migrate it to https://github.com/usb-tools/python-hid-parserhidparse_data- Enums separated from the abovehidparseimplementationxinput- Custom xinput library, there are probably better solutions, did not checkxwrappers- Custom X library, same as above
- We now properly target Python 3.8+ with Ruff lint rules
- Various files have been semi-formatted by them, and types have started being added for easier debugging
Full Changelog: v0.4.8.21...v0.4.9.0