feat/pipeline_plugins_opm
subclass pipelines from the OPM placeholder base class
move to maintained ovos-adapt-parser and ovos-padatious packages
companion PRS:
- https://github.com/OpenVoiceOS/ovos-padatious-pipeline-plugin/pull/2
- https://github.com/OpenVoiceOS/ovos-adapt-pipeline-plugin/pull/2
- https://github.com/OpenVoiceOS/padacioso/pull/22
- https://github.com/OpenVoiceOS/ovos-plugin-manager/pull/242 and https://github.com/OpenVoiceOS/ovos-plugin-manager/pull/241
blocked by:
- https://github.com/OpenVoiceOS/ovos-adapt-pipeline-plugin/issues/3
- https://github.com/OpenVoiceOS/ovos-padatious-pipeline-plugin/issues/1
Summary by CodeRabbit
-
New Features
- Enhanced installation process for GitHub Actions workflows by including new dependencies and plugins.
- Integration of
PipelinePluginacross various services, improving modularity and functionality.
-
Bug Fixes
- Improved type safety and clarity through updated method return types in several services.
-
Refactor
- Transition to a more modular architecture by replacing custom classes with imports from updated libraries.
- Consolidation of intent matching logic, streamlining the intent processing framework.
-
Chores
- Updated dependency management in
requirements.txtandlgpl.txt, removing outdated packages and introducing new ones.
- Updated dependency management in
Walkthrough
The updates introduce modifications to workflow configurations and intent service modules within the project. Key changes include the addition of a new system dependency, python3-fann2, in the build workflow, adjustments to license test exclusions, and a transition to the ovos_adapt library for intent management. Several service classes have been refactored to enhance modularity by inheriting from PipelinePlugin, and various dependencies have been updated to align with the new architecture.
Changes
| Files | Change Summary |
|---|---|
.github/workflows/build_tests.yml |
Added python3-fann2 as a system dependency; adjusted installation order for build tools. |
.github/workflows/license_tests.yml |
Updated exclude parameter to add ovos-adapt-parser and ovos-padatious; corrected indentation for the Print report step. |
mycroft/skills/intent_services/adapt_service.py |
Updated import statements to transition from adapt to ovos_adapt, renaming AdaptService to AdaptPipeline. |
ovos_core/intent_services/__init__.py |
Changed import paths for AdaptService and PadatiousService to reflect new locations; updated initialization accordingly. |
ovos_core/intent_services/adapt_service.py |
Removed AdaptService class implementation; replaced with AdaptPipeline from ovos_adapt.opm. |
ovos_core/intent_services/commonqa_service.py |
Refactored CommonQAService to inherit from PipelinePlugin; added selected_skill field to Query data class. |
ovos_core/intent_services/converse_service.py |
Updated ConverseService to inherit from PipelinePlugin, altering its initialization. |
ovos_core/intent_services/fallback_service.py |
Modified FallbackService to inherit from PipelinePlugin and updated constructor for initialization. |
ovos_core/intent_services/ocp_service.py |
Changed OCPPipelineMatcher to inherit from both PipelinePlugin and OVOSAbstractApplication; updated constructor for both parent classes. |
ovos_core/intent_services/padacioso_service.py |
Removed PadaciosoIntent and PadaciosoService, replaced with imports from padacioso.opm. |
ovos_core/intent_services/padatious_service.py |
Removed PadatiousMatcher and PadatiousService, replaced with imports from ovos_padatious.opm. |
ovos_core/intent_services/stop_service.py |
Updated StopService to inherit from PipelinePlugin. |
requirements/lgpl.txt |
Replaced padatious with ovos_padatious, updating version constraints; fann2 dependency unchanged. |
requirements/requirements.txt |
Updated padacioso version constraint; replaced adapt-parser with ovos-adapt-parser. |
setup.py |
Introduced PLUGIN_ENTRY_POINT variable for plugin registration under opm.pipeline. |
test/unittests/common_query/ovos_tskill_fakewiki/__init__.py |
Updated import for IntentBuilder from adapt.intent to ovos_adapt.intent. |
test/unittests/skills/decorator_test_skill.py |
Changed import for IntentBuilder from adapt.intent to ovos_adapt.intent. |
test/unittests/skills/test_intent_service.py |
Updated import for ContextManager from ovos_core.intent_services.adapt_service to ovos_adapt.opm. |
test/unittests/skills/test_intent_service_interface.py |
Changed import for IntentBuilder from adapt.intent to ovos_adapt.intent. |
test/unittests/skills/test_mycroft_skill.py |
Updated import for IntentBuilder from adapt.intent to ovos_adapt.intent. |
Sequence Diagram(s)
sequenceDiagram
participant User
participant PluginManager
participant IntentService
participant AdaptPipeline
User->>PluginManager: Request intent processing
PluginManager->>IntentService: Forward request
IntentService->>AdaptPipeline: Process intent
AdaptPipeline-->>IntentService: Return matched intent
IntentService-->>PluginManager: Send response
PluginManager-->>User: Deliver intent response
🐰 In fields so wide, where bunnies play,
New paths are forged, come what may.
With plugins bright and code refined,
Our skills grow sharper, our joys entwined.
Hops of progress, leaps of cheer,
Together we thrive, year after year! 🌼✨
Possibly related PRs
- #528: Changes in
ovos_core/intent_services/adapt_service.pyinvolve modifications to import statements, which may relate to the overall structure of the codebase that the main PR is also addressing through workflow changes. - #529: Updates in
ovos_core/intent_services/commonqa_service.pyinclude changes to the initialization and usage of components, which could be relevant to the adjustments made in the main PR regarding dependency management in workflows. - #557: Modifications in
ovos_core/intent_services/commonqa_service.pystreamline the handling of attributes, which may connect with the overall improvements in the workflow processes outlined in the main PR. - #558: Introduction of a new workflow for end-to-end tests directly relates to the changes in the main PR regarding the workflow configuration, indicating a focus on enhancing testing processes.
Suggested labels
enhancement, dependencies
Thank you for using CodeRabbit. We offer it for free to the OSS community and would appreciate your support in helping us grow. If you find it useful, would you consider giving us a shout-out on your favorite social media?
🪧 Tips
Chat
There are 3 ways to chat with CodeRabbit:
- Review comments: Directly reply to a review comment made by CodeRabbit. Example:
I pushed a fix in commit <commit_id>, please review it.Generate unit testing code for this file.Open a follow-up GitHub issue for this discussion.
- Files and specific lines of code (under the "Files changed" tab): Tag
@coderabbitaiin a new review comment at the desired location with your query. Examples:@coderabbitai generate unit testing code for this file.@coderabbitai modularize this function.
- PR comments: Tag
@coderabbitaiin a new PR comment to ask questions about the PR branch. For the best results, please provide a very specific query, as very limited context is provided in this mode. Examples:@coderabbitai gather interesting stats about this repository and render them as a table. Additionally, render a pie chart showing the language distribution in the codebase.@coderabbitai read src/utils.ts and generate unit testing code.@coderabbitai read the files in the src/scheduler package and generate a class diagram using mermaid and a README in the markdown format.@coderabbitai help me debug CodeRabbit configuration file.
Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments.
CodeRabbit Commands (Invoked using PR comments)
@coderabbitai pauseto pause the reviews on a PR.@coderabbitai resumeto resume the paused reviews.@coderabbitai reviewto trigger an incremental review. This is useful when automatic reviews are disabled for the repository.@coderabbitai full reviewto do a full review from scratch and review all the files again.@coderabbitai summaryto regenerate the summary of the PR.@coderabbitai resolveresolve all the CodeRabbit review comments.@coderabbitai configurationto show the current CodeRabbit configuration for the repository.@coderabbitai helpto get help.
Other keywords and placeholders
- Add
@coderabbitai ignoreanywhere in the PR description to prevent this PR from being reviewed. - Add
@coderabbitai summaryto generate the high-level summary at a specific location in the PR description. - Add
@coderabbitaianywhere in the PR title to generate the title automatically.
CodeRabbit Configuration File (.coderabbit.yaml)
- You can programmatically configure CodeRabbit by adding a
.coderabbit.yamlfile to the root of your repository. - Please see the configuration documentation for more information.
- If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation:
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
Documentation and Community
- Visit our Documentation for detailed information on how to use CodeRabbit.
- Join our Discord Community to get help, request features, and share feedback.
- Follow us on X/Twitter for updates and announcements.
Codecov Report
Attention: Patch coverage is 87.27273% with 14 lines in your changes missing coverage. Please review.
Project coverage is 72.93%. Comparing base (
23f0bab) to head (a422ff2). Report is 15 commits behind head on dev.
Additional details and impacted files
@@ Coverage Diff @@
## dev #527 +/- ##
==========================================
- Coverage 75.33% 72.93% -2.41%
==========================================
Files 15 15
Lines 3094 1633 -1461
==========================================
- Hits 2331 1191 -1140
+ Misses 763 442 -321
| Flag | Coverage Δ | |
|---|---|---|
| end2end | 53.39% <80.90%> (?) |
|
| unittests | 51.68% <87.27%> (-23.66%) |
:arrow_down: |
Flags with carried forward coverage won't be shown. Click here to find out more.
:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.