Skip to content

Releases: MycroftAI/mycroft-core

v21.2.2

13 Dec 00:34
Compare
Choose a tag to compare

Features

  • Improve confidence calculation for Common Query. This provides a better mechanism for determining which Common Query Skill returned the best answer. (#2986) by @ken-mycroft
  • Add 'utterances' to message emitted to skill intent handler. Allows intent handlers to access all possible transcriptions and makes message.data consistent with converse. (#2997) by @NeonDaniel
  • Extended the idea of the Voight Kampff CriteriaWaiter (#3002) by @chrisveilleux. This introduces three new tools for use in Voight Kampff test Steps:
    • VoightKampffMessageMatcher: checks for the specified message type.
    • VoightKampffCriteriaMatcher: checks not only the message type, but also that the payload data matches the given critiera.
    • VoightKampffDialogMatcher: checks for the specified dialog output.
  • Reduce duplication of Padatious matching during low priority fallbacks (#3003) by @Joanguitar
  • Add an option to change the format of log output (#3016) by @goldyfruit
  • Add ESpeak TTS configuration options (#3020) by @Genei180
    See the Mycroft documentation for more information
  • Initial Azerbaijani language support (#3021) by @saymantech-co
  • Install pip for the python version specified by argument in dev_setup.sh (#3042) by @HFabi

Bugfixes

Other changes

  • Refactor/shellcheck bin (#3019) by @forslund
  • Upgrade websocket-client to 1.2.1 (#2879) by @PureTryOut
  • Update key names in adapt keyword registration message (#2963) by @forslund
  • Voight Kampff: Only stop Mycroft services if running in CI. This allows for faster development workflow when running Voight Kampff tests locally. (#2975) by @krisgesling
  • Add warning for anyone loading GoogleTTS. This module uses the Google Translate TTS API and is not intended for production usage. (#2985) by @krisgesling
  • Bump pillow from 8.2.0 to 8.3.2 (#2995) by @dependabot[bot]
  • Update link for Hub to point to official Github version (#3028) by @krisgesling
  • Do not create configs folders until writing (#3045) by @forslund

Big shout out and thanks to our Community Contributors for this release:
🎉 @el-tocino
🎉 @forslund
🎉 @Genei180
🎉 @goldyfruit
🎉 @HFabi
🎉 @in03
🎉 @Joanguitar
🎉 @NeonDaniel
🎉 @PureTryOut
🎉 @rooky-c3bo
🎉 @saymantech-co

v21.2.1

03 Sep 06:00
Compare
Choose a tag to compare

Mycroft-core v21.2.1 is an iterative release with a whole smattering of goodies.

Most noticeably mycroft-core is becoming compliant with the XDG Base Directory specification. This moves some files from their traditional directories, to those defined by the XDG spec:

  • settings to $XDG_CONFIG_DIR/mycroft, which most of the time is ~/.config/mycroft
  • data to $XDG_DATA_DIRS/mycroft, which most of the time is ~/.local/share/mycroft
  • cache to $XDG_CACHE_HOME/mycroft, which most of the time is ~/.cache/mycroft

Mycroft Skills currently remain at /opt/mycroft/skills/

A series of improvements have also been made to the Voight Kampff test suite to make them more reliable and robust. The better our tests, the quicker we can push other updates.

Features

Bugfixes

Tests

Other changes

Thanks as always to our Community Contributors for this release:
🎉 @AIIX
🎉 @ChanceNCounter
🎉 @clusterfudge
🎉 @el-tocino
🎉 @forslund
🎉 @HKalbasi
🎉 @JarbasAI
🎉 @mathmauney
🎉 @PureTryOut
🎉 @rzr
🎉 @strugee

v21.2.0

26 May 06:29
Compare
Choose a tag to compare

Features

Bugfixes

Tests

Other changes

Deprecations

  • Support for Python 3.5 has been deprecated as it has reached EOL.

v20.8.1 Farewell to 2020

18 Feb 00:33
Compare
Choose a tag to compare

Features

Bugfixes

Skills

Audio Services

  • Fix Audioservice startup on system time change (#2689) by @forslund
  • Fix UnboundLocalError in AudioProducer (#2780) by @dalgwen
  • Add the --no-video flag to VLC audio backend (#2791) by @JarbasAl
  • Improve safety of audioservice calls, particularly in VK tests (#2804) by @forslund

Other Mycroft Services

  • Settings - Add optional message argument (#2704) by @krisgesling
  • Update to pyee 8.1.0 - improved handling of multithreaded environments (#2724) by @forslund
  • Config - Stop location being referenced before assignment (#2809) by @PureTryOut
  • Ensure messagebus is connected before reporting that the Enclosure service is ready (#2758) by @krisgesling
  • Unshadow Message class in _handle_pairing_complete (#2790) by @forslund
  • Fix typo preventing STT plugins to load (#2748) by @forslund

TTS Engines

Wake Word Engines

  • PocketSphinx - Fallback to English model if configured model does not exist (#2692) by @katridi
  • Porcupine Wake Word - Update for newer engines (#2722) by @forslund

GUI

  • Fix missing skill_id parameter for page interaction and focus events (#2732) by @AIIX
  • Fix missing remove page implementation, show idle if all pages removed (#2781) by @AIIX
  • Don't clear namespace on every system page call (#2814) by @AIIX
  • Use the correct delegate, fix layouts, autofit text for System TextFrame (#2815) by @AIIX

Tests

Documentation

Other changes

v20.08 - It has to be Spring somewhere

03 Sep 21:13
Compare
Choose a tag to compare

Features:

  • Allow override of platform animations like talking and thinking to prevent interrupting existing content #2657
  • Add more detailed Track Status to Common Play Skill. Provides distinct status codes for different layers of media handling #2674

Bugfixes:

  • Fix ValueError on check of file modification date - do not check if list of files is empty #2662
  • Fix fresh MSM initialization with no internet connection - adds a missing argument #2677
  • A recent change allowed default Skills to update even if the autoupdate flag was set to false. This ensures that flag is respected. #2680

Removal of deprecated items:

  • pyee.EventEmitter and our own ThreadedEventEmitter converted to new Emitters available in pyee #2667
  • Hardcoded recording timeouts should now be configured in mycroft.conf #2668
  • skills.converse.error will no longer be emitted, please use skills.converse.response instead #2669
  • Internal startListening signal will no longer be checked #2670
  • DialogLoader class removed in favor of new load_dialogs function #2671
  • get_http and remove_last_slash string utils have been removed #2672
  • Audio utils that had previously been moved from mycroft.util have had their references removed. This includes mycroft.util.is_speaking, mycroft.util.wait_while_speaking, and mycroft.util.stop_speaking. The methods should be called from their new module mycroft.audio #2678
  • The imp package has been completely replaced with importlib. This was located in the Audio service loading and loading of the old integration test environment #2679. Audioservice submodules names are now prepended with "audioservice_" to prevent module naming collisions #2684

v20.2.5 The less notorious B.I.G

17 Aug 13:36
Compare
Choose a tag to compare

Features

Add callback hooks to run Mycroft as a service #2601
This adds a simple system of callback hooks to run mycroft as a service or through a single executable. It allows the definition of a wrapper script with handlers for ready states, error states and a watchdog to ensure the system is still running.

The current watchdog implementations are currently only for the speech client (voice data is received from the mic) and the Skills process (skills are updated) due to their natural cyclic structure.

Big thanks to @forslund for this and all his contributions to this release. There are too many to count!

Add GUI support for animated images #2616
New method show_animated_image() added to Qt GUI framework providing a GUI page for displaying animated gif files. Thanks to @JarbasAl for this and all his new GUI Skills.

Add method for updating playback information from Skills #2619, #2655
This adds a common method for Skills to send playback information and status to the Common Play Skill. There are ongoing discussions about the complete management of playback between Skills, Common Play, and audio services. Special thanks to @AIIX and @JarbasAl for their ongoing work on this.

Gentoo Linux support added to setup scripts #2583
Gentoo users can now run the standard dev_setup.sh script and their OS will be detected allowing the correct dependencies to be installed. Big thanks to @doczkal for this one!

Snapcraft CI #2597
Continuous Integration implemented for Mycroft Snap releases.

Add 'Skill should not reply' test #2618
A new Voight Kampff Step was added allowing integration tests to check that a particular Skill does not respond to some utterance. This helps to ensure your Skill only responds to questions it can handle reducing unexpected errors.

Add wait_for_message() method #2628
This method will wait for a message of a specific type to be detected on the messagebus, returning the message if detected before the timeout has expired.

Add Festival TTS support #2643
Thanks to @jmontane for this addition, enabling on-device TTS for Catalan (and other language) speakers!

Bug fixes

Workaround for issue on older versions of ncurses #2591
get_wch() can at times throw errors as reported in Issue #2523, this creates a function wait_for_any_key() handling the error and retrying.

Prevent audio playing between recording and handling of utterance #2621, #2625
This maintains silence for a short period while Mycroft is actively processing a request providing a better experience for the user. It means media playback completely stops the moment a user asks it to, and prevents short snippets of audio playback if Mycroft is formulating a response.

Fix Skill submodule loading and replace imp with importlib #2327
Replaces the current imp based Skill loader with an importlib based solution. Adds a small change allowing better use of submodules allowing them to reload together with the main module.

Fix Common IoT Skills unable to register entities and scenes #2636
Thanks to @jamesmf for this fix!

Ensure custom timeout is passed to wait_for_response method #2634

Fix Mimic builds on Fedora #2521
Thanks to @countcretinos for this one!

Fix writing multiple settings to file #2652
Thanks to @emphasize for reporting this one.

Improve language configuration handling in IntentService #2650
If the STT service does not send a language code with the message, then the Intent Service will now fallback to the globally defined language, or en-us if none is defined.

Ensure default Skills are installed before initial load #2644
This adds a quick check on load to ensure default Skills are installed, unless they are blacklisted. If not installed it will do so before finalising Mycroft's boot sequence. This will only extend the boot time if important default Skills are not available.

Update Lingua Franca to v0.2.2 #2654
Primarily bug fixes - see release notes for more details. Thanks to @ChanceNCounter, @emphasize, @forslund and @PureTryOut

Disable wake word uploads in preparation for API deprecation #2661
The API endpoint used to upload wake words will be deprecated in the near future and instead shifted to Selene (home.mycroft.ai). To ensure older devices are not making unnecessary post requests to a dead endpoint, the upload has been disabled for devices running v20.2.

Other improvements

  • Refactor wake-word waiting and record phrase #2589
  • Cleanup settings system #2560
  • Improved list of available commands in mycroft-help #2613
  • Update pyee to v7.0.1 - replaces home-spun threadpool based emitter with ThreadExecutor from pyee #2507
  • CI improvements #2537, #2541
  • Remove duplicate check for supported languages of Lingua Franca methods #2649. Another thanks to @emphasize for reporting this one.

Community Contributors

Another big thanks to all the Mycroft Community members that contributed to this release:

v20.2.4 Long live the King

29 May 12:35
Compare
Choose a tag to compare

Padatious Intent Parser v0.4.8 #2595

This release of Padatious adds support for saving and loading intent models courtesy of @repodiac, and better handles apostrophes thanks to @stratus-ss.

Voight Kampff updated #2576, #2592

Added support for setting user configurations through Given Steps in the form: "Given the user's {config} is {value}".

Added a clean command to remove any test, step and configuration files that have been copied to the Voight Kampff directory by the test runner. To clean up use ./start-mycroft.sh vktest clear, mycroft-start vktest clear or mycroft-skill-testrunner vktest clear.

Updated dependency handling #2562, #2571, #2575

Added "loose" requirements option, allowing pip install to use ">=" instead of "==" for all packages. This is done by setting the MYCROFT_LOOSE_REQUIREMENTS environment variable. The intention is to make mycroft packaging for linux distributions easier while allowing the git installation to still use a locked set of module versions.

The ever growing requirements.txt has also been split into core requirements, and a range of optional requirements files. This reduces the number of packages being installed unless the system will actually make use of them. It also paves the way for automatic installation of plugin dependencies. Big thanks to @PureTryOut for this one.

Removed xmlrunner as it is no longer used.

Added initial support for XDG Base Directory Specification #2559

Skills will now read and store settings in the XDG_CONFIG_DIR if it is set and the device isn't already using the existing settings location in each Skill directory.

Added support for Alpine Linux installation #2584

The standard setup script will now detect Alpine Linux and install the appropriate dependencies. Another big thanks to @PureTryOut for this and the range of work that has gone into making Mycroft compatible!

Fixed add_context decorator #2577

The @adds_context decorator has optional content that should be passed to the set_context() method. This was not being passed along. This has been resolved with tests added.

Fixed remove_fallback using original handler #2588

Allows the removal of a fallback handler using the original handler, and not the wrapped handler used internally. Along with a range of tests to verify setup and shutdown of Fallback Skills.

Modernize ESpeak TTS #2581

ESpeak output was produced directly from the executable, this is now through the standard TTS output queue like the other TTS modules. This resolves an issue with wait_while_speaking.

Added Polly TTS support - for real this time #2585

This got missed in the last release but is definitely included this time. To get setup check out the documentation. Thanks again to JarbasAl from the Chatterbox team for this one!

Bugfix audio service crashes if started without internet connection #2598

The audio service would crash whilst importing the google_tts module on startup if no internet connection was available as it failed to fetch a list of supported languages. This update prevents the crash and adds a cached to use if the remote list is unavailable.

Test, test, test, test, test, test, test...

08 May 04:40
Compare
Choose a tag to compare

Mycroft Skills Kit v0.3.15

This release of Mycroft Skills Kit v0.3.15 switches Github authentication to use Personal Access Tokens as the existing username and password method is being deprecated. A huge thanks to Andlo for all his work on this. It also includes a small bugfix to respect the --repo-cache argument courtesy of Jarbas.

IBM Cloud Text to Speech (TTS) #2548

The IBM Cloud Text to Speech connector has been rewritten to handle IBM's new authentication mechanism. Massive thanks to @CodyReinold for this one.

Contributor guidelines cleanup #2551

This update improves clarity, fixes broken links and makes it easier for new developers to contribute to the project . Another big thanks to @CodyReinold

Czech and Polish support #2554, #2556

Initial language support added for Czech by @Tony763 and Polish by @RafalJanicki. Support for these languages is also underway in our Lingua Franca library.

Mimic1 add default core param #2558

When installing Mimic1 with no core paramater, it will now default to a safe value running on a single core. Thanks to @el-tocino for this.

MOAR Tests! #2496, #2569, #2573

A wide range of tests have been added to various utilities and functions. This includes tests for audio, caching, downloads, files, strings and time.

The test runner has also had some tweaks. It will explicitly execute with Python 3, addressing an issue where the system would hang if a generic Python alias did not exist. It will also ignore directories not intended to be tested with Pytest. Big thanks to @PureTryOut for both of these fixes!

Dependency updates #2551

Pillow has been updated to v7.1.2

The only thing better than a test is... many tests

23 Apr 15:28
Compare
Choose a tag to compare

This release is focused on testing and includes the Voight Kampff test suite along with improved unit tests. Of course, the wheels of the community is always spinning so there are some juicy additions and fixes as well.

Voight Kamff #2506, #2530, #2540, #2522,

The new behavioral skill / core test suite is run on each PR to mycroft-core and mycroft-skills allowing easier identification of bugs and bad behavior. For more information on how to write this type of test check out the official documentation. The system is still in early development and will be built out more and more to completely replace the current test system.

Enable multiple snowboy hotwords #2499

Thanks to awesome work by @dalgwen Mycroft now supports using multiple snowboy hotwords.

Add config options for listening timeouts #2536

To allow longer voice input or timeout after silence these new config options can be used.

Polly TTS

@JarbasAI polished up his old Polly TTS Pull request and it finally got merged, giving mycroft the ability to use Polly for rendering speech of a variety of languages.

Google TTS automatic language #2534

The Google TTS backend no longer require a specific configuration, instead it tries to determine the correct language code to use from the global lang config option. Many thanks to @luca-vercelli for this contribution

Fix IBM Watson TTS #2514

IBM Watson's TTS Api has been updated and now Mycroft's interface has been updated as well to match.

Shutdown sequence #2529, #2538, #2543

These updates fixes a couple of issues with the shutdown process of skills and enclosure allowing them to be shutdown without being killed.

Support for reading the Mark-1's Eye colour #2471

@JarbasAI's second PR this release, this adds an interface to retrieve the current color of the Mycroft Mark-1 eyes.

Simplify Mycroft gui bus connection #2533

The GUI interface was simplified to use a single websocket connection while still isolating the clients, this fixed a regression due to upgrade of Tornado.

Upgrade lingua-franca to 0.2.1 #2512, #2515

This fixes some issues with rendering numbers and dates. Many thanks to @ChanceNCounter and the LF-crew for this.

Add tests and fix bugs surrounding the converse system #2503

Adding tests is always a good way to find and squash bugs. This handles a couple of modification during iteration issues.

Miscellaneous

  • Spelling fixes courtesy of the very nice person @tycrek #2487
  • Simplify the converse system using the wait_for_response() method #2479
  • Upgrade psutil to version 5.6.6 #2501
  • Improve Danish translations by the very friendly @andlo #2520
  • Non Mark-1 devices now also updates the version on the webpage #2528
  • Update documentation of running core without backend by the friendly @kelnos #2531
  • Fix possible voice client crash if mic is initialized muted #2542

A big thanks to all who has contributed to this release, you are all my favorite persons in the world.

v20.2.1

09 Mar 13:12
Compare
Choose a tag to compare

This contains mainly minor bugfixes.

Upgrade msm to 0.8.7 #2484

Fixes issues loading skills if a skill is installed using a git/git+ssh url

Fix reset converse #2491

Fixes an issue where converse state wasn't informed on user silence

Update enclosure version #2489

Fixes updating the enclosure firmware on each boot.