feat!: bind OVOSSkill.gui to ovos-gui-api-client#420
Conversation
- import GUIInterface from ovos_gui_api_client (extracted, standalone) in skills/ovos.py and app.py instead of ovos_bus_client.apis.gui - SkillGUI no longer passes the obsolete ui_directories arg (skills no longer ship QML); drop get_ui_directories import - drop explicit setup_default_handlers() call (the new GUIInterface wires its default handlers in __init__) - add ovos-gui-api-client dependency; install it from git in CI until released - unit tests for the rebind (subclassing, construction, template emit, bus contract)
|
Important Review skippedDraft detected. Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Pardon the interruption, but your automated checks are ready! 🛎️I've aggregated the results of the automated checks for this PR below. 📋 Repo HealthEnsuring the codebase isn't suffering from 'technical debt' flu. 🤒 ✅ All required files present. Latest Version: ✅ 🔍 LintThe results are fresh out of the pipeline. 🏗️ ❌ ruff: issues found — see job log 🔨 Build TestsI've fired up the furnaces and forged your changes. ⚒️ ✅ All versions pass
⚖️ License CheckChecking for any missing license headers. ✍️ ✅ No license violations found. Policy: Apache 2.0 (universal donor). StrongCopyleft / NetworkCopyleft / WeakCopyleft / Other / Error categories fail. MPL allowed. 🔒 Security (pip-audit)Checking for any insecure data transmissions. 📡 ✅ No known vulnerabilities found (73 packages scanned). An automated high-five for your latest changes! 🖐️ |
Bind
OVOSSkill.guito the standaloneovos-gui-api-clientPart of the GUI rework. The skill-side
GUIInterfacehas beenextracted from
ovos-bus-clientinto the standaloneovos-gui-api-clientpackage. This PR points workshop at it.
Changes
skills/ovos.py+app.py: importGUIInterfacefromovos_gui_api_client(was
ovos_bus_client.apis.gui).SkillGUI.__init__: drop the obsoleteui_directoriesargument — skills nolonger ship QML, so there are no UI directories to locate. Removes the
get_ui_directoriesimport._init_skill_gui: drop the explicitsetup_default_handlers()call; the newGUIInterfacewires its default handlers in__init__.pyproject.toml: addovos-gui-api-client>=0.0.1,<1.0.0.Tests
test/unittests/test_gui_rebind.py— 5 tests: workshop imports the api-clientinterface,
SkillGUIsubclasses it, constructs withoutui_directories,show_text()emitsgui.page.show(SYSTEM_text), and the no-bus contract.Local run: full skill/app/gui suites green (15 passed).
CI / dependency note
ovos-gui-api-clientis not on PyPI yet — it lives on itsfeat/packagingbranch (PR OpenVoiceOS/ovos-gui-api-client#2). CI installs it from git via
pre_install_pip/ an explicit step. Revert these git pins to the releasedversion once that PR merges and an alpha publishes.
Depends on: ovos-gui-api-client#2. Draft until that lands.