==== Tech Notes ====
Connects to org.freedesktop.NetworkManager over DBus to determine
connectivity status.
==== Environment Notes ====
Adds dbus-next Python package as a requirement
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
* Check if GUI is connected rather than maintain list of platforms
There are already many Mycroft platforms that have GUIs
and this will only grow. We want to know if the device
has a GUI connected rather than if it is in a pre-defined
list of platforms.
* Create a mock GUI with a settable connected attribute
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.
* [log_format] Add an option to change the log format
Hacing an option to change the log format could be useful when logs
are shipped into an aggregator such as Elasticsearch.
The current format is very hard to parse.
* [log_format] Set default Formatter
Because mycroft.configuration.Configuration() class import LOG class,
a default Formatter have to be defined before import the
mycroft.configuration.Configuration() class.
* 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>
This changes the internally used names for entities and entity values when
sent on the messagebus and used interanally in the intent service from start / end to entity_value and entity_type.
This makes the terminology easier to understand and follow across into Adapt.
The old terms are still included and usable for compatibility but should be
removed in an upcoming major release (22.02).
This is convenience for Skill developers who can now import
all standard items from a single level. Eg:
from mycroft.skills import MycroftSkill, intent_handler, AdaptIntent
The mycroft.util.log module called LOG.init() which needs to read the config,
the configuration module imports the log system to log causing cyclic import
issues.
This moves the LOG.init() call out of the log module making it possible
to use the normal config system to init the logs and does a slight
re-arrangement so that the uninited log can be used.
- 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)
This reverts an unintentional breaking change.
A TTS engine may return a different file path than was requested.
This again uses the returned path but adds a deprecation warning
that this behaviour will no longer be supported in an upcoming release.
Fixes#2929
LF's only breaking change over the past two versions has been the
deprecation of `lang=None` as a valid parameter. This is because the new
language loading paradigm wants to load certain functions on the fly,
which it cannot do when it is explicitly told to look for a null lang.
I've addressed this by passing `lingua_franca.get_default_lang()` where
the `lang=None` call remained.
Bonus: Gets rid of over 200 DeprecationWarnings in unit tests!
Add __contains__ method to TTSCache, The cache contains a SHA if the SHA is
known and all expected files exists on disk.
This is handles unexpected system events in a more consistent manner and
will still be fast for the case where a new sentence needs to be
synthetisized.
These were being perceived by the community as mycroft-core deprecations
Ducking is required on other platforms so I think it's worth waiting to
see how we implement that before actually deprecating the methods.