ovos-core icon indicating copy to clipboard operation
ovos-core copied to clipboard

feat/pipeline_plugins_opm

Open JarbasAl opened this issue 1 year ago • 1 comments

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 PipelinePlugin across 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.txt and lgpl.txt, removing outdated packages and introducing new ones.

JarbasAl avatar Jul 20 '24 17:07 JarbasAl

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.py involve 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.py include 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.py streamline 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?

❤️ Share
🪧 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 @coderabbitai in 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 @coderabbitai in 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 pause to pause the reviews on a PR.
  • @coderabbitai resume to resume the paused reviews.
  • @coderabbitai review to trigger an incremental review. This is useful when automatic reviews are disabled for the repository.
  • @coderabbitai full review to do a full review from scratch and review all the files again.
  • @coderabbitai summary to regenerate the summary of the PR.
  • @coderabbitai resolve resolve all the CodeRabbit review comments.
  • @coderabbitai configuration to show the current CodeRabbit configuration for the repository.
  • @coderabbitai help to get help.

Other keywords and placeholders

  • Add @coderabbitai ignore anywhere in the PR description to prevent this PR from being reviewed.
  • Add @coderabbitai summary to generate the high-level summary at a specific location in the PR description.
  • Add @coderabbitai anywhere in the PR title to generate the title automatically.

CodeRabbit Configuration File (.coderabbit.yaml)

  • You can programmatically configure CodeRabbit by adding a .coderabbit.yaml file 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.

coderabbitai[bot] avatar Jul 20 '24 17:07 coderabbitai[bot]

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.

Files with missing lines Patch % Lines
ovos_core/intent_services/__init__.py 88.11% 12 Missing :warning:
ovos_core/intent_services/adapt_service.py 0.00% 1 Missing :warning:
ovos_core/intent_services/commonqa_service.py 0.00% 1 Missing :warning:
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.

codecov[bot] avatar Oct 14 '24 19:10 codecov[bot]