This replaces save_*_path with usage of the xdg_*_home when handling
config files. This means the config folders will not be created unless
actually written to.
The check for whether a directory needs to be created is handled behind
a lock to avoid race conditions
PR #2879 updated the websocket-client and changed function
signatures to account for API changes in that package. These
were falsely changed as the GUI bus does not use the
websocket-client.
Consistency would be good however modifying the protocols
would require significant work. For now we have two slightly
different bus interfaces.
* Upgrade websocket-client to 1.2.1
core equivalent of https://github.com/MycroftAI/mycroft-messagebus-client/pull/21
There was an incompability with the latest websocket-client and the
messagebus which needed fixing for Linux distro compatibility. Since
messagebus-client was going to depend on websocket-client 1.2.1, let's
do the same in core
* Bump message bus client and tornado versions
New version of the messagebus-client released.
Upgraded Tornado to match new function signature.
* Revert removal of websocket-client
It is still used in the `mycroft.client.text.gui_server`
Should investigate removal of this so that websocket client versions do not need to be
kept in sync between mycroft-core and mycroft-messagebus-client.
Co-authored-by: Kris Gesling <kris.gesling@mycroft.ai>
- Add TODO for 22.02 to remove the compatibility code
- Make Warning a single Log statement
- mycroft-config script now uses XDG-environment variable
- Remove redundant code
- Replace hard coded references to ~/.config
- Explicitly remove new path before move of "filesystem" (if needed)
Previously Mycroft reported mycroft.ready when Padatious had
finished it's first training run. This check has been shifted
to the enclosure service, and starts checking once the Padatious
training is complete.
Currently checks on readiness of audio, speech and skills services.
Switch to new standard method to connect to bus client
Ensure exceptions during .run() are raised to the Enclosure service
Add missing .stop() method to base Enclosure Class
Shift call of .stop() to after exit signal
- skills
- audio
- speech client
- messagebus service
- enclosure
The main functions now accepts the arguments ready_hook and error_hook
allowing a service or runner script to catch these states and perform
actions accordingly.
This is useful for things like systemd or a desktop launcher.
Fix audio service startup
Some dependencies aren't actually required but can be optionally
installed for extra functionality.
The Chromecast is an optional audio backend
VLC is an optional audio backend
pyalsaaudio is only used by the mark1 enclosure
google-api-python-client is an optional STT backend, by default Mycroft
uses the Mycroft servers
Major refactoring of the skills startup sequence
- Restructure to a less nested structure
- Remove usage of globals by wrapping a lot of state variables into a class this allows for things like caching a negative pairing status throughout the startup process
Message bus config loading is now shared by service and client.
messagebus.client.ws file is still available in case skills are using it. It is a backport that inherits from the new MessageBusClient class. Adds depreciation warning.
* Catch the new system.gui.user.interaction
This will in turn trigger the gui.page_interaction similar to the page flip but page_number will be None
* Fix issue when adding pages
Seems like appending would fail at times
* Add lock around namespace modifications
* Improve argument description for override_idle