Fix configuration manager saving
==== Tech Notes ====
Fixes ConfigurationManager.save() method. Previously incorrect use of dict update method resulted in empty config. Now the saved dict is recursively merged to only update affected fields.
==== Tech Notes ====
Add mycroft.skill.handler.start and mycroft.skill.handler.complete to fallback handler. handler in data field will be called "fallback" upon completion the used handler will be reported in the "fallback_handler" data entry.
* fix
* pep8
* fallback handler name
==== Tech Notes ====
If cancel + add event messages arrive at roughly the same time the add
would be overridden by the cancel. More intuitive to handle cancel first
and add new arrived events after.
==== Tech Notes ====
update_event and cancel_event did not use a name unique to the skill
forcing the user to build it themselves. Now the unique name is
constructed in the method _unique_name() for all event scheduling
methods.
Significant edit:
* Remove mentions of old start.sh / mycroft.sh
* Enhanced getting started instructions with more explicit steps
* Reorganized to place most commonly wanted information up front.
Remove the "restart" option, instead all of the background services
now automatically check to see if they are already running and will
be stopped then restarted if so.
Also fixed a few Codacy complaints.
The default when no parameter is entered is now to display the help.
To start services you can use 'all', or 'debug' to start them followed
but starting the CLI
Reworking the mechanisms used to interact with Mycroft. The old
mycroft.sh utilized the 'screen' command, but now with the CLI it
it easier to use that for viewing log files. Plus there was
confusion between when to use start.sh and when to use mycroft.sh.
Now things are wrapped in the simple and easily discoverable scripts:
* start-mycroft.sh
* stop-mycroft.sh
The start-mycroft.sh allows you to start the background services and
to invoke the various tools (e.g. the CLI, unit tests, etc).
==== Fixed Issues ====
==== Documentation Notes ====
This will require revamp of the getting started guides, etc.
==== Tech Notes ====
when using multiple decorators on a method inspect will return incorrect
values despite @wraps. This causes the intent handler to fail to
execute.
@decorator can't really be of help here since it doesn't handle
decorators with arguments (as far as I can understand)
This is a workaround using the fact that the argument count will be zero
on methods with multiple decorators, and basically tries the usual
signatures
MSM was invoking 'sudo chown' every time it installs new skills.
However the skill folder is already under the correct user when it
has been installed this way, so the chown is unnecessary. Now we
check for the user and group before performing the action.
On a Raspbian platform, MSM was attempting to perform a 'sudo chown'
on the skill folder after the install using a sudo command. When
running inside mycroft-core as the 'mycroft' user, there is no
'sudo' permission. However, this step isn't even needed since the
user installed as mycroft and the folder has the correct permissions.
Now it checks the user and group before attempting to perform the
action.
Semi-major rework of the Mycroft Skill Manager (MSM), including:
==== Tech Notes ====
- Add parse skill name strings support for quoted strings, e.g.: msm install "daily meditation" Previously it would search for "daily" and also search for "meditation", but both independently.
- All commands return distinct error codes. Commands with that perform multiple things, such as 'msm default' will continue on a failure of one skill and return the highest error code ultimately.
- Add 'msm remove', essentially the inverse of 'msm install'
- Changed the example install URL to a penrods repo since the ethanward repo no longer exists.
- Reworked skill list caching to behave properly with $( ) subprocess operations.
- Output for "install" and "remove" is now between hyphen lines, making them easier to parse.
- Revamped many informational and error messages
- Published under Apache 2.0 license
Semi-major rework of the Mycroft Skill Manager (MSM), including:
* Add parse skill name strings support for quoted strings, e.g.:
msm install "daily meditation"
Previously it would search for "daily" and also search for
"meditation", but both independently.
* All commands return distinct error codes. Commands with
that perform multiple things, such as 'msm default' will
continue on a failure of one skill and return the highest
error code ultimately.
* Add 'msm remove', essentially the inverse of 'msm install'
* Changed the example install URL to a penrods repo since the
ethanward repo no longer exists.
* Reworked skill list caching to behave properly with $( )
subprocess operations.
* Output for "install" and "remove" is now between hyphen
lines, making them easier to parse.
* Revamped many informational and error messages
* Published under Apache 2.0 license
A corresponding update to the skill-installer will take
advantage of these changes.