Fix log autocomplete
==== Tech Notes ====
Due to the use of setattr(), IDEs like PyCharm couldn't use autocomplete on the LOG class. This unrolls the loop so that the logging attributes appear in the autocomplete menu.
This commit officially switches the mycroft-core repository from
GPLv3.0 licensing to Apache 2.0. All dependencies on GPL'ed code
have been removed and we have contacted all previous contributors
with still-existing code in the repository to agree to this change.
Going forward, all contributors will sign a Contributor License
Agreement (CLA) by visiting https://mycroft.ai/cla, then they will
be included in the Mycroft Project's overall Contributor list,
found at: https://github.com/MycroftAI/contributors. This cleanly
protects the project, the contributor and all who use the technology
to build upon.
Futher discussion can be found at this blog post:
https://mycroft.ai/blog/right-license/
This commit also removes all __author__="" from the code. These
lines are painful to maintain and the etiquette surrounding their
maintainence is unclear. Do you remove a name from the list if the
last line of code the wrote gets replaced? Etc. Now all
contributors are publicly acknowledged in the aforementioned repo,
and actual authorship is maintained by Github in a much more
effective and elegant way!
Finally, a few references to "Mycroft AI" were changed to the correct
legal entity name "Mycroft AI Inc."
==== Fixed Issues ====
#403 Update License.md and file headers to Apache 2.0
#400 Update LICENSE.md
==== Documentation Notes ====
Deprecated the ScheduledSkill and ScheduledCRUDSkill classes.
These capabilities have been superceded by the more flexible MycroftSkill
class methods schedule_event(), schedule_repeating_event(), update_event(),
and cancel_event().
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.