Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
28 changes: 6 additions & 22 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,36 +1,20 @@
# Changelog

## [7.0.10a1](https://github.com/OpenVoiceOS/ovos-workshop/tree/7.0.10a1) (2025-11-09)
## [8.0.1a2](https://github.com/OpenVoiceOS/ovos-workshop/tree/8.0.1a2) (2025-12-18)

[Full Changelog](https://github.com/OpenVoiceOS/ovos-workshop/compare/7.0.9a1...7.0.10a1)
[Full Changelog](https://github.com/OpenVoiceOS/ovos-workshop/compare/8.0.1a1...8.0.1a2)

**Merged pull requests:**

- fix: deprecations, imports, unittests [\#373](https://github.com/OpenVoiceOS/ovos-workshop/pull/373) ([JarbasAl](https://github.com/JarbasAl))
- chore: Configure Renovate [\#377](https://github.com/OpenVoiceOS/ovos-workshop/pull/377) ([renovate[bot]](https://github.com/apps/renovate))

## [7.0.9a1](https://github.com/OpenVoiceOS/ovos-workshop/tree/7.0.9a1) (2025-07-08)
## [8.0.1a1](https://github.com/OpenVoiceOS/ovos-workshop/tree/8.0.1a1) (2025-12-16)

[Full Changelog](https://github.com/OpenVoiceOS/ovos-workshop/compare/7.0.8a1...7.0.9a1)
[Full Changelog](https://github.com/OpenVoiceOS/ovos-workshop/compare/8.0.0...8.0.1a1)

**Merged pull requests:**

- fix: ocp skills [\#365](https://github.com/OpenVoiceOS/ovos-workshop/pull/365) ([JarbasAl](https://github.com/JarbasAl))

## [7.0.8a1](https://github.com/OpenVoiceOS/ovos-workshop/tree/7.0.8a1) (2025-07-08)

[Full Changelog](https://github.com/OpenVoiceOS/ovos-workshop/compare/7.0.7a1...7.0.8a1)

**Merged pull requests:**

- fix: rm \_\_del\_\_ method [\#368](https://github.com/OpenVoiceOS/ovos-workshop/pull/368) ([JarbasAl](https://github.com/JarbasAl))

## [7.0.7a1](https://github.com/OpenVoiceOS/ovos-workshop/tree/7.0.7a1) (2025-06-21)

[Full Changelog](https://github.com/OpenVoiceOS/ovos-workshop/compare/7.0.6...7.0.7a1)

**Merged pull requests:**

- refactor/remove the compatibility layer with MycroftSkill in the skill launcher [\#362](https://github.com/OpenVoiceOS/ovos-workshop/pull/362) ([JarbasAl](https://github.com/JarbasAl))
- fix: standalone skills wait\_for\_core [\#375](https://github.com/OpenVoiceOS/ovos-workshop/pull/375) ([JarbasAl](https://github.com/JarbasAl))



Expand Down
92 changes: 46 additions & 46 deletions downstream_report.txt
Original file line number Diff line number Diff line change
@@ -1,47 +1,47 @@
ovos-workshop==7.0.9a1
├── ovos-skill-screenshot==0.0.7 [requires: ovos-workshop]
├── ovos-skill-fallback-unknown==0.1.9 [requires: ovos-workshop>=6.0.0,<8.0.0]
├── ovos-skill-parrot==0.1.26a1 [requires: ovos-workshop>=7.0.0,<8.0.0]
├── ovos-skill-application-launcher==0.5.14 [requires: ovos-workshop>=6.0.0,<8.0.0]
├── ovos-skill-icanhazdadjokes==0.3.7 [requires: ovos-workshop>=0.0.15,<8.0.0]
├── ovos_padatious==1.4.3 [requires: ovos-workshop>=0.1.7,<8.0.0]
├── ovos_common_query_pipeline_plugin==1.1.9 [requires: ovos-workshop>=0.1.7,<8.0.0]
├── ovos-skill-laugh==0.2.3 [requires: ovos-workshop]
├── ovos-skill-fuster-quotes==0.0.4 [requires: ovos-workshop]
├── ovos-skill-local-media==0.2.13a1 [requires: ovos-workshop>=2.4.0,<8.0.0]
├── ovos-skill-pyradios==0.1.5 [requires: ovos-workshop>=0.0.16,<8.0.0]
├── ovos_core==2.1.1 [requires: ovos-workshop>=7.0.6,<8.0.0]
ovos_workshop==7.0.10a1
├── ovos-skill-fallback-unknown==0.1.9 [requires: ovos_workshop>=6.0.0,<8.0.0]
├── ovos-skill-parrot==0.1.26a1 [requires: ovos_workshop>=7.0.0,<8.0.0]
├── ovos-skill-speedtest==0.3.7a2 [requires: ovos_workshop>=0.0.12,<8.0.0]
├── ovos-skill-icanhazdadjokes==0.3.7 [requires: ovos_workshop>=0.0.15,<8.0.0]
├── ovos_padatious==1.4.3 [requires: ovos_workshop>=0.1.7,<8.0.0]
├── ovos-skill-screenshot==0.0.8a3 [requires: ovos_workshop]
├── ovos_common_query_pipeline_plugin==1.1.9 [requires: ovos_workshop>=0.1.7,<8.0.0]
├── ovos_core==2.1.2a1 [requires: ovos_workshop>=7.0.6,<9.0.0]
│ └── ovoscope==0.7.2 [requires: ovos_core>=2.0.4a2]
├── ovos_skill_ddg==0.3.6 [requires: ovos-workshop>=3.4.0,<8.0.0]
├── ovos-skill-date-time==1.1.6a1 [requires: ovos-workshop>=0.0.16,<8.0.0]
├── ovos-skill-dictation==0.2.20a1 [requires: ovos-workshop>=7.0.0,<8.0.0]
├── ovos-skill-camera==1.0.5a6 [requires: ovos-workshop>=0.0.12]
├── ovos-skill-ip==0.2.8 [requires: ovos-workshop]
├── ovos_m2v_pipeline==0.0.7 [requires: ovos-workshop>=0.1.7,<8.0.0]
├── ovos-skill-weather==1.0.8a3 [requires: ovos-workshop>=2.2.0,<8.0.0]
├── ovos_adapt_parser==1.0.9 [requires: ovos-workshop>=0.1.7,<8.0.0]
├── ovos-skill-cmd==0.2.11 [requires: ovos-workshop>=0.0.15,<8.0.0]
├── ovos-skill-naptime==0.3.16a1 [requires: ovos-workshop>=0.0.15,<8.0.0]
├── ovos_plugin_common_play==1.2.2a1 [requires: ovos-workshop>=2.4.2,<8.0.0]
├── ovos-skill-volume==0.1.17a3 [requires: ovos-workshop>=0.0.15,<8.0.0]
├── ovos-skill-personal==0.1.20a1 [requires: ovos-workshop>=0.0.15,<8.0.0]
├── ovos-skill-number-facts==0.1.12 [requires: ovos-workshop>=0.0.15,<8.0.0]
├── ovos-skill-randomness==0.1.2 [requires: ovos-workshop]
├── ovos-skill-alerts==0.1.28a1 [requires: ovos-workshop>=7.0.0,<8.0.0]
├── ovos-skill-speedtest==0.3.7a1 [requires: ovos-workshop>=0.0.12,<8.0.0]
├── ovos-skill-iss-location==0.2.16 [requires: ovos-workshop>=0.0.12,<8.0.0]
├── ovos-skill-somafm==0.1.6a1 [requires: ovos-workshop>=0.0.16]
├── ovos-skill-homescreen==3.0.3 [requires: ovos-workshop>=2.4.0,<8.0.0]
├── ovos-skill-wikihow==0.3.3 [requires: ovos-workshop>=3.4.0a1,<8.0.0]
├── ovos-skill-word-of-the-day==0.2.0 [requires: ovos-workshop]
├── ovos-skill-wolfie==0.5.8 [requires: ovos-workshop>=3.4.0a1,<8.0.0]
├── ovos-skill-diagnostics==0.0.8 [requires: ovos-workshop>=0.0.12]
├── ovos_skill_wordnet==0.2.6 [requires: ovos-workshop>=3.3.0,<8.0.0]
├── ovos-skill-color-picker==0.0.7 [requires: ovos-workshop]
├── ovos-skill-news==0.4.6a1 [requires: ovos-workshop>=0.0.16,<8.0.0]
├── ovos_ocp_pipeline_plugin==1.1.18 [requires: ovos-workshop>=0.1.7,<8.0.0]
├── ovos-skill-confucius-quotes==0.1.13 [requires: ovos-workshop>=0.0.15,<8.0.0]
├── ovos-skill-youtube-music==0.1.7 [requires: ovos-workshop>=0.0.16,<8.0.0]
├── ovos-skill-wikipedia==0.8.13 [requires: ovos-workshop>=3.4.0,<8.0.0]
├── ovos-skill-moviemaster==0.0.12 [requires: ovos-workshop>=0.0.11,<8.0.0]
└── ovos-skill-days-in-history==0.3.11 [requires: ovos-workshop>=3.1.0,<8.0.0]
├── ovos-skill-laugh==0.2.3 [requires: ovos_workshop]
├── ovos-skill-fuster-quotes==0.0.4 [requires: ovos_workshop]
├── ovos-skill-local-media==0.2.13a1 [requires: ovos_workshop>=2.4.0,<8.0.0]
├── ovos-skill-pyradios==0.1.5 [requires: ovos_workshop>=0.0.16,<8.0.0]
├── ovos_skill_ddg==0.3.6 [requires: ovos_workshop>=3.4.0,<8.0.0]
├── ovos-skill-date-time==1.1.6a1 [requires: ovos_workshop>=0.0.16,<8.0.0]
├── ovos_skill_wordnet==0.2.7a1 [requires: ovos_workshop>=3.3.0,<8.0.0]
├── ovos-skill-naptime==0.3.16a2 [requires: ovos_workshop>=0.0.15,<8.0.0]
├── ovos-skill-ip==0.2.8 [requires: ovos_workshop]
├── ovos_m2v_pipeline==0.0.7 [requires: ovos_workshop>=0.1.7,<8.0.0]
├── ovos-skill-weather==1.0.8a3 [requires: ovos_workshop>=2.2.0,<8.0.0]
├── ovos_adapt_parser==1.0.9 [requires: ovos_workshop>=0.1.7,<8.0.0]
├── ovos-skill-personal==0.1.20a3 [requires: ovos_workshop>=0.0.15,<8.0.0]
├── ovos-skill-cmd==0.2.11 [requires: ovos_workshop>=0.0.15,<8.0.0]
├── ovos-skill-diagnostics==0.0.9a1 [requires: ovos_workshop>=0.0.12]
├── ovos_plugin_common_play==1.2.2a1 [requires: ovos_workshop>=2.4.2,<8.0.0]
├── ovos-skill-volume==0.1.17a3 [requires: ovos_workshop>=0.0.15,<8.0.0]
├── ovos-skill-number-facts==0.1.12 [requires: ovos_workshop>=0.0.15,<8.0.0]
├── ovos-skill-randomness==0.1.2 [requires: ovos_workshop]
├── ovos-skill-alerts==0.1.28a1 [requires: ovos_workshop>=7.0.0,<8.0.0]
├── ovos-skill-iss-location==0.2.16 [requires: ovos_workshop>=0.0.12,<8.0.0]
├── ovos-skill-somafm==0.1.6a1 [requires: ovos_workshop>=0.0.16]
├── ovos-skill-application-launcher==0.5.15a1 [requires: ovos_workshop>=6.0.0,<8.0.0]
├── ovos-skill-dictation==0.2.20a3 [requires: ovos_workshop>=7.0.0,<8.0.0]
├── ovos-skill-homescreen==3.0.3 [requires: ovos_workshop>=2.4.0,<8.0.0]
├── ovos-skill-wikihow==0.3.3 [requires: ovos_workshop>=3.4.0a1,<8.0.0]
├── ovos-skill-word-of-the-day==0.2.0 [requires: ovos_workshop]
├── ovos-skill-wolfie==0.5.8 [requires: ovos_workshop>=3.4.0a1,<8.0.0]
├── ovos-skill-color-picker==0.0.7 [requires: ovos_workshop]
├── ovos-skill-news==0.4.6a1 [requires: ovos_workshop>=0.0.16,<8.0.0]
├── ovos_ocp_pipeline_plugin==1.1.18 [requires: ovos_workshop>=0.1.7,<8.0.0]
├── ovos-skill-confucius-quotes==0.1.13 [requires: ovos_workshop>=0.0.15,<8.0.0]
├── ovos-skill-camera==1.0.5a7 [requires: ovos_workshop>=0.0.12]
├── ovos-skill-youtube-music==0.1.7 [requires: ovos_workshop>=0.0.16,<8.0.0]
├── ovos-skill-wikipedia==0.8.13 [requires: ovos_workshop>=3.4.0,<8.0.0]
├── ovos-skill-moviemaster==0.0.12 [requires: ovos_workshop>=0.0.11,<8.0.0]
└── ovos-skill-days-in-history==0.3.11 [requires: ovos_workshop>=3.1.0,<8.0.0]
33 changes: 23 additions & 10 deletions ovos_workshop/skill_launcher.py
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import os
import sys
import threading
from os.path import isdir
from inspect import isclass
from types import ModuleType
Expand Down Expand Up @@ -534,21 +535,27 @@ def _connect_to_core(self):
self.bus.run_in_thread()
self.bus.connected_event.wait()

LOG.debug("checking skills service status")
response = self.bus.wait_for_response(
Message(f'mycroft.skills.is_ready',
context={"source": "workshop", "destination": "skills"}))
if response and response.data['status']:
LOG.info("connected to core")
self.load_skill()
else:
LOG.warning("Skills service not ready yet. Load on ready event.")

self.bus.on("mycroft.ready", self.load_skill)
self.bus.on("skillmanager.activate", self.do_load)
self.bus.on("skillmanager.deactivate", self.do_unload)
self.bus.on("skillmanager.keep", self.do_unload)

def wait_for_core(t=1):
LOG.debug("checking skills service status")
response = self.bus.wait_for_response(
Message('mycroft.skills.is_ready',
context={"source": self.skill_id, "destination": "skills"}))
if response is not None and response.data.get('status'):
LOG.info("connected to core")
self.load_skill()
return

LOG.warning(f"ovos-core not yet ready. Waiting {t} seconds until next skill loading attempt")
threading.Event().wait(t)
wait_for_core(min(60, t*2))

wait_for_core()

def load_skill(self, message: Optional[Message] = None):
"""
Load the skill associated with this SkillContainer instance.
Expand Down Expand Up @@ -635,10 +642,16 @@ def _launch_script():
skill_id = sys.argv[1]
skill_directory = sys.argv[2]
skill = SkillContainer(skill_id, skill_directory)
elif os.environ.get("SKILL_ID"):
# allow launching without args if env var is set, might be useful for containers
skill_id = os.environ["SKILL_ID"]
skill = SkillContainer(skill_id)
else:
print("USAGE: ovos-skill-launcher {skill_id} [path/to/my/skill_id]")
raise SystemExit(2)

skill.run()


if __name__ == "__main__":
_launch_script()
4 changes: 2 additions & 2 deletions ovos_workshop/version.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
# START_VERSION_BLOCK
VERSION_MAJOR = 8
VERSION_MINOR = 0
VERSION_BUILD = 0
VERSION_ALPHA = 0
VERSION_BUILD = 1
VERSION_ALPHA = 2
# END_VERSION_BLOCK
6 changes: 6 additions & 0 deletions renovate.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,6 @@
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:recommended"
]
}
Loading