From 46bf18a941e73516e069f9b95bf2ae5014a551ef Mon Sep 17 00:00:00 2001 From: miro Date: Mon, 18 Nov 2024 19:04:29 +0000 Subject: [PATCH 01/11] deprecate!:backend client --- mycroft/skills/settings.py | 198 +++++++++++++++++++++++++++++- requirements/extra-deprecated.txt | 1 + requirements/requirements.txt | 1 - 3 files changed, 195 insertions(+), 5 deletions(-) diff --git a/mycroft/skills/settings.py b/mycroft/skills/settings.py index b8d6fe218afa..838486831de6 100644 --- a/mycroft/skills/settings.py +++ b/mycroft/skills/settings.py @@ -57,17 +57,207 @@ """ import json from os.path import isfile -import yaml - from threading import Timer +from typing import Optional + +import yaml from ovos_backend_client.api import DeviceApi from ovos_backend_client.pairing import is_paired, requires_backend -from ovos_utils.log import LOG from ovos_backend_client.settings import RemoteSkillSettings, get_display_name + from ovos_bus_client.message import Message, dig_for_message +from ovos_utils.log import LOG # backwards compat imports from mycroft.deprecated.skills.settings import SkillSettingsDownloader, SettingsMetaUploader, load_remote_settings_cache, \ save_remote_settings_cache, REMOTE_CACHE -from ovos_workshop.settings import SkillSettingsManager + +class SkillSettingsManager: + def __init__(self, skill): + self.download_timer: Optional[Timer] = None + self.skill = skill + self.api = DeviceApi() + self.remote_settings = \ + RemoteSkillSettings(self.skill_id, + settings=dict(self.skill.settings), + meta=self.load_meta(), remote_id=self.skill_gid) + self.register_bus_handlers() + + def start(self): + self._download() + + def _download(self): + # If this method is called outside of the timer loop, ensure the + # existing timer is canceled before starting a new one. + if self.download_timer: + self.download_timer.cancel() + + self.download() + + # prepare to download again in 60 seconds + self.download_timer = Timer(60, self._download) + self.download_timer.daemon = True + self.download_timer.start() + + def stop(self): + # If this method is called outside of the timer loop, ensure the + # existing timer is canceled + if self.download_timer: + self.download_timer.cancel() + + @property + def bus(self): + return self.skill.bus + + @property + def skill_id(self) -> str: + return self.skill.skill_id + + @property + def display_name(self) -> str: + return get_display_name(self.skill_id) + + @property + def skill_gid(self) -> str: + return f"@{self.api.uuid}|{self.skill_id}" + + @property + def skill_meta(self) -> dict: + return self.remote_settings.meta + + def register_bus_handlers(self): + self.skill.add_event('mycroft.skills.settings.update', + self.handle_download_remote) # backwards compat + self.skill.add_event('mycroft.skills.settings.download', + self.handle_download_remote) + self.skill.add_event('mycroft.skills.settings.upload', + self.handle_upload_local) + self.skill.add_event('mycroft.skills.settings.upload.meta', + self.handle_upload_meta) + self.skill.add_event('mycroft.paired', + self.handle_upload_local) + + def load_meta(self) -> dict: + json_path = f"{self.skill.root_dir}/settingsmeta.json" + yaml_path = f"{self.skill.root_dir}/settingsmeta.yaml" + if isfile(yaml_path): + with open(yaml_path) as meta_file: + return yaml.safe_load(meta_file) + elif isfile(json_path): + with open(json_path) as meta_file: + return json.load(meta_file) + return {} + + def save_meta(self, generate: bool = False): + # unset reload flag to avoid a reload on settingmeta change + # TODO - support for settingsmeta XDG paths + reload = self.skill.reload_skill + self.skill.reload_skill = False + + # generate meta for missing fields + if generate: + self.remote_settings.generate_meta() + + # write to disk + json_path = f"{self.skill.root_dir}/settingsmeta.json" + yaml_path = f"{self.skill.root_dir}/settingsmeta.yaml" + if isfile(yaml_path): + with open(yaml_path) as meta_file: + yaml.dump(self.remote_settings.meta, meta_file) + else: + with open(json_path, "w") as meta_file: + json.dump(self.remote_settings.meta, meta_file) + + # reset reloading flag + self.skill.reload_skill = reload + + @requires_backend + def upload(self, generate: bool = False): + if not is_paired(): + LOG.debug("Device needs to be paired to upload settings") + return + self.remote_settings.settings = dict(self.skill.settings) + if generate: + self.remote_settings.generate_meta() + self.remote_settings.upload() + + @requires_backend + def upload_meta(self, generate: bool = False): + if not is_paired(): + LOG.debug("Device needs to be paired to upload settingsmeta") + return + if generate: + self.remote_settings.settings = dict(self.skill.settings) + self.remote_settings.generate_meta() + self.remote_settings.upload_meta() + + @requires_backend + def download(self): + if not is_paired(): + LOG.debug("Device needs to be paired to download remote settings") + return + self.remote_settings.download() + # we do not update skill object settings directly + # skill will handle the event and trigger a callback + if self.skill.settings != self.remote_settings.settings: + # dig old message to keep context + msg = dig_for_message() or Message("") + msg = msg.forward('mycroft.skills.settings.changed') + + msg.data[self.skill_id] = self.remote_settings.settings + self.bus.emit(msg) + + def handle_upload_meta(self, message: Message): + skill_id = message.data.get("skill_id") + if skill_id == self.skill_id: + self.upload_meta() + + def handle_upload_local(self, message: Message): + skill_id = message.data.get("skill_id") + if skill_id == self.skill_id: + self.upload() + + def handle_download_remote(self, message: Message): + self.download() + + +def settings2meta(settings, section_name="Skill Settings"): + """ generates basic settingsmeta """ + fields = [] + + for k, v in settings.items(): + if k.startswith("_"): + continue + label = k.replace("-", " ").replace("_", " ").title() + if isinstance(v, bool): + fields.append({ + "name": k, + "type": "checkbox", + "label": label, + "value": str(v).lower() + }) + if isinstance(v, str): + fields.append({ + "name": k, + "type": "text", + "label": label, + "value": v + }) + if isinstance(v, int): + fields.append({ + "name": k, + "type": "number", + "label": label, + "value": str(v) + }) + return { + "skillMetadata": { + "sections": [ + { + "name": section_name, + "fields": fields + } + ] + } + } diff --git a/requirements/extra-deprecated.txt b/requirements/extra-deprecated.txt index daf18d98f763..3c7bdc0d4487 100644 --- a/requirements/extra-deprecated.txt +++ b/requirements/extra-deprecated.txt @@ -9,6 +9,7 @@ pillow>=8.3 pyaudio # mycroft-core imports / default plugins +ovos-backend-client>=0.1.0,<2.0.0 # for compat with mycroft namespace ovos-lingua-franca>=0.4.7,<1.0.0 # NOTE: ovos-listener is causing conflicts in dependency resolution, blocks ovos-bus-client 1.0.0 diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 406589c66d5c..baa2bd8f237e 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -12,5 +12,4 @@ ovos-utils>=0.3.5,<1.0.0 ovos_bus_client>=0.1.4,<2.0.0 ovos-plugin-manager>=0.5.6,<1.0.0 ovos-config>=0.0.13,<1.0.0 -ovos-backend-client>=0.1.0,<2.0.0 ovos-workshop>=2.2.2,<3.0.0 From 9eff768d314714def667d77d965901f9a15737da Mon Sep 17 00:00:00 2001 From: miro Date: Tue, 19 Nov 2024 14:44:42 +0000 Subject: [PATCH 02/11] packaging --- requirements/requirements.txt | 4 ++-- requirements/tests.txt | 10 +++++----- 2 files changed, 7 insertions(+), 7 deletions(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index baa2bd8f237e..634cf139f8d9 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -11,5 +11,5 @@ ovos-common-query-pipeline-plugin>=1.0.4, <2.0.0 ovos-utils>=0.3.5,<1.0.0 ovos_bus_client>=0.1.4,<2.0.0 ovos-plugin-manager>=0.5.6,<1.0.0 -ovos-config>=0.0.13,<1.0.0 -ovos-workshop>=2.2.2,<3.0.0 +ovos-config>=0.0.13,<2.0.0 +ovos-workshop>=2.2.2,<4.0.0 diff --git a/requirements/tests.txt b/requirements/tests.txt index 3978eae23f80..08bb006e7a7c 100644 --- a/requirements/tests.txt +++ b/requirements/tests.txt @@ -1,5 +1,5 @@ -coveralls==1.8.2 -flake8==3.7.9 -pytest==5.2.4 -pytest-cov==2.8.1 -cov-core==1.15.0 \ No newline at end of file +coveralls>=1.8.2 +flake8>=3.7.9 +pytest>=5.2.4 +pytest-cov>=2.8.1 +cov-core>=1.15.0 \ No newline at end of file From 585df50e4abbd883065a462c8bd4d3e94b3cf4d8 Mon Sep 17 00:00:00 2001 From: miro Date: Tue, 19 Nov 2024 14:49:28 +0000 Subject: [PATCH 03/11] packaging --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 634cf139f8d9..d3b00c652b59 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -12,4 +12,4 @@ ovos-utils>=0.3.5,<1.0.0 ovos_bus_client>=0.1.4,<2.0.0 ovos-plugin-manager>=0.5.6,<1.0.0 ovos-config>=0.0.13,<2.0.0 -ovos-workshop>=2.2.2,<4.0.0 +ovos-workshop>=3.0.0,<4.0.0 From 1424fc7d259b06e1772285f0c55b954782904a4f Mon Sep 17 00:00:00 2001 From: miro Date: Tue, 19 Nov 2024 14:50:38 +0000 Subject: [PATCH 04/11] no need to require latest, just allow --- requirements/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index d3b00c652b59..634cf139f8d9 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -12,4 +12,4 @@ ovos-utils>=0.3.5,<1.0.0 ovos_bus_client>=0.1.4,<2.0.0 ovos-plugin-manager>=0.5.6,<1.0.0 ovos-config>=0.0.13,<2.0.0 -ovos-workshop>=3.0.0,<4.0.0 +ovos-workshop>=2.2.2,<4.0.0 From 9006d295264630bf276ff9243f3d81f439ec867b Mon Sep 17 00:00:00 2001 From: miro Date: Tue, 19 Nov 2024 18:56:31 +0000 Subject: [PATCH 05/11] its a bug hunt --- test/end2end/session/test_get_response.py | 2 ++ 1 file changed, 2 insertions(+) diff --git a/test/end2end/session/test_get_response.py b/test/end2end/session/test_get_response.py index b2320d41a16d..63c2bd1725ff 100644 --- a/test/end2end/session/test_get_response.py +++ b/test/end2end/session/test_get_response.py @@ -1,4 +1,5 @@ import time +import unittest from time import sleep from unittest import TestCase @@ -7,6 +8,7 @@ from ..minicroft import get_minicroft +@unittest.skip("DEBUG - TODO restore me") class TestSessions(TestCase): def setUp(self): From a25b9a6e3168bdad1f6b97b05d844a815801e694 Mon Sep 17 00:00:00 2001 From: miro Date: Tue, 19 Nov 2024 20:01:00 +0000 Subject: [PATCH 06/11] fix:bundled_resources --- requirements/requirements.txt | 3 ++- test/end2end/session/test_get_response.py | 2 -- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 634cf139f8d9..54636bc0eab8 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -12,4 +12,5 @@ ovos-utils>=0.3.5,<1.0.0 ovos_bus_client>=0.1.4,<2.0.0 ovos-plugin-manager>=0.5.6,<1.0.0 ovos-config>=0.0.13,<2.0.0 -ovos-workshop>=2.2.2,<4.0.0 +# TODO needs 3.0.1 for end2end tests to pass +ovos-workshop>=3.0.0,<4.0.0 diff --git a/test/end2end/session/test_get_response.py b/test/end2end/session/test_get_response.py index 63c2bd1725ff..b2320d41a16d 100644 --- a/test/end2end/session/test_get_response.py +++ b/test/end2end/session/test_get_response.py @@ -1,5 +1,4 @@ import time -import unittest from time import sleep from unittest import TestCase @@ -8,7 +7,6 @@ from ..minicroft import get_minicroft -@unittest.skip("DEBUG - TODO restore me") class TestSessions(TestCase): def setUp(self): From d45f993991c8f0f82be5c4c3203157d0d09f7b68 Mon Sep 17 00:00:00 2001 From: miro Date: Tue, 19 Nov 2024 20:14:34 +0000 Subject: [PATCH 07/11] requirements.txt --- requirements/requirements.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 54636bc0eab8..27bd2ea48ac8 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -4,9 +4,9 @@ watchdog>=2.1, <3.0 combo-lock>=0.2.2, <0.4 padacioso>=1.0.0, <2.0.0 -ovos-adapt-parser>=1.0.4, <2.0.0 -ovos_ocp_pipeline_plugin>=1.0.5, <2.0.0 -ovos-common-query-pipeline-plugin>=1.0.4, <2.0.0 +ovos-adapt-parser>=1.0.5, <2.0.0 +ovos_ocp_pipeline_plugin>=1.0.7, <2.0.0 +ovos-common-query-pipeline-plugin>=1.0.5, <2.0.0 ovos-utils>=0.3.5,<1.0.0 ovos_bus_client>=0.1.4,<2.0.0 From 94f0fdab1f8f9342e2cbfa79726d808ca6f58711 Mon Sep 17 00:00:00 2001 From: miro Date: Tue, 19 Nov 2024 21:41:44 +0000 Subject: [PATCH 08/11] fix:allow_workshop_300 --- requirements/lgpl.txt | 2 +- requirements/requirements.txt | 3 +-- requirements/skills-audio.txt | 12 ++++++------ requirements/skills-desktop.txt | 2 +- requirements/skills-essential.txt | 12 ++++++------ requirements/skills-gui.txt | 2 +- requirements/skills-internet.txt | 12 ++++++------ requirements/skills-media.txt | 6 +++--- 8 files changed, 25 insertions(+), 26 deletions(-) diff --git a/requirements/lgpl.txt b/requirements/lgpl.txt index cf36b2b4d279..510048778344 100644 --- a/requirements/lgpl.txt +++ b/requirements/lgpl.txt @@ -1,2 +1,2 @@ -ovos_padatious>=1.0.3, <2.0.0 +ovos_padatious>=1.0.4, <2.0.0 fann2>=1.0.7, < 1.1.0 diff --git a/requirements/requirements.txt b/requirements/requirements.txt index 27bd2ea48ac8..21591cb0cec3 100644 --- a/requirements/requirements.txt +++ b/requirements/requirements.txt @@ -12,5 +12,4 @@ ovos-utils>=0.3.5,<1.0.0 ovos_bus_client>=0.1.4,<2.0.0 ovos-plugin-manager>=0.5.6,<1.0.0 ovos-config>=0.0.13,<2.0.0 -# TODO needs 3.0.1 for end2end tests to pass -ovos-workshop>=3.0.0,<4.0.0 +ovos-workshop>=3.0.1,<4.0.0 diff --git a/requirements/skills-audio.txt b/requirements/skills-audio.txt index 123c65b90074..3ccf0f146f6a 100644 --- a/requirements/skills-audio.txt +++ b/requirements/skills-audio.txt @@ -1,7 +1,7 @@ # skills that run in audio enabled devices (require mic/speaker) -ovos-skill-boot-finished>=0.4.4,<1.0.0 -ovos-skill-audio-recording>=0.2.2,<1.0.0 -ovos-skill-dictation>=0.2.1,<1.0.0 -ovos-skill-parrot>=0.1.5,<1.0.0 -ovos-skill-volume>=0.1.2,<1.0.0 -ovos-skill-naptime>=0.3.3,<1.0.0 +ovos-skill-boot-finished>=0.4.8,<1.0.0 +ovos-skill-audio-recording>=0.2.4,<1.0.0 +ovos-skill-dictation>=0.2.5,<1.0.0 +ovos-skill-parrot>=0.1.9,<1.0.0 +ovos-skill-volume>=0.1.7,<1.0.0 +ovos-skill-naptime>=0.3.8,<1.0.0 diff --git a/requirements/skills-desktop.txt b/requirements/skills-desktop.txt index e626bc3e408d..7a110cbffc8c 100644 --- a/requirements/skills-desktop.txt +++ b/requirements/skills-desktop.txt @@ -1,2 +1,2 @@ # skills that require a linux desktop environment -ovos-skill-application-launcher>=0.5.4,<1.0.0 +ovos-skill-application-launcher>=0.5.6,<1.0.0 diff --git a/requirements/skills-essential.txt b/requirements/skills-essential.txt index 34075dbf4624..a48dcbfd65bb 100644 --- a/requirements/skills-essential.txt +++ b/requirements/skills-essential.txt @@ -1,9 +1,9 @@ # skills providing core functionality (offline) -ovos-skill-fallback-unknown>=0.1.3,<1.0.0 -ovos-skill-alerts>=0.1.5,<1.0.0 -ovos-skill-personal>=0.1.5,<1.0.0 -ovos-skill-date-time>=0.3.4,<1.0.0 -ovos-skill-hello-world>=0.1.7,<1.0.0 +ovos-skill-fallback-unknown>=0.1.5,<1.0.0 +ovos-skill-alerts>=0.1.10,<1.0.0 +ovos-skill-personal>=0.1.7,<1.0.0 +ovos-skill-date-time>=0.4.2,<1.0.0 +ovos-skill-hello-world>=0.1.10,<1.0.0 skill-wordnet>=0.0.6,<1.0.0 #skill-randomness>=0.0.1,<1.0.0 -ovos-skill-spelling>=0.2.3,<1.0.0 +ovos-skill-spelling>=0.2.5,<1.0.0 diff --git a/requirements/skills-gui.txt b/requirements/skills-gui.txt index ef408b5ed20e..6c154fcfb0b8 100644 --- a/requirements/skills-gui.txt +++ b/requirements/skills-gui.txt @@ -1 +1 @@ -ovos-skill-homescreen>=1.0.4,<4.0.0 +ovos-skill-homescreen>=3.0.2,<4.0.0 \ No newline at end of file diff --git a/requirements/skills-internet.txt b/requirements/skills-internet.txt index 2914e4ed18ed..f3a67d61d5a6 100644 --- a/requirements/skills-internet.txt +++ b/requirements/skills-internet.txt @@ -1,9 +1,9 @@ # skills that require internet connectivity, should not be installed in offline devices -ovos-skill-weather>=0.1.4,<1.0.0 -skill-ddg>=0.1.5,<1.0.0 -skill-wolfie>=0.2.7,<1.0.0 +ovos-skill-weather>=0.1.11,<1.0.0 +skill-ddg>=0.1.9,<1.0.0 +skill-wolfie>=0.2.9,<1.0.0 ovos-skill-wikipedia>=0.5.3,<1.0.0 -skill-ovos-fallback-chatgpt>=0.1.4,<1.0.0 +skill-ovos-fallback-chatgpt>=0.1.7,<1.0.0 ovos-skill-wikihow>=0.2.5,<1.0.0 -ovos-skill-speedtest>=0.2.3,<1.0.0 -ovos-skill-ip>=0.2.2,<1.0.0 +ovos-skill-speedtest>=0.3.2,<1.0.0 +ovos-skill-ip>=0.2.2,<1.0.0 \ No newline at end of file diff --git a/requirements/skills-media.txt b/requirements/skills-media.txt index e38496221f2c..a248201f360e 100644 --- a/requirements/skills-media.txt +++ b/requirements/skills-media.txt @@ -1,5 +1,5 @@ # skills for OCP, require audio playback plugins (usually mpv) -ovos-skill-somafm>=0.1.1,<1.0.0 -skill-news>=0.1.5,<1.0.0 +ovos-skill-somafm>=0.1.3,<1.0.0 +skill-news>=0.1.8,<1.0.0 ovos-skill-pyradios>=0.1.3,<1.0.0 -ovos-skill-local-media>=0.2.1,<1.0.0 \ No newline at end of file +ovos-skill-local-media>=0.2.4,<1.0.0 \ No newline at end of file From e19ba6b753df375ae9cb9576605c14f95c76efed Mon Sep 17 00:00:00 2001 From: miro Date: Tue, 19 Nov 2024 22:02:28 +0000 Subject: [PATCH 09/11] fix:allow_workshop_300 --- requirements/skills-essential.txt | 2 +- requirements/skills-internet.txt | 2 +- requirements/skills-media.txt | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/requirements/skills-essential.txt b/requirements/skills-essential.txt index a48dcbfd65bb..e87af0dc893d 100644 --- a/requirements/skills-essential.txt +++ b/requirements/skills-essential.txt @@ -4,6 +4,6 @@ ovos-skill-alerts>=0.1.10,<1.0.0 ovos-skill-personal>=0.1.7,<1.0.0 ovos-skill-date-time>=0.4.2,<1.0.0 ovos-skill-hello-world>=0.1.10,<1.0.0 -skill-wordnet>=0.0.6,<1.0.0 +skill-wordnet>=0.0.10,<1.0.0 #skill-randomness>=0.0.1,<1.0.0 ovos-skill-spelling>=0.2.5,<1.0.0 diff --git a/requirements/skills-internet.txt b/requirements/skills-internet.txt index f3a67d61d5a6..0f475dac37f1 100644 --- a/requirements/skills-internet.txt +++ b/requirements/skills-internet.txt @@ -6,4 +6,4 @@ ovos-skill-wikipedia>=0.5.3,<1.0.0 skill-ovos-fallback-chatgpt>=0.1.7,<1.0.0 ovos-skill-wikihow>=0.2.5,<1.0.0 ovos-skill-speedtest>=0.3.2,<1.0.0 -ovos-skill-ip>=0.2.2,<1.0.0 \ No newline at end of file +ovos-skill-ip>=0.2.5,<1.0.0 \ No newline at end of file diff --git a/requirements/skills-media.txt b/requirements/skills-media.txt index a248201f360e..d62da9e811c1 100644 --- a/requirements/skills-media.txt +++ b/requirements/skills-media.txt @@ -1,5 +1,5 @@ # skills for OCP, require audio playback plugins (usually mpv) ovos-skill-somafm>=0.1.3,<1.0.0 skill-news>=0.1.8,<1.0.0 -ovos-skill-pyradios>=0.1.3,<1.0.0 +ovos-skill-pyradios>=0.1.4,<1.0.0 ovos-skill-local-media>=0.2.4,<1.0.0 \ No newline at end of file From 3fbc479e1fa375776884da5022fe1dacf3300813 Mon Sep 17 00:00:00 2001 From: miro Date: Tue, 19 Nov 2024 22:04:42 +0000 Subject: [PATCH 10/11] fix:allow_workshop_300 --- requirements/tests.txt | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/requirements/tests.txt b/requirements/tests.txt index 08bb006e7a7c..24ec8fa3ef09 100644 --- a/requirements/tests.txt +++ b/requirements/tests.txt @@ -2,4 +2,5 @@ coveralls>=1.8.2 flake8>=3.7.9 pytest>=5.2.4 pytest-cov>=2.8.1 -cov-core>=1.15.0 \ No newline at end of file +cov-core>=1.15.0 +ovos-backend-client>=0.1.0,<2.0.0 \ No newline at end of file From ef6d7bae6c0b945c001c489fb31cad5e05cdee04 Mon Sep 17 00:00:00 2001 From: miro Date: Tue, 19 Nov 2024 22:05:50 +0000 Subject: [PATCH 11/11] . --- .github/workflows/constraint_tests.yml | 45 -------------------------- 1 file changed, 45 deletions(-) delete mode 100644 .github/workflows/constraint_tests.yml diff --git a/.github/workflows/constraint_tests.yml b/.github/workflows/constraint_tests.yml deleted file mode 100644 index 37e6898761dd..000000000000 --- a/.github/workflows/constraint_tests.yml +++ /dev/null @@ -1,45 +0,0 @@ -name: Test Constraints - -on: - workflow_dispatch: - pull_request: - paths: - - 'requirements/requirements.txt' - - 'requirements/lgpl.txt' - - 'requirements/mycroft.txt' - - 'requirements/plugins.txt' - - 'requirements/skills-audio.txt' - - 'requirements/skills-desktop.txt' - - 'requirements/skills-essential.txt' - - 'requirements/skills-gui.txt' - - 'requirements/skills-internet.txt' - - 'requirements/skills-media.txt' - -jobs: - test-stable-and-testing-constraints: - runs-on: ubuntu-latest - strategy: - matrix: - constraints_file: ['testing'] - - steps: - - name: Checkout repository - uses: actions/checkout@v3 - - - name: Set up Python - uses: actions/setup-python@v4 - with: - python-version: '3.8' - - - name: Install System Dependencies - run: | - sudo apt-get update - sudo apt install python3-dev swig libssl-dev portaudio19-dev libpulse-dev libfann-dev - - - name: Download constraints file - run: | - curl -o requirements/constraints-${{ matrix.constraints_file }}.txt https://raw.githubusercontent.com/OpenVoiceOS/ovos-releases/refs/heads/main/constraints-${{ matrix.constraints_file }}.txt - - - name: Install core repo with constraints - run: | - pip install -e .[mycroft,lgpl,plugins,skills-essential,skills-audio,skills-gui,skills-internet,skills-media,skills-desktop] --pre -c requirements/constraints-${{ matrix.constraints_file }}.txt